CLI Command Reference¶
Complete reference for all Sage CLI commands, organized by category.
Wallet & Setup Commands¶
sage wizard¶
Interactive setup wizard to configure your Sage CLI environment.
What it does: - Prompts for wallet configuration (private key, mnemonic, or Cast integration) - Sets up RPC endpoints and network configuration - Configures IPFS worker URLs and API keys - Tests connectivity to all services
Options:
- --network <name> - Specify network (base-mainnet, base-sepolia)
- --skip-tests - Skip connectivity tests
sage wallet connect¶
Connect a wallet for signing transactions.
sage wallet connect --type cast
sage wallet connect --type private-key
sage wallet connect --type mnemonic
Options:
- --type <method> - Wallet connection method (cast, private-key, mnemonic)
- --path <derivation> - HD derivation path (for mnemonic)
- --index <number> - Account index (for mnemonic)
sage doctor¶
Verify your Sage CLI configuration and connectivity.
What it checks: - Wallet configuration and connectivity - RPC endpoint accessibility - IPFS worker availability - Contract deployment verification - Subgraph sync status
Library Management Commands¶
When to Use Skills vs Library Commands¶
Use sage prompts commands when:
- You have a workspace (prompts/skills/) and want the CLI to build + pin a manifest for you
- You're iterating on skills locally and want integrated publishing
Use sage project commands when:
- You already have a manifest.json or want to compose one manually
- You need fine-grained control over the manifest structure
Both paths end at the same place: a proposal or scheduled update against the LibraryRegistry.
sage project template¶
Generate a template manifest.json for a new prompt library.
Options:
- --type <type> - Template type (basic, mcp, agent)
- --out <path> - Output file path (default: manifest.json)
sage project add-prompt¶
Add a prompt to an existing manifest.
sage project add-prompt \
--manifest ./manifest.json \
--file ./prompts/hello.md \
--key examples/hello \
--name "Hello World" \
--upload
Options:
- --manifest <path> - Manifest file to update
- --file <path> - Prompt markdown file
- --key <string> - Unique key for the prompt
- --name <string> - Human-readable prompt name
- --upload - Upload file to IPFS and add CID reference
sage project preview¶
Preview a manifest file before publishing.
What it shows: - Prompt count and structure - IPFS references - Validation warnings - Estimated upload size
sage project status¶
Check the current status of a library in a DAO.
Returns: - Current library CID - Pending proposals - Role permissions (LIBRARY_ADMIN, PROPOSER, EXECUTOR) - DAO governance configuration
sage project push¶
Upload a library to IPFS and create governance proposal or execute directly.
# Team (Safe) - generates Safe transaction
sage project push ./manifest.json --dao 0xTeamDAO --pin --wait --warm --exec
# Community (Governor) - creates governance proposal
sage project push ./manifest.json --dao 0xCommunityDAO --pin --wait --warm
Options:
- --dao <address> - DAO address (preferred; --subdao is a legacy alias)
- --pin - Pin the uploaded content on IPFS
- --wait - Wait for IPFS upload completion
- --warm - Warm IPFS caches for faster retrieval
- --exec - Execute directly (team/operator mode only)
Returns: - Manifest CID - Proposal ID (community mode) - Safe transaction JSON path (team mode) - Next steps instructions
Skills Management Commands¶
The sage prompts command group is the recommended workflow for managing AI skills and prompts locally before publishing.
sage prompts init¶
Initialize a new skills workspace.
sage prompts list¶
List skills in the current workspace.
sage prompts variant¶
Create a variant of an existing skill.
sage prompts agents-sync¶
Sync local skills to AGENTS.md for Claude/OpenSkills compatibility.
sage prompts import¶
Import skills from external sources.
sage prompts export¶
Export a skill to a specific target format.
sage prompts publish¶
Publish skills to the on-chain library with governance checks.
sage prompts doctor¶
Validate skill frontmatter and DAO governance readiness.
DAO Commands¶
sage dao create-playbook¶
Deploy a new DAO using a versioned playbook (Creator/Squad/Community).
# Dry-run to generate plan
sage dao create-playbook \
--playbook community-long \
--name "Community UX Test" \
--dry-run
# Apply the generated plan
sage dao create-playbook --apply dao-plan-*.json
Playbook Options:
- creator - Solo operator (direct control, no voting)
- squad - Small team (Safe multisig, 3-10 members)
- community-long - Token voting (long delays, high quorum)
- community - Token voting (standard parameters)
Options:
- --playbook <type> - Playbook type (required)
- --name <string> - DAO name
- --dry-run - Generate plan without executing
- --apply <path> - Apply a previously generated plan
What it does: - Generates deployment plan (contracts, roles, parameters) - Validates playbook configuration - Executes deployment (if not dry-run) - Returns DAO address and governance details
sage dao create¶
Deploy a new DAO with custom governance parameters (advanced).
sage dao create \
--name "DeFi Intelligence" \
--symbol "DEFI" \
--token-type fork \
--initial-supply 1000000 \
--profile-cid QmYourProfileCID
Options:
- --name <string> - DAO name
- --symbol <string> - Governance token symbol
- --token-type <type> - Token type (fork, stable)
- --initial-supply <number> - Initial token supply
- --voting-delay <blocks> - Blocks before voting starts
- --voting-period <blocks> - Blocks for voting duration
- --proposal-threshold <tokens> - Tokens required to propose
- --quorum <percentage> - Quorum percentage required
- --profile-cid <cid> - IPFS CID for DAO profile metadata (avatar, description, socials)
Note: For most use cases, dao create-playbook is recommended over this command.
sage dao list¶
List DAOs from the registry.
Options:
- --filter <status> - Filter by status (all, active, inactive)
- --creator <address> - Filter by creator address
- --format <type> - Output format (json, table)
sage dao info¶
Get detailed information about a DAO.
Returns: - DAO metadata - Governance parameters - Token information - Treasury balance - Active proposals count - Library count
sage dao profile get¶
Get the profile metadata for a DAO.
Returns: - Profile CID and gateway URL - DAO name, description, avatar - Social links
sage dao profile set¶
Update DAO profile metadata (requires GOVERNANCE_ROLE).
Note: This creates a governance proposal to update the profileCID on-chain.
sage dao profile upload¶
Upload DAO profile JSON to IPFS.
sage dao profile upload 0xDAOAddress --file dao-profile.json
sage dao profile upload 0xDAOAddress --name "My DAO" --description "DAO description" --avatar ipfs://...
Options:
- -f, --file <path> - Path to profile JSON file
- --name <name> - DAO name
- --description <desc> - DAO description
- --avatar <url> - Avatar URL or IPFS CID
- --website <url> - Website URL
- --twitter <handle> - Twitter handle
- --discord <url> - Discord invite URL
- --apply - Also submit governance proposal to set the CID
Proposals & Governance Commands¶
sage proposals inbox¶
List pending and active proposals for a DAO.
Returns: - Proposal IDs - Proposal status (Pending, Active, Succeeded, Queued, Executed) - Voting period deadlines - Current vote counts
sage proposals preview¶
Preview the details of a specific proposal.
What it shows: - Proposal description - Calldata breakdown (which contracts/functions will be called) - Current voting status - Time remaining - Required quorum
sage proposals vote¶
Vote on an active proposal.
sage proposals vote <id> for --dao 0xCommunityDAO
sage proposals vote <id> against --dao 0xCommunityDAO
sage proposals vote <id> abstain --dao 0xCommunityDAO
Options:
- <id> - Proposal ID (required)
- Vote type: for, against, or abstain
- --dao <address> - DAO address (preferred; --subdao is a legacy alias)
Requirements: - Must have voting power (delegated tokens) - Proposal must be in Active state - Can only vote once per proposal
sage proposals execute¶
Execute a successful proposal after timelock delay.
Requirements: - Proposal must have succeeded (quorum + majority reached) - Proposal must be queued in Timelock - Timelock delay must have passed
What it does: - Executes the proposal's on-chain actions - Updates library registry (for library update proposals) - Returns transaction hash
sage proposals status¶
Check the status of proposals and show recommended next action.
Returns: - Latest proposals with current state - Recommended next action: - "Vote on proposal #X" (if active) - "Queue proposal #X" (if succeeded) - "Execute proposal #X" (if queued and delay passed)
Profile Commands¶
The sage profile command group manages personal wallet profiles (off-chain, signature-verified).
sage profile get¶
Get profile for a wallet address.
Options:
- [address] - Wallet address (defaults to your connected wallet)
- --json - Output as JSON
sage profile set¶
Set your wallet profile.
sage profile set --name "Alice" --bio "Web3 developer" --avatar ipfs://...
sage profile set --twitter aliceweb3 --github alice
Options:
- --name <name> - Display name (max 50 chars)
- --bio <bio> - Bio/description (max 160 chars)
- --avatar <url> - Avatar URL or IPFS CID
- --twitter <handle> - Twitter handle (without @)
- --github <handle> - GitHub username
- --farcaster <handle> - Farcaster handle
- --website <url> - Website URL
- --clear - Clear all profile fields
sage profile upload¶
Upload a profile JSON file to IPFS.
sage profile upload --file profile.json
sage profile upload --name "My DAO" --bio "Description" --type dao
Options:
- -f, --file <path> - Path to profile JSON file
- --name <name> - Display name (used if no file provided)
- --bio <bio> - Bio/description
- --avatar <url> - Avatar URL or CID
- --type <type> - Profile type: personal or dao (default: personal)
Returns: - IPFS CID for use with DAO creation or profile updates
sage profile interactive¶
Interactive profile setup wizard.
Guides you through setting up your profile with prompts for name, bio, avatar, and social links.
Personal Premium Commands¶
The sage personal command group allows creators to monetize their prompts directly using the Personal Premium model.
sage personal sell¶
Publish a premium prompt with an encrypted component.
Options:
- --file <path> - Path to the prompt file (required)
- --price <amount> - Price in USDC (required)
- --name <string> - Name of the prompt (optional, defaults to filename)
- --description <string> - Description (optional)
- --preview <path> - Path to a preview file (optional)
- --subdao <address> - SubDAO to endorse this prompt (optional)
sage personal buy¶
Purchase access to a premium prompt.
Options:
- --id <number> - The ID of the premium prompt (required)
- --amount <number> - Amount of USDC to pay (optional, defaults to current price)
sage personal access¶
Decrypt and view a purchased premium prompt.
Options:
- --id <number> - The ID of the premium prompt (required)
- --out <path> - Output file path (optional, prints to stdout otherwise)
sage personal my-licenses¶
List all premium licenses you own.
sage personal list¶
List premium prompts available for sale.
Options:
- --creator <address> - Filter by creator address
- --subdao <address> - Filter by endorsing SubDAO
sage personal price¶
Update the price of your premium prompt.
sage personal unlist¶
Unlist a premium prompt, preventing new purchases.
IPFS Commands¶
sage ipfs credits¶
Check your IPFS credit balance.
Returns: - Available credits (in bytes) - Used credits - Credit expiration dates - Pinned content count
sage ipfs buy-credits¶
Purchase IPFS storage credits.
Options:
- --amount <bytes> - Credit amount in bytes
- --payment-token <address> - ERC20 token for payment (default: ETH)
sage ipfs pin¶
Pin content to IPFS.
Options:
- --name <string> - Human-readable pin name
- --metadata <json> - Additional metadata
sage ipfs unpin¶
Unpin content from IPFS.
sage ipfs fetch¶
Fetch content from IPFS by CID.
Options:
- --output <path> - Save to file instead of stdout
- --timeout <seconds> - Request timeout (default: 30)
NFT Commands (Voting Multipliers)¶
The sage nft command group is the admin/operator surface for the VotingMultiplierNFT system. It manages contract configuration, tier definitions, minting, and roles for NFT‑based voting multipliers.
sage nft doctor¶
Check NFT contract configuration and your permissions.
Returns: - Contract status and address - Your roles (ADMIN, MINTER) - Total tiers configured
sage nft list-tiers¶
List all NFT tiers for a specific DAO.
Returns: - Tier ID, name, multiplier - Supply (minted/max) - Price (ETH for public mint, or admin-only)
sage nft my-multiplier¶
Check your voting multiplier for a DAO.
sage nft my-multiplier --dao 0xYourDAO
sage nft my-multiplier --dao 0xYourDAO --account 0xOtherAddress
Returns: - Your current voting multiplier (e.g., 1.5x) - Effective voting power calculation
sage nft tier create¶
Create a new NFT tier (requires ADMIN role).
sage nft tier create \
--dao 0xYourDAO \
--name "Founding Member" \
--multiplier 200 \
--max-supply 100 \
--price 0.1
Options:
- --dao <address> - DAO this tier belongs to
- --name <name> - Tier name
- --multiplier <number> - Voting multiplier (100=1x, 150=1.5x, 200=2x)
- --max-supply <number> - Maximum supply (0 = unlimited)
- --price <eth> - Price in ETH for public mint (0 = admin-only)
sage nft mint¶
Mint an NFT to an address (requires MINTER role).
sage nft public-mint¶
Public mint an NFT (requires tier to have price > 0).
sage nft grant-role¶
Grant MINTER role to an address (requires ADMIN).
Multiplier Commands (End‑User Voting Multipliers)¶
The sage multiplier command group is the end‑user and DAO maintainer interface for multiplier‑aware voting. It works on top of MultipliedVotes wrappers and the shared VotingMultiplierNFT contract.
sage multiplier status¶
Check whether a DAO uses NFT voting multipliers and how its voting tokens are wired.
Returns:
- Whether multipliers are enabled.
- Governor voting token and base token addresses.
- Associated VotingMultiplierNFT contract and basic tier summary.
sage multiplier calculate¶
Show voting power breakdown for an account in a multiplier‑enabled DAO.
Returns:
- Base votes from the underlying ERC20Votes token.
- Effective multiplier for this DAO.
- Effective voting power after applying multipliers.
- Per‑NFT tier information where applicable.
sage multiplier describe¶
Show detailed multiplier configuration, tiers, and (optionally) auction information.
Returns:
- Global VotingMultiplierNFT configuration (max multiplier, total tiers).
- Tiers scoped to the selected DAO (name, multiplier, supply, price, DAO).
- Optional auction configuration if a SageAuctionHouse address is provided.
sage multiplier propose-tier¶
Create a governance payload to add a new multiplier tier for a DAO via createTierViaGovernance.
sage multiplier propose-tier \
--name "Founding Member" \
--multiplier 150 \
--max-supply 100 \
--price 0.1 \
--nft 0xVotingMultiplierNFT \
--dao 0xYourDAO
This command encodes a call to:
and prints the calldata and sage gov propose invocation so DAOs can add tiers permissionlessly via timelock‑executed governance.
sage multiplier auction ... (Multiplier‑Focused Auction UX)¶
The sage multiplier auction subcommands provide a multiplier‑focused view over the global Sage Auction House:
sage multiplier auction status– Show current multiplier NFT auction status and tier details.sage multiplier auction bid <amount>– Place a bid on the current multiplier NFT.sage multiplier auction settle– Settle the current auction and start the next one.
These commands share the same underlying SageAuctionHouse and VotingMultiplierNFT contracts documented in the Auction Commands section below, but present them in the context of voting multipliers for DAOs.
Auction Commands¶
The sage auction command group interacts with the global SageAuctionHouse contract for NFT auctions.
Where voting multipliers are enabled, these auctions typically mint new multiplier NFTs from the shared VotingMultiplierNFT contract. For multiplier‑specific UX, see the sage multiplier auction commands above, which wrap the same auction house in a DAO‑centric view.
sage auction status¶
View current auction status.
Returns: - Current auction state (Active, Paused, Needs Settlement) - Current NFT ID and bid amount - Configuration (reserve price, duration, min increment)
sage auction bid¶
Place a bid on the current auction.
sage auction settle¶
Settle the current auction and start a new one.
Boost Commands (Vote Incentives)¶
The sage boost command group manages USDC governance boosts to incentivize voting.
sage boost create¶
Create a boost with USDC rewards for voters.
sage boost create \
--proposal-id 123 \
--governor 0xGovernor \
--per-voter 5_000000 \
--max-voters 100 \
--kind direct
Options:
- --proposal-id <id> - Proposal ID to boost
- --governor <address> - Governor address
- --per-voter <usdc> - USDC per voter (6 decimals, e.g., 5_000000 = 5 USDC)
- --max-voters <count> - Maximum eligible voters
- --kind <kind> - Eligibility: direct, merkle, or custom
- --policy <address> - Eligibility policy contract (for merkle/custom)
- --min-votes <amount> - Minimum voting power required
- --payout-mode <mode> - fixed or variable
- --support <support> - any or for (only For voters eligible)
- --start-at <unix> - Start timestamp
- --expires-at <unix> - Expiry timestamp
sage boost status¶
Show boost status for a proposal.
sage boost claim¶
Claim a boost rebate with Merkle proof.
sage boost set-root¶
Set Merkle root for airdrop eligibility.
sage boost fund¶
Fund a Merkle boost pool.
sage boost finalize¶
Finalize a boost and refund unclaimed to creator.
Bounty Commands¶
The sage bounty command group manages the enhanced bounty system for incentivizing contributions.
sage bounty doctor¶
Check bounty system configuration.
sage bounty create¶
Create a new bounty.
sage bounty create \
--title "Fix bug in parser" \
--description "The markdown parser fails on..." \
--reward 100
Options:
- --title <title> - Bounty title
- --description <desc> - Detailed description
- --reward <amount> - Reward amount (in SXXX or specified token)
- --token <address> - Reward token (default: SXXX)
- --deadline <unix> - Submission deadline
- --subdao <address> - DAO context for governance bounties
sage bounty list¶
List all bounties.
sage bounty claim¶
Claim a bounty to start working on it.
sage bounty submit¶
Submit work for a bounty.
sage bounty approve¶
Approve a bounty submission (operator/board).
sage bounty wizard¶
Interactive bounty creation wizard.
sage bounty set-mode¶
Configure bounty winner selection mode.
sage bounty set-mode \
--subdao 0xDAO \
--mode auto \
--governance-config 0x... \
--bounty-system 0x...
Modes:
- auto - Automatic approval based on fast-track limits
- board - Board/operator approval required
- token - Token holder voting
sage bounty fund¶
Fund a bounty via governance proposal.
sage bounty fund \
--subdao 0xDAO \
--bounty-system 0x... \
--bounty-id 123 \
--token 0xSXXX \
--amount 1000000000000000000
sage bounty payout-eth¶
Payout bounty reward in ETH.
sage bounty payout-erc20¶
Payout bounty reward in ERC20 token.
SBT Commands (Soulbound Badges)¶
The sage sbt command group manages soulbound badges for reputation and achievements.
sage sbt doctor¶
Check SBT contract configuration.
sage sbt mint¶
Mint a soulbound badge to an address.
sage sbt revoke¶
Revoke a soulbound badge.
sage sbt propose-mint¶
Create governance proposal to mint a badge.
sage sbt list-reasons¶
List valid badge reasons.
Council Commands¶
The sage council command group manages the approver council for fast-track governance.
sage council doctor¶
Check council configuration.
sage council set-config¶
Configure council parameters.
sage council allow¶
Add an address to the council allowlist.
sage council show¶
Show current council configuration.
sage council exec¶
Execute an action as council.
Safe Commands (Multisig)¶
The sage safe command group manages Gnosis Safe multisig operations.
sage safe propose¶
Create a Safe transaction proposal.
sage safe status¶
Check Safe transaction status.
sage safe doctor¶
Check Safe configuration.
sage safe propose-bounty¶
Create a bounty payout proposal via Safe.
Timelock Commands¶
The sage timelock command group manages governance timelock operations.
sage timelock doctor¶
Check timelock configuration and pending operations.
sage timelock schedule¶
Schedule an operation in the timelock.
sage timelock execute¶
Execute a ready timelock operation.
sage timelock list¶
List pending timelock operations.
sage timelock cancel¶
Cancel a pending timelock operation.
sage timelock fix-roles¶
Fix missing timelock roles.
sage timelock execute-batch¶
Execute multiple timelock operations in batch.
SXXX Token Commands¶
The sage sxxx command group manages SXXX governance token operations.
sage sxxx balance¶
Check SXXX balance.
sage sxxx delegate¶
Delegate voting power.
sage sxxx approve¶
Approve SXXX spending.
sage sxxx transfer¶
Transfer SXXX tokens.
Stake Status Commands¶
The sage stake-status command shows staking and voting power status.
Returns: - Staked amount - Voting power - Delegation status - Pending rewards
MCP Server Commands¶
sage mcp start¶
Start the HTTP MCP server for AI agents.
Options:
- --port <number> - Server port (default: 3000)
- --host <address> - Bind address (default: localhost)
- --cors-origin <url> - CORS origin for web clients
What it provides:
- /mcp/search - Search libraries by keywords
- /mcp/fetch - Fetch library by CID
- /mcp/validate - Validate manifest structure
sage mcp stdio¶
Run MCP server in stdio mode for Claude Desktop.
Available Tools:
Quick Workflow:
- quick_create_prompt / quick_iterate_prompt / quick_test_prompt: Create, iterate, and test prompts
- improve_prompt / rename_prompt / help: Prompt improvement and help
Discovery & Search:
- search_prompts: Unified search across local and on-chain sources
- search_onchain_prompts: Search from LibraryRegistry and per-DAO registries
- trending_prompts / list_prompts / get_prompt: Browse and retrieve prompts
- list_libraries / list_subdaos / get_library_manifests: DAO and library discovery
Publishing & Governance:
- suggest_subdaos_for_library: Recommend DAOs for publishing
- generate_publishing_commands: Generate CLI commands to publish
- publish_manifest_flow: Validate → Push → Build governance payload (no signing)
- list_proposals: List active proposals
Templates & Bulk Operations:
- list_templates / get_template / create_from_template: Template workflows
- bulk_update_prompts / analyze_dependencies / update_library_metadata: Library management
For the complete tool list, see the MCP configuration guide.
Usage in Claude Desktop config:
{
"mcpServers": {
"sage": {
"command": "node",
"args": ["/path/to/sage/packages/cli/src/mcp-server-stdio.js"]
}
}
}
Utility Commands¶
sage config show¶
Display current configuration.
sage config set¶
Update configuration values.
sage config set rpc.url https://mainnet.base.org
sage config set ipfs.worker https://ipfs-worker.example.com
sage version¶
Show CLI version information.
sage help¶
Display help information.
Advanced Workflows¶
Publishing a Complete Library¶
# 1. Initialize workspace
sage prompts init
# 2. Add prompts (multiple options)
# Write from scratch:
echo "# DeFi Analysis\n\nAnalyze this..." > prompts/defi-analyzer.md
# Or import existing skills:
sage prompts import-skill pdf
sage prompts init --preset cursor
# Or pull from registry to modify:
sage prompts pull
# 3. Check status
sage prompts status
# 4. Publish (builds manifest, uploads to IPFS, creates proposal)
sage prompts publish --dao 0xYourDAO --pin
# Preview first with --dry-run
sage prompts publish --dry-run
Setting Up a DAO¶
# Deploy DAO with governance parameters
sage dao create \
--name "Research DAO" \
--symbol "RSRCH" \
--token-type fork \
--initial-supply 10000000
Agent Integration via MCP¶
# 1. Start MCP server
sage mcp start --port 3000
# 2. In your agent code:
# - Query: POST http://localhost:3000/mcp/search
# - Fetch: POST http://localhost:3000/mcp/fetch
# - Validate: POST http://localhost:3000/mcp/validate
Environment Variables¶
The Sage CLI respects the following environment variables:
SAGE_RPC_URL- Blockchain RPC endpointSAGE_PRIVATE_KEY- Wallet private key (not recommended for production)SAGE_IPFS_WORKER_URL- IPFS worker API endpointSAGE_IPFS_API_KEY- IPFS worker authenticationSAGE_NETWORK- Network name (base-mainnet, base-sepolia)SAGE_SUBGRAPH_URL- Custom subgraph endpoint
Exit Codes¶
0- Success1- General error2- Configuration error3- Network error4- Validation error5- Permission denied
Getting Help¶
- Documentation: https://docs.sageprotocol.io
- Discord: https://discord.gg/GWr73Z4qtT
- Twitter: @VelinusSage
- GitHub: https://github.com/sage-protocol