Skip to content

CLI

The Sharpe CLI brings Sharpe Terminal data to your command line. The sharpe-terminal-mcp Python package gives you 34 commands covering derivatives, arbitrage, screeners, narratives, ecosystems, new listings, news, and discovery, without opening a browser.


Installation

The CLI ships in the sharpe-terminal-mcp Python package. Its first PyPI release is pending, so uvx, pip, and pipx cannot install it yet, and its source repository is not public. Until the release lands, the same data is available through the REST API and the MCP server.


Quick start

Most market-data commands work without an API key by falling back to free public endpoints. Commands whose current implementation only has authenticated /api/v1 coverage, such as token-scanner and stablecoins, require SHARPE_API_KEY for complete results. coverage uses public /api/v1/meta/coverage metadata and works without a key. Add a key later for higher rate limits and authenticated-only data.

Market overview

Market overview

sharpe market

Returns BTC/ETH prices and changes, BTC dominance, total market metrics, and the Fear & Greed Index.

Market briefing

Market briefing

sharpe briefing

Prints the market briefing report (GET /v1/briefing, see Reports): market stats, top and worst narratives, funding-rate extremes and the whole-market funding estimated over the next 24 hours. The report is rendered on the server and printed as served, the same text the MCP tool market_briefing returns. sharpe analyze BTC and sharpe opportunities print the coin-analysis and funding-arbitrage reports the same way (analyze_coin, find_opportunities).

Funding rates

Current funding rates

sharpe funding

Historical funding for a specific coin

sharpe funding --type history --coin BTC --days 7

Commands

Most data commands support --json for raw JSON and --csv for CSV output. Exceptions: briefing, analyze, opportunities and coverage support JSON but not CSV; login, doctor, and watch are interactive/diagnostic commands and do not emit JSON or CSV. Most data commands also support --web to open the corresponding Sharpe Terminal page in your browser.

Each data command reads one API endpoint, and its API options come from that endpoint's contract: the same names (in kebab case: --min-oi-usd for min_oi_usd/minOiUsd), choices, bounds and defaults as the MCP server and the REST API. A value outside the contract fails before any request, with every issue named. --json prints the answer as the API served it, the same data the MCP tools return, unless --sort or a row-keeping --limit reshapes it. The data's freshness, any warning, and the cursor of a next page go to stderr, so piped stdout stays clean.

Market

  • Name
    market
    Type
    command
    Description

    Market overview with BTC/ETH prices and changes, total market cap and volume, BTC dominance, Fear and Greed Index, and the ETH/BTC ratio.

  • Name
    briefing
    Type
    command
    Description

    The market briefing report from GET /v1/briefing, printed as the endpoint renders it: market stats, the API's narrative ranking by 24h change, its funding extremes by 8h-equivalent rate among fresh markets with at least $1M of open interest (shown as APR), and the whole-market funding estimated over the next 24 hours, ending with the freshness of every answer the report read. The same bytes as the MCP tool market_briefing; --json prints the report object (report_md and the reads it was composed from).

  • Name
    analyze
    Type
    command
    Description

    One coin's analysis report from GET /v1/coins/{coin}/analysis, printed as the endpoint renders it: the price prediction, the coin's funding by market with the API's average and median, its open-interest total and the next 24h settlement estimate. The same bytes as the MCP tool analyze_coin; --json prints the report object.

  • Name
    opportunities
    Type
    command
    Description

    The funding-arbitrage report from GET /v1/opportunities, printed as the endpoint renders it: the top spot-perp and cross-exchange trades among markets with at least $1M of open interest, in the API's board order, and the market's funding stats. The same bytes as the MCP tool find_opportunities; --json prints the report object.

  • Name
    watch
    Type
    command
    Description

    Live auto-refresh mode. Clears the screen and re-fetches data every 30 seconds (configurable with --interval). Supports market, funding, futures, and arb as targets. Use --chart, --coin, and --type for watched derivatives or arbitrage views.

  • Name
    correlation
    Type
    command
    Description

    Asset correlation matrix over 30d, 90d, 1y, or 3y with --period, optionally filtered with comma-separated canonical coin IDs via --ids.

  • Name
    heatmap
    Type
    command
    Description

    Market heatmap data for coins, narratives, or ecosystems via --mode, with an optional --category filter.

Market commands

sharpe market
sharpe market --json
sharpe briefing
sharpe briefing --json
sharpe analyze BTC
sharpe opportunities --json
sharpe watch market
sharpe watch funding --coin BTC --interval 15
sharpe correlation --period 90d
sharpe heatmap --mode narratives

Derivatives

  • Name
    funding
    Type
    command
    Description

    Funding rates across 32 perpetual exchanges, covering crypto plus tokenized equity, commodity, index and FX perps. Every row carries asset_class and margin_type; current and accumulated rows also carry asset_id, lot_multiplier, instrument_status and is_live. Use --type to select current (default), accumulated, or history. --coin filters to one coin in any mode: every contract of the asset, lot spellings such as 1000PEPE included, exactly as the API scopes it. --sort FIELD reorders rows (prefix with - for descending; common fields: rate, rate_8h, apr, base_coin, exchange, open_interest, next_funding_time); with the current type, open_interest and -open_interest are applied by the API before its page. Sorting by a field no row carries leaves the order untouched and prints a note on stderr. --limit N keeps only the first N rows after filter/sort. --exchange, --asset-class and --margin filter the book; --page-size N and --cursor page it on the API. History mode also accepts --days. rate is a fraction charged once per interval_hours, which varies by contract (1h, 2h, 4h, 8h or 24h). It is not a percentage; current rows also carry rate_8h and apr. Instead of rows, the current type answers the API's aggregates: --extremes N (the N highest and lowest markets by 8h-equivalent rate, floored with --min-oi-usd), --stats (the whole book's mean and OI-weighted funding APR and the positive/negative counts) and --summary with --coin (the coin's average and median 8h funding across venues). Accumulated rows show each window's sum with its coverage beside it: (complete), (incomplete 56%) or (not expected), and the windows the contract was listed or halted in; compare sums only on complete windows.

  • Name
    settlement
    Type
    command
    Description

    Dollar value of funding actually paid at each settlement, and which side paid it -- not just the rate. Use --window to select current (default; the next 24 hours at current rates, priced live and always estimated), 1d, 3d, or 7d (realised; one below 90% coverage is still building history). --class selects all (default), crypto, or rwa. --coin and --exchange filter rows. net is long_paid minus short_paid: positive is a cost to longs, negative means shorts paid. --limit N caps rows returned and --offset N pages them; --sort FIELD orders them by base_coin, net, long_paid, short_paid or open_interest_usd (prefix - for descending); --expand venues adds each row's per-venue breakdown to the JSON. Each row shows the window's partial, complete and halted_within_window flags.

  • Name
    global
    Type
    command
    Description

    Whole-market derivatives board across crypto perps and every RWA perp class. Use --tab to select crypto (default), equity, preipo, etf, index, commodity or fx. The market-wide metric line is identical on every tab. Supports --sort and --limit like funding.

  • Name
    rwa-perps
    Type
    command
    Description

    RWA-perp funding and carry (stocks, pre-IPO, ETFs, indices, commodities) across 19 venues. Use --type to select current (default), history (requires --symbol; accepts --days), or stats (best carry, top spread, weekend premium). --venue filters to one venue. Supports --sort and --limit like funding.

  • Name
    futures
    Type
    command
    Description

    Futures chart data. The first argument is the chart ID: oi-stacked, liquidations, funding-rate, annualized-basis, volume-history, long-short-ratio, and more. Accepts --coin, --timeframe, and --exchanges; --limit and --cursor page the raw rows oldest-first. Without --limit, oi-snapshot shows each exchange's latest reading.

  • Name
    derivatives
    Type
    command
    Description

    Derivatives market overview: total open interest, OI-weighted funding, and the top coins by OI across exchanges.

Derivatives commands

sharpe funding
sharpe funding --coin BTC                         # filter to BTC rows only
sharpe funding --sort -rate --limit 10            # top 10 highest funding rates
sharpe funding --coin ETH --sort -open_interest   # ETH exchanges by OI desc
sharpe funding --extremes 3 --min-oi-usd 1000000  # highest and lowest funding, OI >= $1M
sharpe funding --coin BTC --summary               # BTC average and median funding across venues
sharpe funding --stats                            # whole-book funding APR, positive vs negative
sharpe funding --type history --coin ETH --days 14
sharpe settlement                               # dollars funding moves over the next 24h
sharpe settlement --window 7d --class crypto    # realised 7-day settlement, crypto only
sharpe global                                   # whole-market derivatives board
sharpe global --tab equity                      # RWA equity perps
sharpe rwa-perps                                # equity-perp funding across venues
sharpe rwa-perps --type history --symbol TSLA   # session-tagged TSLA settlements
sharpe rwa-perps --type stats                   # best carry, top spread, weekend premium
sharpe futures oi-stacked --coin BTC --timeframe 3M
sharpe futures liquidations --coin ETH --timeframe 1M --exchanges binance,bybit

Arbitrage

  • Name
    arb
    Type
    command
    Description

    Arbitrage opportunities. Pass spot-perp (default), cross-exchange, dated-basis, calendar-spread, perp-dated, or spot-transfer as the first argument. Rows are sorted by the product's primary net return field by default; override with --sort FIELD (prefix with - for descending). Filter spot-perp rows with --exchange, --direction and --min-oi-usd (the perp leg's open interest, applied by the API); filter cross-exchange rows with --exchanges, --asset-class, --sector (memes, ai-agents, layer-1, defi), --min-oi-usd, --min-vol-usd and --limit; filter futures scanners with --coin, --exchanges, --min-apr, --min-oi-usd, --min-volume-usd, --min-depth-usd, --margin-type, --notional, --limit and --cursor. borrow lists margin borrow rates per coin (Binance, OKX, Bybit, Gate.io; --coin, --exchanges), one row per coin with the cheapest venue first and each venue's annual rate as a fraction. history backtests one pair's funding carry from stored settlements: --mode spot-perp with --venue (--contract, --direction), or --mode cross-exchange with --long-venue and --short-venue (--long-contract, --short-contract), and --days (1-90); it prints one row per backtest window, the legs and fees on stderr. boros compares Pendle Boros fixed funding with realised 7D and 30D funding for the same venue contract (--coin, --venue), one row per Boros market with the spread implied − realised as a fraction; a missing realised figure stays empty with its reason. An option the chosen board does not take is left out with a note on stderr.

Arbitrage commands

sharpe arb spot-perp                                  # top opportunities by APR (default)
sharpe arb spot-perp --limit 10                       # top 10
sharpe arb spot-perp --exchange binance --direction long
sharpe arb cross-exchange --limit 20
sharpe arb cross-exchange --sector memes             # one narrative: memes, ai-agents, layer-1, defi
sharpe arb dated-basis --coin BTC --notional 10000
sharpe arb calendar-spread --coin ETH --min-apr 5
sharpe arb perp-dated --coin SOL --exchanges Binance,Bybit
sharpe arb spot-transfer --coin BTC --exchanges KuCoin,Bitget --min-depth-usd 10000
sharpe arb borrow --coin BTC                          # margin borrow rates, cheapest venue first
sharpe arb history --coin BTC --venue Binance --days 30   # spot-perp carry backtest
sharpe arb history --mode cross-exchange --coin BTC --long-venue Hyperliquid --short-venue Binance
sharpe arb boros --coin BTC                           # Pendle Boros fixed vs realised funding
sharpe arb spot-perp --sort symbol                    # override default sort

Categories

  • Name
    narratives
    Type
    command
    Description

    Crypto narrative analytics covering L1, DeFi, AI, RWA, Memes, and 25 more sectors. Use --slug (or --narrative) to drill into a single narrative. --sort -change24h (or change24h) orders the list by 24h change, and --top N / --bottom N show the API's N highest and lowest narratives by 24h change. --correlation adds the correlation matrix of the narrative's tokens over --timeframe.

  • Name
    ecosystems
    Type
    command
    Description

    Blockchain ecosystem analytics for Ethereum, Solana, Base, Arbitrum, and 19 more chains. Use --slug (or --ecosystem) to drill in and --exclude-native to remove the native token from aggregates. --correlation adds the correlation matrix of the ecosystem's tokens over --timeframe.

  • Name
    memecoins
    Type
    command
    Description

    Memecoin narrative intelligence across grouped aggregate, theme, chain, and launchpad categories. Use --slug (or --narrative) for a single narrative such as dog-coins, cat-coins, ai-memes, or trump-coins; --historical supports 24h, 7d, 30d, and 1y; --coin-history adds top-coin price history in detail mode. Reorder with --sort FIELD (prefix with - for descending; common fields: marketCap, change24h, momentum, coinCount) and cap with --limit N.

  • Name
    memecoin-launches
    Type
    command
    Description

    Recently launched memecoin pairs screened by launch age, liquidity, volume, transactions, and profile. Supports --chains, --days, --limit, --profile, and --sort FIELD.

  • Name
    listings
    Type
    command
    Description

    New listings tagged by narrative. First argument is the mode: hub (default, its recent listings as the table; --json for the weekly and monthly buckets), recent, events, or exchanges. Supports --narrative, --exchange, --venue-type, --market-type, --event-type, --asset-class, --status, --confidence, --from, --to, --days, --limit, --cursor, and --sort FIELD. Exchanges mode also supports --enabled. An option the chosen mode does not take is left out with a note on stderr.

  • Name
    stablecoins
    Type
    command
    Description

    Stablecoin supply at peg, marked value, peg model, mechanism, chain supply, coverage, detail, and yield data. Use --type overview, --type detail --slug usdt, or --type yields.

Category commands

sharpe narratives
sharpe narratives --slug defi
sharpe ecosystems --slug solana
sharpe ecosystems --slug ethereum --exclude-native
sharpe memecoins
sharpe memecoins --sort -marketCap --limit 5           # top 5 memecoin narratives by market cap
sharpe memecoins --slug dog-coins --historical 7d
sharpe memecoin-launches --chains solana,base --days 7
sharpe listings
sharpe listings --narrative ai-agents
sharpe listings recent --exchange mexc --days 30
sharpe listings recent --narrative memes --limit 50 --json
sharpe stablecoins --type overview
sharpe stablecoins --type detail --slug usdt

Discovery

  • Name
    token-scanner
    Type
    command
    Description

    Read-only token scanner modes selected with --mode: hot, new-runners, alpha-drops, ai-top, and top-new. Filter with --chains or --chain, choose --profile, cap with --limit (1 to 72), apply liquidity/flow gates with --min-liquidity-usd, --min-volume-h24, --min-txns-h1, --min-txns-h24, and --min-price-change-h1. Control the observation window and age with --days, --max-age-hours, and --include-unknown-age; use --sort-by, --min-breakout-readiness, --min-relative-strength, and --max-vol-liq-ratio for opportunity ranking.

  • Name
    rug-check
    Type
    command
    Description

    Rug Check trending tokens or token security lookup. Use rug-check trending --limit N or rug-check security --address ... --chain-id ....

  • Name
    search
    Type
    command
    Description

    Search crypto and supported TradFi assets by name or ticker. The first argument is the query string.

  • Name
    gems
    Type
    command
    Description

    Market-ranked token screening. Scope to one chain with --chain (e.g. solana, base). Use --limit to control page size (default 20) and --cursor to continue from the snapshot-bound cursor printed by the previous page. Reorder with --sort FIELD (prefix with - for descending; common fields: volume24h, marketCap, change24h, athDistance).

  • Name
    predict
    Type
    command
    Description

    Deterministic directional scores and optional heuristic scenarios. Pass --coin with a ticker or canonical coin slug (e.g. BTC, bitcoin).

  • Name
    news
    Type
    command
    Description

    Aggregated crypto news feed. Supports --limit, --offset, --coin, --category, and --since (ISO 8601 timestamp) filters. Use --query/-q to search titles across the stored corpus. Reorder with --sort FIELD (prefix with - for descending; common fields: published, source).

  • Name
    mindshare
    Type
    command
    Description

    Narrative mindshare rankings, token rows, rolling windows, and historical snapshots. Use --tokens, --narrative, --historical, --timeframe, and --window to choose the payload.

  • Name
    web-traffic
    Type
    command
    Description

    Attention rankings, social snapshots, and market-level signals. Use --type, --mode, --tf, --entities, and --sub to select entity, payload, timeframe, IDs, and market sub-mode.

  • Name
    insider-selling
    Type
    command
    Description

    Insider selling pressure signals across crypto assets, filterable with --min-score and capped with --limit. --coin returns one coin's row by its CoinGecko id, as the scorer wrote it.

  • Name
    pump-dump
    Type
    command
    Description

    Pump-and-dump manipulation risk signals across crypto assets, filterable with --min-score, scoped to a lifecycle --phase (setup, markup, distribution, dump, dumping), and capped with --limit. --coin returns one coin's row by its CoinGecko id, as the scorer wrote it.

Discovery commands

sharpe token-scanner --mode alpha-drops --chains solana,base
sharpe rug-check trending --limit 25
sharpe search solana
sharpe gems --limit 10
sharpe gems --limit 10 --cursor <cursor-from-previous-page>
sharpe gems --chain solana --limit 10
sharpe predict --coin bitcoin
sharpe news --limit 5 --coin bitcoin
sharpe mindshare --window 7d
sharpe web-traffic --type coin --mode rankings
sharpe insider-selling --min-score 5
sharpe pump-dump --min-score 5

System

  • Name
    doctor
    Type
    command
    Description

    Self-diagnosis: checks CLI version, Python version, config file, API key status, network connectivity to both free and authenticated endpoints, and terminal environment.

  • Name
    login
    Type
    command
    Description

    Interactive authentication flow. Opens the Sharpe API key dashboard in your browser, prompts you to paste your API key, validates it against the API, and saves it to the config file.

  • Name
    coverage
    Type
    command
    Description

    Lists all available data products, supported exchanges, chart types, and coin coverage.

  • Name
    coins
    Type
    command
    Description

    Lists available futures coins with per-exchange capability flags.

System commands

sharpe doctor
sharpe login
sharpe coverage
sharpe coins --json

Output formats

By default, the CLI renders colored, box-drawn tables when writing to a terminal: the first 50 rows and 14 columns, with a note naming any columns it hides. When output is piped (non-TTY), it automatically switches to clean TSV with every row and column and no decorations, so downstream tools get parseable data without extra work.

JSON

Pass --json to data commands for raw JSON output:

JSON output

sharpe market --json

Pipe into jq for field selection:

Pipe to jq

sharpe market --json | jq '.bitcoin.price'
# 84231.40

CSV

Pass --csv for comma-separated output:

CSV output

sharpe funding --csv > funding_rates.csv

Piping and scripting

Because non-TTY output is clean TSV, you can use standard Unix tools directly:

Filter and sort with standard tools

sharpe funding | sort -t$'\t' -k3 -rn | head -10

Save arbitrage data to a file

sharpe arb spot-perp --json > arb_snapshot_$(date +%Y%m%d).json

Configuration

The CLI reads settings from ~/.config/sharpe/config.yaml. Create it manually or run sharpe login to generate it.

~/.config/sharpe/config.yaml

api_key: sk_live_your_key_here
default_coin: BTC
default_timeframe: 3M
  • Name
    api_key
    Type
    string
    Description

    Your Sharpe API key from the API key dashboard. Overridden by the SHARPE_API_KEY environment variable.

  • Name
    default_coin
    Type
    string
    Description

    Default coin for commands that accept --coin. Defaults to BTC. Overridden by the SHARPE_DEFAULT_COIN environment variable.

  • Name
    default_timeframe
    Type
    string
    Description

    Default timeframe for futures commands. Defaults to 3M. Valid values: 1W, 2W, 1M, 3M, 6M, 1Y, 3Y, ALL. Overridden by the SHARPE_DEFAULT_TIMEFRAME environment variable.

Environment variables

Environment variables take precedence over the config file:

Environment variable overrides

export SHARPE_API_KEY="sk_live_your_key_here"
export SHARPE_API_URL="https://www.sharpe.ai"
export SHARPE_FREE_URL="https://www.sharpe.ai"
export SHARPE_DEFAULT_COIN="ETH"
export SHARPE_DEFAULT_TIMEFRAME="1M"
export SHARPE_NO_UPDATE_CHECK="1"

The priority order is: environment variable > CLI flag > config file > built-in default.

  • Name
    SHARPE_API_KEY
    Type
    string
    Description

    API key for authenticated /api/v1/* requests. Overrides api_key in the config file.

  • Name
    SHARPE_API_URL
    Type
    string
    Description

    Site root for authenticated API calls. Defaults to https://www.sharpe.ai; legacy /api or /api/v1 base values are normalized.

  • Name
    SHARPE_FREE_URL
    Type
    string
    Description

    Site root for free public API fallback calls. Defaults to https://www.sharpe.ai; legacy /api base values are normalized.

  • Name
    SHARPE_DEFAULT_COIN
    Type
    string
    Description

    Default coin for commands that accept --coin. Overrides default_coin in the config file.

  • Name
    SHARPE_DEFAULT_TIMEFRAME
    Type
    string
    Description

    Default timeframe for futures and watch-mode chart calls. Overrides default_timeframe in the config file.

  • Name
    SHARPE_NO_UPDATE_CHECK
    Type
    string
    Description

    Set to 1 to disable the once-per-day package update check.

Custom SHARPE_API_URL and SHARPE_FREE_URL values must use https://, except http://localhost, http://127.0.0.1, or http://[::1] for local development. The CLI refuses API redirects so credentials are not forwarded to unexpected hosts.


Watch mode

Watch mode clears the screen and re-fetches data at a fixed interval. It is useful for keeping a terminal pane open during a trading session.

Watch market data every 30 seconds

sharpe watch market

Watch funding rates for ETH every 15 seconds

sharpe watch funding --coin ETH --interval 15

Watch futures OI chart

sharpe watch futures --chart oi-stacked --coin BTC

Supported watch targets: market, funding, futures, arb.

Press Ctrl+C to exit. The header shows the current UTC time and refresh interval.


Works without an API key

Most commands work without authentication. When no API key is configured, the CLI tries the free public endpoints at www.sharpe.ai/api/ instead of the authenticated v1 API at www.sharpe.ai/api/v1/. Commands backed only by authenticated v1 endpoints require an API key.

To check your current authentication status and connectivity:

Diagnose your setup

sharpe doctor

Was this page helpful?