Install
Standalone binaries are published to
Tealstreet/cli. Pick a
channel below; both install the same artifact.
macOS & Linux
# One-liner — detects platform/arch, drops into /usr/local/bin
curl -fsSL https://get.tealstreet.io/cli | bash
# Homebrew tap
brew install tealstreet/tap/tealstreet
Verify:
tealstreet --version
If you see command not found, /usr/local/bin isn't on your PATH —
add it, or symlink the binary somewhere that is.
The Homebrew formula lives in
Tealstreet/homebrew-tap.
Windows
npm install -g @tealstreet/cli
That fetches tealstreet-windows-x64.exe and puts a tealstreet command on
your PATH. For a direct download, grab the .exe from the releases page and
put it somewhere on your PATH yourself.
Two things to know:
- Run it from Windows Terminal or PowerShell 7. The REPL draws a pinned
top bar and bottom footer using ANSI escape sequences. Legacy
cmd.exedoes not render those correctly. tealstreet updateworks either way. An npm install upgrades throughnpm update -g. A directly-downloaded.exeis replaced by renaming the running binary aside and moving the new one into place — Windows will not let a running.exebe overwritten, only renamed. Restart the CLI afterwards; the leftover.oldfile is removed on the next launch.
WSL remains a fine alternative — the linux-x64 binary runs there with the
macOS/Linux one-liner above.
Available builds
| Asset | Platform |
|---|---|
tealstreet-darwin-arm64 | Apple Silicon Macs |
tealstreet-darwin-x64 | Intel Macs |
tealstreet-linux-x64 | Linux x86_64 |
tealstreet-linux-arm64 | Linux arm64 |
tealstreet-windows-x64.exe | Windows x64 |
First run
tealstreet
No args = start the REPL. The prompt looks like:
:<account> [<symbol> $<last-price>] >
If you have no accounts yet, add one:
tealstreet account add -n mybybit -e bybit -k <KEY> -s <SECRET> --default
Then re-launch and it'll auto-focus that account. To see every supported exchange and the credential fields each one needs:
tealstreet account exchanges
HyroTrader trial accounts
HyroTrader trial accounts use Tealstreet's hyrotrader exchange adapter,
but the standalone CLI needs the Hyro simulator REST origin in your shell
environment before it can connect. Without it, connection fails with:
HyroTrader simulator REST URL is not configured
Set the simulator origin, then add the account:
export NEXT_PUBLIC_HYROTRADER_SIMULATOR_REST_URL="https://<hyro-simulator-origin>"
tealstreet account add -n hyro-trial -e hyrotrader -k <KEY> -s <SECRET> --default
tealstreet interactive --account hyro-trial
Use the origin only, not a /v5/... path. Public and private WebSocket
URLs are normally derived from that REST origin. See
Config files → Exchange endpoint overrides
for the optional WebSocket overrides.
Restricted regions and Bybit 403s
If a direct Bybit connection returns a 403 geo-restriction error, the CLI needs a different route before exchange requests can succeed. Use a VPN, or add the account from inside the REPL with Tealstreet proxy routing:
> accounts add -n mybybit -e bybit -k <KEY> -s <SECRET> --tealstreet-proxy --proxy-region SG
This only changes how the CLI reaches the exchange. It does not make TradingView webhooks reach the CLI; the hosted TradingView-to-CLI relay is not live yet.
Logging in
The CLI uses Auth0 for update checks and identity — separate from any exchange API keys, which live only on your machine.
From your shell, or as login inside the REPL:
tealstreet login
Your browser opens, you sign in, the CLI prints Logged in as <email>,
and writes the token to ~/.tealstreet/config.json. tealstreet logout clears it, and
tealstreet whoami (alias auth) shows the current user.
The OAuth callback listens on localhost:9876 during the flow.
Updating
tealstreet update # download and replace the running binary
tealstreet update -c # version-check only
update --check (or -c) checks the latest release on GitHub without
downloading. The REPL also runs a background check at startup and prints
a banner when a newer version is published.
Top-level flags
| Flag | Effect |
|---|---|
-v / --version | Print version and exit |
--update | Trigger updater |
--check-update | Version-check only |
--disable-all | Start REPL with all exchanges disabled |
--disable-all is useful when you want to launch the CLI without
auto-connecting every account — for cold-starts on flaky networks, or for
running purely-local commands like sim on / set.
File locations
The CLI keeps state under ~/.tealstreet/. All of it is text or SQLite —
inspectable with cat, jq, or sqlite3. See
Config files for the full layout.
| Override | Effect |
|---|---|
TEALSTREET_CONFIG_DIR | Move the entire state directory |
TEALSTREET_CONFIG_FILE | Override just the main config file path |
Where to next
- First trade — Quickstart
- Add more accounts — Commands → Accounts
- Pair to the web terminal — Pairing