pumpdesk
v0.1.6
Published
PumpDesk.fun CLI — Developer Platform for the Pump.fun Ecosystem
Readme
PumpDesk.fun CLI
Developer platform for the Pump.fun ecosystem. Build, trade, and manage Pump.fun tokens from a safe, local-signing CLI.
Security Model
Private keys never leave your machine. The CLI builds unsigned transactions. You sign them locally with your keypair file. No private keys are displayed, transmitted, or stored.
Quick Start
Install the published CLI globally with npm:
npm i -g pumpdesk
pumpdesk initOr run it directly without installing a global binary:
pnpm dlx pumpdesk initIf you specifically want a pnpm global install, configure pnpm's global binary directory first:
pnpm setup
# restart your terminal, then:
pnpm add -g pumpdesk
pumpdesk initFor local source development from the repository root:
cd pumpdesk-fun
pnpm install
pnpm --filter pumpdesk build
node packages/cli/dist/index.js --helpFrom packages/cli:
cd packages/cli
pnpm build
node dist/index.js --helpTo link the built CLI globally from packages/cli during local development:
pnpm link --global
pumpdesk --helpTo smoke-test the npm tarball from packages/cli before a release:
pnpm build
pnpm pack --pack-destination /private/tmp
rm -rf /private/tmp/pumpdesk-cli-smoke
npm install --prefix /private/tmp/pumpdesk-cli-smoke /private/tmp/pumpdesk-0.1.5.tgz
/private/tmp/pumpdesk-cli-smoke/node_modules/.bin/pumpdesk --helpConfiguration
# Show current config
pumpdesk config show
# Set your API key and RPC
pumpdesk config set apiKey <your-key>
pumpdesk config set rpcUrl https://mainnet.helius-rpc.comConfig is stored at ~/.pumpdesk/config.json.
Optional environment variables are loaded from ~/.pumpdesk.env.
Wallet
Wallet list, address, and inspect commands are read-only. Signing requires the
explicit --execute flag, and private key material is never displayed.
# List known wallets
pumpdesk wallet list
# Show a wallet's public address (no key exposed)
pumpdesk wallet address ./keypair.json
# Fund a wallet from the devnet faucet (requires solana CLI)
pumpdesk wallet fund <address> --amount 2
pumpdesk wallet fund --keypair ./keypair.json --amount 1
pumpdesk wallet fund --keypair ./keypair.json --url https://api.devnet.solana.com
# Sign a transaction (dry-run by default, --execute to sign)
pumpdesk wallet sign ./keypair.json ./tx.json
pumpdesk wallet sign ./keypair.json ./tx.json --executeAdding a Wallet
pumpdesk wallet add primary ./my-keypair.json
pumpdesk config set walletPath ./my-keypair.json # set as defaultCreate a Token
# Simulate creation — no API key or keypair needed
pumpdesk create simulate "My Token" MYTKR --royalties 500
# Dry-run — preview before committing
pumpdesk create new "My Token" MYTKR "A great token" \
--image https://example.com/logo.png \
--royalties 500 \
--dry-run
# Create for real. If pumpdesk init configured walletPath, --keypair can be omitted.
pumpdesk create new "My Token" MYTKR "A great token" \
--image https://example.com/logo.png \
--royalties 500 \
--keypair ./keypair.json
# Create from a JSON metadata file
pumpdesk create from-json ./metadata.json --keypair ./keypair.json
# Update metadata for an existing token
pumpdesk create metadata <mint> --name "New Name" --image https://... --keypair ./keypair.json
pumpdesk create metadata <mint> --dry-run # preview without signingValidation:
- Name: max 30 characters
- Ticker: max 8 characters, uppercase alphanumeric
- Description: max 400 characters
- Royalties: 0-10000 basis points (500 = 5%)
Trade
All trade commands default to dry-run. Use --submit to execute.
# Buy tokens
pumpdesk trade buy <mint> 0.1
pumpdesk trade buy <mint> 0.1 --submit --keypair ./keypair.json
# Sell tokens
pumpdesk trade sell <mint> 100
pumpdesk trade sell <mint> 100 --submit --keypair ./keypair.json
# Get a quote (no keypair needed)
pumpdesk trade quote <mint> 0.1 --type exact-in
pumpdesk trade quote <mint> 100 --type exact-out
# Build, sign locally, and submit a trade in one step
pumpdesk trade execute <mint> --side buy --amount 0.1 --keypair ./keypair.json
# Or split the flow: save unsigned tx → sign → submit
pumpdesk trade execute <mint> --side buy --amount 0.1 --keypair ./keypair.json --output ./unsigned.tx
pumpdesk wallet sign ./keypair.json ./unsigned.tx --execute | tee signed.tx.b64
pumpdesk trade execute <mint> --input ./signed.tx.b64 --rpc https://mainnet.helius-rpc.comSlippage tolerance: --slippage 500 (500 bps = 5%, default).
Fees
Manage creator fees on your tokens.
# Claim fees for a specific mint
pumpdesk fees claim <mint> --submit --keypair ./keypair.json
# Claim all accumulated fees
pumpdesk fees claim-all --submit --keypair ./keypair.json
# View fee revenue summary
pumpdesk fees revenue <mint>
# Full dashboard
pumpdesk fees dashboardCashback
Cashback commands are registered in the CLI, but the production cashback backend routes are not live yet. Treat this group as planned coverage until those authenticated routes are deployed.
# Show total claimable
pumpdesk cashback claimable
# Claim Cashback Coins for a specific token
pumpdesk cashback claim <mint> --keypair ./keypair.json
# View claim history
pumpdesk cashback history --limit 20Agents
Create and manage Tokenized Agents — AI traders that hold tokens and make autonomous trading decisions on Pump.fun.
# Create an agent
pumpdesk agent create --name "Trading Bot" --ticker BOT --skills scout,trade --buyback-ratio 0.5 --submit --keypair ./keypair.json
# List your agents
pumpdesk agent list
# View agent revenue
pumpdesk agent revenue <mint>
# Update agent skills
pumpdesk agent skills <mint> --skills skill1,skill2,skill3Shell Completion
Enable tab completion for your shell.
# Auto-detect and install
pumpdesk completion
# Install for a specific shell
pumpdesk completion install bash # adds to ~/.bashrc
pumpdesk completion install zsh # installs to ~/.zsh/completions/
pumpdesk completion install fish # installs to ~/.config/fish/completions/
pumpdesk completion install powershell
# List supported shells
pumpdesk completion listGlobal Flags
| Flag | Description |
|-------------|------------------------------------|
| --json | Output results as JSON |
| --no-color | Disable colored terminal output |
| -h, --help | Show help for any command |
Output Formats
The CLI detects your config's output setting (default: text). You can
override at runtime:
pumpdesk config show # human-readable table
pumpdesk config show --json # JSON outputEnvironment Variables
Place optional secrets in ~/.pumpdesk.env:
PUMPDESK_API_KEY=pk_live_your_key
PUMPDESK_OUTPUT=jsonThe CLI loads this file at startup without printing the values.
Development
# Build
pnpm build
# Type-check
npx tsc --noEmit
# Run tests
pnpm test
# Watch mode
pnpm test -- --watchArchitecture
packages/cli/
├── package.json
├── src/
│ ├── index.ts # CLI entry — builds and parses Commander program
│ ├── commands/ # Command modules
│ │ ├── config.ts
│ │ ├── wallet.ts
│ │ ├── create.ts
│ │ ├── trade.ts
│ │ ├── fees.ts
│ │ ├── cashback.ts
│ │ ├── agent.ts
│ │ └── completion.ts
│ ├── config/ # fs-based JSON config at ~/.pumpdesk/config.json
│ ├── http/ # PumpDesk API client + Solana RPC proxy
│ └── utils/ # chalk output helpers, readline confirm/ask
└── dist/ # Compiled outputDesign Principles
- Local signing only — transactions are built by the API, serialized to base64, then signed on your machine with your local keypair. Private keys are never sent to PumpDesk servers.
- Explicit execution controls — coin creation submits by default after
confirmation and only previews with
--dry-run. Trade, fee, cashback, and agent mutation commands require--submit; signing commands require--execute. - No secrets in source — API keys, RPC URLs, and wallet paths come from
config,
.env, or CLI arguments only. - Safe display — wallet commands show public addresses only. No private key values are ever printed or logged.
