Quickstart | CLI Overview | Command Reference | Configuration
- Browse remote exchange and asset datasets from the terminal
- Sync only the snapshot ranges you need
- Materialize full UTC-day local files automatically when a day is fully present
- Inspect the local dataset tree managed by Polaris
- Automate data workflows with plain CLI output or
--json
curl -fsSL https://raw.githubusercontent.com/polaris-data/cli/main/install.sh | bashOr with Homebrew:
brew tap polaris-data/tap
brew install polaris-data/tap/polarispolarispolaris list --exchange hyperliquid --asset BTCUSDTpolaris sync \
--exchange hyperliquid \
--asset BTCUSDT \
--from 2026-06-01T00:00:00Z \
--to 2026-06-02T00:00:00Zpolaris list local --exchange hyperliquid --asset BTCUSDTAfter sync completes, Polaris stores the fetched snapshot files under its managed local root.
If you have an API key, store it in the OS credential store:
polaris account set-keyOr set it per-session:
export POLARIS_API_KEY="your_api_key"Check whether Polaris sees a configured credential:
polaris account statuspolaris
├── account
│ ├── set-key
│ └── status
├── list
│ └── local
├── reset
├── sync
└── update
Top-level help:
polaris --helpOpens the interactive remote dataset browser TUI in a real terminal. If no TUI can be rendered, it falls back to plain CLI output.
Prompts for a Polaris API key and stores it in the OS credential store.
polaris account set-keyPrints whether Polaris currently has a Polaris API key configured, and whether that credential came from POLARIS_API_KEY or the OS credential store.
polaris account statusLists remote datasets available from Polaris.
polaris list --json
polaris list \
--exchange aster \
--asset BTCUSDT \
--search btc \
--limit 25Lists local snapshots under the configured root.
polaris list local --jsonDownloads missing snapshots for the requested dataset and time range.
After sync completes, the fetched snapshots are stored under data/ within the configured local root.
polaris sync \
--exchange aster \
--asset BTCUSDT \
--from 2026-06-01T00:00:00Z \
--to 2026-06-02T00:00:00Z
polaris sync \
--exchange aster \
--asset BTCUSDT \
--from 2026-06-01T00:00:00Z \
--to 2026-06-02T00:00:00Z \
--json \
--concurrency 8Removes all local dataset state managed by Polaris under the configured root.
polaris reset
polaris reset --jsonDownloads the release installer and updates the current CLI in place.
By default, polaris update tries to preserve the current install directory when running from an installed polaris binary. If it is run from a legacy tick binary, it preserves that legacy install directory. You can override that behavior explicitly.
polaris update
polaris update --version v0.3.0
polaris update --install-dir "$HOME/.local/bin"| Variable | Default | Purpose |
|---|---|---|
POLARIS_BASE_URL |
https://api.polaris.supply |
Base URL for Polaris API requests |
POLARIS_API_KEY |
unset | Optional bearer token for authenticated Polaris requests |
POLARIS_ROOT |
platform app-data directory | Override the local dataset root directory |
POLARIS_CONCURRENCY |
unset | Default sync concurrency when --concurrency is not provided |
POLARIS_TIMEOUT_SECS |
unset | Request timeout in seconds |
POLARIS_API_KEY takes precedence over the stored credential from polaris account set-key.
Example:
export POLARIS_BASE_URL="https://api.polaris.supply"
export POLARIS_ROOT="$HOME/.local/share/polaris-dev"
export POLARIS_CONCURRENCY="8"
export POLARIS_TIMEOUT_SECS="60"
polaris list
polaris list local
polaris sync --exchange aster --asset BTCUSDT --from 2026-06-01T00:00:00Z --to 2026-06-02T00:00:00ZCompatibility notes:
TICK_ROOT,TICK_CONCURRENCY, andTICK_TIMEOUT_SECSare still accepted- If
POLARIS_API_KEYis unset, Polaris also falls back to the legacytickOS credential entry when needed
Use --json when you want structured output for scripts or agents.
Commands with --json support:
polaris listpolaris list localpolaris syncpolaris reset
Examples:
polaris list --json
polaris list local --json
polaris sync --exchange aster --asset BTCUSDT --from 2026-06-01T00:00:00Z --to 2026-06-02T00:00:00Z --json
polaris reset --jsonBy default, Polaris stores data under the platform app-data directory unless POLARIS_ROOT is set.
Default paths:
- macOS:
~/Library/Application Support/polaris - Linux:
$XDG_DATA_HOME/polarisor~/.local/share/polaris - Windows:
%APPDATA%\\polaris
Within that root, Polaris owns this layout:
<root>/
data/
tmp/
cache/
data/stores snapshot files fetched from Polaristmp/stores temporary sync statecache/stores local cache state used by the CLI
Compatibility note:
- If the new default Polaris root does not exist but the legacy
tickdata root does, Polaris keeps using the legacy root automatically
Useful local commands:
cargo run -- --help
cargo testPolaris release assets are built by a single GitHub Actions workflow from the crate version in Cargo.toml.
Expected assets:
polaris-v{version}-x86_64-apple-darwin.tar.gzpolaris-v{version}-aarch64-apple-darwin.tar.gzpolaris-v{version}-x86_64-unknown-linux-gnu.tar.gzpolaris-v{version}-aarch64-unknown-linux-gnu.tar.gzpolaris-v{version}-checksums.txt

