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.
Requires Python 3.10+. This page will switch to registry install commands only after a clean-environment PyPI smoke test passes.
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 toolmarket_briefing;--jsonprints the report object (report_mdand 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 toolanalyze_coin;--jsonprints 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 toolfind_opportunities;--jsonprints 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). Supportsmarket,funding,futures, andarbas targets. Use--chart,--coin, and--typefor watched derivatives or arbitrage views.
- Name
correlation- Type
- command
- Description
Asset correlation matrix over
30d,90d,1y, or3ywith--period, optionally filtered with comma-separated canonical coin IDs via--ids.
- Name
heatmap- Type
- command
- Description
Market heatmap data for
coins,narratives, orecosystemsvia--mode, with an optional--categoryfilter.
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_classandmargin_type; current and accumulated rows also carryasset_id,lot_multiplier,instrument_statusandis_live. Use--typeto selectcurrent(default),accumulated, orhistory.--coinfilters to one coin in any mode: every contract of the asset, lot spellings such as1000PEPEincluded, exactly as the API scopes it.--sort FIELDreorders rows (prefix with-for descending; common fields:rate,rate_8h,apr,base_coin,exchange,open_interest,next_funding_time); with the current type,open_interestand-open_interestare 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 Nkeeps only the first N rows after filter/sort.--exchange,--asset-classand--marginfilter the book;--page-size Nand--cursorpage it on the API. History mode also accepts--days.rateis a fraction charged once perinterval_hours, which varies by contract (1h, 2h, 4h, 8h or 24h). It is not a percentage; current rows also carryrate_8handapr. 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--summarywith--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
--windowto selectcurrent(default; the next 24 hours at current rates, priced live and always estimated),1d,3d, or7d(realised; one below 90% coverage is still building history).--classselectsall(default),crypto, orrwa.--coinand--exchangefilter rows.netislong_paidminusshort_paid: positive is a cost to longs, negative means shorts paid.--limit Ncaps rows returned and--offset Npages them;--sort FIELDorders them bybase_coin,net,long_paid,short_paidoropen_interest_usd(prefix-for descending);--expand venuesadds each row's per-venue breakdown to the JSON. Each row shows the window'spartial,completeandhalted_within_windowflags.
- Name
global- Type
- command
- Description
Whole-market derivatives board across crypto perps and every RWA perp class. Use
--tabto selectcrypto(default),equity,preipo,etf,index,commodityorfx. The market-wide metric line is identical on every tab. Supports--sortand--limitlikefunding.
- Name
rwa-perps- Type
- command
- Description
RWA-perp funding and carry (stocks, pre-IPO, ETFs, indices, commodities) across 19 venues. Use
--typeto selectcurrent(default),history(requires--symbol; accepts--days), orstats(best carry, top spread, weekend premium).--venuefilters to one venue. Supports--sortand--limitlikefunding.
- 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;--limitand--cursorpage the raw rows oldest-first. Without--limit,oi-snapshotshows 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, orspot-transferas 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,--directionand--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-usdand--limit; filter futures scanners with--coin,--exchanges,--min-apr,--min-oi-usd,--min-volume-usd,--min-depth-usd,--margin-type,--notional,--limitand--cursor.borrowlists 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.historybacktests one pair's funding carry from stored settlements:--mode spot-perpwith--venue(--contract,--direction), or--mode cross-exchangewith--long-venueand--short-venue(--long-contract,--short-contract), and--days(1-90); it prints one row per backtest window, the legs and fees on stderr.boroscompares 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(orchange24h) orders the list by 24h change, and--top N/--bottom Nshow the API's N highest and lowest narratives by 24h change.--correlationadds 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-nativeto remove the native token from aggregates.--correlationadds 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 asdog-coins,cat-coins,ai-memes, ortrump-coins;--historicalsupports24h,7d,30d, and1y;--coin-historyadds 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;--jsonfor the weekly and monthly buckets),recent,events, orexchanges. 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, andtop-new. Filter with--chainsor--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-ratiofor opportunity ranking.
- Name
rug-check- Type
- command
- Description
Rug Check trending tokens or token security lookup. Use
rug-check trending --limit Norrug-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--limitto control page size (default 20) and--cursorto 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
--coinwith 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/-qto 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--windowto choose the payload.
- Name
web-traffic- Type
- command
- Description
Attention rankings, social snapshots, and market-level signals. Use
--type,--mode,--tf,--entities, and--subto 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-scoreand capped with--limit.--coinreturns 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.--coinreturns 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.
The terminal renderer formats each number by the unit its contract
declares. Fraction fields (rate, fundingRate, apr, netApr,
oi_change_24h, and every other field documented as a fraction) are
shown multiplied by 100 as percentages: apr = 2.74 prints as +274%.
Percent fields print as they are, with a % sign. --json, --csv and
piped TSV preserve the raw values for scripting.
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_KEYenvironment variable.
- Name
default_coin- Type
- string
- Description
Default coin for commands that accept
--coin. Defaults toBTC. Overridden by theSHARPE_DEFAULT_COINenvironment 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 theSHARPE_DEFAULT_TIMEFRAMEenvironment 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. Overridesapi_keyin the config file.
- Name
SHARPE_API_URL- Type
- string
- Description
Site root for authenticated API calls. Defaults to
https://www.sharpe.ai; legacy/apior/api/v1base 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/apibase values are normalized.
- Name
SHARPE_DEFAULT_COIN- Type
- string
- Description
Default coin for commands that accept
--coin. Overridesdefault_coinin the config file.
- Name
SHARPE_DEFAULT_TIMEFRAME- Type
- string
- Description
Default timeframe for futures and watch-mode chart calls. Overrides
default_timeframein the config file.
- Name
SHARPE_NO_UPDATE_CHECK- Type
- string
- Description
Set to
1to 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.
Watch mode requires a TTY. It will not work when piped to another process.
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.
Free endpoints have lower rate limits and may not include all data fields. Run
sharpe login to authenticate and get full access.
To check your current authentication status and connectivity:
Diagnose your setup
sharpe doctor