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

@venumdev/cli

v0.1.0

Published

Agent-friendly CLI for the Venum Solana execution API

Readme

@venumdev/cli

@venumdev/cli works as both an importable JavaScript/TypeScript client and a command-line surface for the Venum Solana execution API.

  • Website: https://www.venum.dev
  • Venum Terminal: https://github.com/venumhq/solana-venum-terminal

It gives developers, coding agents, and trading agents a simple way to work with Venum from the terminal: prices, pools, token discovery, quotes, swap building, transaction submission, transaction status, and real-time streams.

This CLI is part of the broader Venum OSS surface:

  • less raw RPC
  • more executable actions
  • better DevX for Solana execution
  • better Agent X for coding and trading agents

What It Covers

  • health checks
  • authenticated price lookups
  • pool browsing and pair inspection
  • token list discovery
  • swap quotes
  • unsigned swap transaction building
  • local signing and swap submission from a Solana keypair file
  • signed transaction submission
  • transaction status checks
  • SSE price streams
  • SSE new-pool streams

Install

Library install with pnpm:

pnpm add @venumdev/cli

Library install with npm:

npm install @venumdev/cli

CLI global install with pnpm:

pnpm add -g @venumdev/cli

CLI global install with npm:

npm install -g @venumdev/cli

Run without installing:

pnpm dlx @venumdev/cli health
pnpm dlx @venumdev/cli price SOL

npx @venumdev/cli health
npx @venumdev/cli price SOL

Run locally from source:

git clone https://github.com/venumhq/solana-venum-cli.git
cd solana-venum-cli
pnpm install
pnpm start

Library Usage

Import the API client directly:

import { VenumApiClient, resolveConfig } from '@venumdev/cli';

const config = resolveConfig();
const api = new VenumApiClient({
  apiKey: config.apiKey,
  baseUrl: config.baseUrl,
});

const health = await api.health();
const price = await api.price('SOL');
console.log({ health, price });

Available exports include:

  • VenumApiClient
  • VenumApiError
  • VenumNetworkError
  • API response types from src/api.ts
  • loadConfig, saveConfig, resolveConfig, getConfigPath

Quick Start

Get an API key at https://www.venum.dev, then configure it once:

venum config set api-key <your-key>
venum health
venum quote SOL USDC 1000000000

With pnpm dlx or npx, pass the command after the package name:

pnpm dlx @venumdev/cli config set api-key <your-key>
pnpm dlx @venumdev/cli prices

npx @venumdev/cli config set api-key <your-key>
npx @venumdev/cli prices

Run locally from source:

pnpm start
pnpm start -- health
pnpm start -- quote SOL USDC 1000000000

All commands except health and config require an API key.

Config

The CLI follows the same config pattern as the Venum terminal app.

Saved config path:

~/.config/venum/config.json

Environment variables override saved config:

VENUM_API_KEY=<your-key>
VENUM_API_URL=https://api.venum.dev

Persist values locally:

venum config set api-key <your-key>
venum config set api-url https://api.venum.dev

Inspect config:

venum config get
venum config path

Unset values:

venum config unset api-key
venum config unset api-url

Output Modes

Human-readable output is the default.

Use --json for agent and automation workflows:

venum quote SOL USDC 1000000000 --json
venum tx <signature> --json

For live price streams, use --time and --change to show timestamps and 24h change in human-readable output:

venum prices --time --change
venum stream prices SOL,ETH --time

You can also override config per command:

venum --api-key your_key --api-url https://api.venum.dev prices SOL,ETH

Check API health:

venum health

Get prices:

venum price SOL
venum prices SOL,ETH,JUP
venum prices

Browse pools:

venum pools SOL
venum pools SOL USDC
venum pools --tokens SOL,USDC,JUP --limit 25
venum pool <pool-address>
venum new-pools --limit 20

Browse supported tokens:

venum tokens
venum tokens --category memecoin

Get a quote:

venum quote SOL USDC 1000000000
venum quote SOL USDC 1000000000 --slippage 50 --json

Build a swap transaction:

venum swap build SOL USDC 1000000000 --wallet <pubkey>

Build, sign locally, and submit in one command:

venum swap sign-and-submit SOL USDC 1000000000 --keypair ~/.config/solana/id.json
venum swap sign-and-submit SOL USDC 1000000000 --keypair ~/.config/solana/id.json --wait

Reuse a previous build artifact:

venum swap build SOL USDC 1000000000 --wallet <pubkey> --json > build.json
venum swap sign-and-submit --build-file ./build.json --keypair ~/.config/solana/id.json

Reuse a prior quoteId plus unsigned transaction:

venum swap sign-and-submit --quote-id <quote-id> --tx <base64> --keypair ~/.config/solana/id.json
venum swap sign-and-submit --quote-id <quote-id> --file ./unsigned-tx.txt --keypair ~/.config/solana/id.json

Submit a signed swap transaction with a quote id:

venum swap submit --quote-id <quote-id> --signed-tx <base64>
venum swap submit --quote-id <quote-id> --file ./signed-tx.txt

Submit any signed transaction:

venum send <base64>
venum send --file ./signed-tx.txt

Track a transaction:

venum tx <signature>

Stream live prices:

venum prices
venum prices --time --change
venum stream prices SOL,ETH,BONK
venum stream prices --json

Stream newly discovered pools:

venum stream pools

When you use venum swap sign-and-submit --wait, the CLI first tries the transaction SSE confirmation stream and falls back to polling tx if the stream is unavailable.

Command Reference

venum health
venum price <token>
venum prices [tokens]
venum pool <address>
venum pools [tokenA] [tokenB] [--token <token>] [--tokens <tokens>] [--dex <dex>] [--limit <n>] [--offset <n>]
venum new-pools [--limit <n>]
venum tokens [--category <category>]
venum quote <inputMint> <outputMint> <amount> [--slippage <bps>]
venum swap build <inputMint> <outputMint> <amount> --wallet <pubkey> [--slippage <bps>]
venum swap sign-and-submit <inputMint> <outputMint> <amount> --keypair <path> [--slippage <bps>] [--wait]
venum swap sign-and-submit --build-file <path> --keypair <path> [--wait]
venum swap sign-and-submit --quote-id <id> [--tx <base64> | --file <path>] --keypair <path> [--wait]
venum swap submit --quote-id <id> [--signed-tx <base64> | --file <path>]
venum send [transaction] [--file <path>]
venum tx <signature>
venum stream prices [tokens] [--time] [--change]
venum stream pools
venum config get
venum config path
venum config set <key> <value>
venum config unset <key>

Agent Workflows

This CLI is designed to be usable by coding agents and trading agents.

Recommended patterns:

  • use --json when another tool or agent will parse the output
  • save VENUM_API_KEY in env or config once, then reuse it
  • use quote -> swap build -> swap submit -> tx as the default execution flow
  • use swap sign-and-submit when you want the CLI to handle local keypair signing
  • use stream prices and stream pools when you want push-based updates instead of polling
  • use default text output for humans and --json for agents

Example machine-readable flow:

venum quote SOL USDC 1000000000 --json
venum swap build SOL USDC 1000000000 --wallet <pubkey> --json
venum tx <signature> --json

Why This Exists

Most Solana apps and bots still use more raw RPC than they should.

Venum is building a higher-level execution surface for Solana:

  • prices
  • pools
  • quotes
  • transaction building
  • submission
  • transaction tracking
  • agent-friendly tooling

@venumdev/cli is the terminal-native entry point into that surface.

Related Venum Projects

  • @venumdev/terminal for the real-time trading TUI: https://github.com/venumhq/solana-venum-terminal
  • @venumdev/sdk for the typed JavaScript client
  • @venumdev/tx for transaction submission and confirmation tooling
  • https://www.venum.dev for the main product site
  • https://swap.venum.dev for the hosted swap product
  • https://docs.venum.dev for API docs

Development

Typecheck:

pnpm check

Run help:

pnpm start
pnpm start -- --help

License

MIT