npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

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 init

Or run it directly without installing a global binary:

pnpm dlx pumpdesk init

If 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 init

For local source development from the repository root:

cd pumpdesk-fun
pnpm install
pnpm --filter pumpdesk build
node packages/cli/dist/index.js --help

From packages/cli:

cd packages/cli
pnpm build
node dist/index.js --help

To link the built CLI globally from packages/cli during local development:

pnpm link --global
pumpdesk --help

To 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 --help

Configuration

# 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.com

Config 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 --execute

Adding a Wallet

pumpdesk wallet add primary ./my-keypair.json
pumpdesk config set walletPath ./my-keypair.json  # set as default

Create 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 signing

Validation:

  • 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.com

Slippage 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 dashboard

Cashback

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 20

Agents

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,skill3

Shell 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 list

Global 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 output

Environment Variables

Place optional secrets in ~/.pumpdesk.env:

PUMPDESK_API_KEY=pk_live_your_key
PUMPDESK_OUTPUT=json

The 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 -- --watch

Architecture

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 output

Design Principles

  1. 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.
  2. 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.
  3. No secrets in source — API keys, RPC URLs, and wallet paths come from config, .env, or CLI arguments only.
  4. Safe display — wallet commands show public addresses only. No private key values are ever printed or logged.