Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.orbitflare.com/llms.txt

Use this file to discover all available pages before exploring further.

The OrbitFlare CLI is a single binary that wraps RPC queries, gRPC and Jetstream streaming with YAML configs, project scaffolding, and account management. For agent and automation workflows, the key feature is --json: every command emits structured output that composes cleanly with jq, shell pipes, GitHub Actions, and cron jobs.
For interactive AI workflows in Claude Code, Cursor, or other MCP hosts, prefer the MCP server. The CLI is best for shell-driven automation where you want deterministic exit codes and parseable output.

Install

cargo install orbitflare           # requires Rust 1.85+
orbitflare --version
See the full CLI reference for installation alternatives, auth methods, and the complete command surface.

Headless setup

For non-interactive environments (CI, containers, scripts), authenticate with an API key directly, no browser flow needed:
orbitflare auth login --x-orbit-key "$ORBITFLARE_API_KEY"
orbitflare config set rpc.url "$ORBITFLARE_RPC_URL"
orbitflare config set grpc.url "$ORBITFLARE_GRPC_URL"
orbitflare config set jetstream.url "$ORBITFLARE_JETSTREAM_URL"
orbitflare ping --json
Credentials are stored in the OS keychain by default. In containers without a keychain, set ORBITFLARE_CONFIG_DIR to a writable path and the CLI will fall back to a file-based config.

JSON output

Every command supports --json:
$ orbitflare rpc slot --json
{"slot": 312456789}

$ orbitflare rpc balance Gh9ZwEm... --json
{"address": "Gh9ZwEm...", "lamports": 12500000000, "sol": 12.5}
Compose with jq for one-liners:
# Print just the slot
orbitflare rpc slot --json | jq -r '.slot'

# Alert if balance drops below 1 SOL
SOL=$(orbitflare rpc balance "$WALLET" --json | jq -r '.sol')
if (( $(echo "$SOL < 1" | bc -l) )); then
  echo "Balance low: $SOL SOL"
  exit 1
fi

Streaming with YAML configs

The CLI streams Jetstream and Yellowstone gRPC using a declarative YAML config, no code required:
# pump-trades.yaml
endpoint: http://fra.jetstream.orbitflare.com
api_key: ${ORBITFLARE_API_KEY}
filters:
  programs:
    - 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
output:
  format: ndjson
  path: -
Run it:
orbitflare stream --config pump-trades.yaml | your-indexer
Have an MCP-equipped agent generate the YAML for you. The MCP server subscribeTransactions tool emits a CLI-ready config from a natural-language description.

Scripting patterns

Tail recent signatures and process them

orbitflare rpc signatures-for-address "$WALLET" --limit 50 --json \
  | jq -r '.[].signature' \
  | while read sig; do
      orbitflare rpc transaction "$sig" --json > "txs/$sig.json"
    done

CI health check

# .github/workflows/rpc-health.yml
name: OrbitFlare RPC health
on:
  schedule:
    - cron: '*/15 * * * *'
jobs:
  ping:
    runs-on: ubuntu-latest
    steps:
      - uses: actions-rs/toolchain@v1
        with: { toolchain: stable }
      - run: cargo install orbitflare
      - run: orbitflare auth login --x-orbit-key ${{ secrets.ORBITFLARE_API_KEY }}
      - run: orbitflare config set rpc.url ${{ secrets.ORBITFLARE_RPC_URL }}
      - run: orbitflare ping --json

Scaffold a project from an agent

The CLI ships templates for common Solana projects. An agent can list them and spin one up in one shot:
orbitflare template --list --json
orbitflare template --install solana-copy-trader --path ./bot

Profiles

Switch between accounts or environments without re-authenticating each time:
orbitflare auth login --profile prod --x-orbit-key "$PROD_KEY"
orbitflare auth login --profile dev  --x-orbit-key "$DEV_KEY"

orbitflare auth switch --profile prod
orbitflare auth status --json

Source