Quick start
The quickest setup uses the account you already have in the chat app. You create and fund it in the browser, then sign the proxy in to it. The CLI and the chat app then share one account and one balance.
Create and fund your account
Go to zerosignal.ai, create a passkey, and add funds with a card, Apple Pay, Google Pay, or crypto. The whole flow is covered in the chat app's Quick start, and funding in Funding.
Already use the chat app and have a balance? Skip this step.
Install
- macOS
- Linux
- Windows
brew install txnlab/tap/zs-proxy
The macOS build is a code-signed, notarized universal binary.
No Homebrew? Use the one-line installer:
curl -fsSL https://zerosignal.ai/install.sh | sh
curl -fsSL https://zerosignal.ai/install.sh | sh
It picks the build for your architecture, checks it against the release's
checksums.txt, and installs to /usr/local/bin if you can write there, or
~/.local/bin otherwise. It never asks for sudo. If that directory isn't on
your PATH, it prints the line to add.
scoop bucket add txnlab https://github.com/txnlab/scoop-bucket
scoop install zs-proxy
Scoop is the supported Windows install. There's no PowerShell one-liner yet.
More install options
- Read the installer first:
curl -fsSL https://zerosignal.ai/install.sh | less. - Pin a version or choose the directory:
curl -fsSL https://zerosignal.ai/install.sh | ZS_VERSION=0.16.1 ZS_INSTALL_DIR=$HOME/bin sh. - Upgrade: re-run
curl -fsSL https://zerosignal.ai/install.sh | shwithoutZS_VERSION; it installs the latest release over the old copy. - Install by hand: download the archive for your platform from the
zs-proxy releases page, check
it against
checksums.txt, and putzs-proxyon yourPATH.
Sign in
zs-proxy wallet login
Your browser opens zerosignal.ai. Sign in with your passkey if you aren't already. Before you click Approve & connect, note the address under This account; the terminal asks you to confirm it next. Approving asks for your passkey again, then the terminal finishes:
Opening your browser to sign in…
https://zerosignal.ai/cli?port=…&state=…
Waiting for the browser handoff… (Ctrl-C to cancel)
Derived account: ABCD…WXYZ
Does this match the address shown in your client? [y/N]: y
✔ imported wallet (mainnet)
ABCD…WXYZ
Answer y if the address matches. The proxy now signs requests as your
chat-app account. Your recovery phrase goes straight from the browser to the
CLI on your computer and never passes through a server.
If you skip this step, proxy start asks how to set up a wallet the first
time. Press Enter to take the default, Web, which does the same thing.
Start the proxy
zs-proxy proxy start
✔ proxy started (pid 48213)
→ http://127.0.0.1:9376/v1 (MAINNET)
logs: zs-proxy proxy logs -f stop: zs-proxy proxy stop
The proxy runs in the background and hands your prompt back. It uses
mainnet and real money, and needs no config file. It starts even without
funds: a request your balance can't cover fails with 402 wallet_unfunded
until you add more.
Connect your tools
zs-proxy connect
connect finds the supported AI tools you have installed and, after you
confirm, points each one at the proxy. See
Connecting AI tools for the list.
For any other OpenAI-compatible tool, set it up by hand:
- Base URL:
http://localhost:9376/v1 - API key: anything non-empty (some apps refuse a blank field). The proxy ignores it; your wallet pays for each request.
Check it works
zs-proxy status
Check that the USDC: line shows your balance and the ready: line says
yes. (zs-proxy proxy status separately tells you whether the proxy is
running.) Then send a message from the tool you connected, or try curl:
curl http://localhost:9376/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model": "qwen3-coder", "messages": [{"role": "user", "content": "Say hi in five words."}]}'
To see what a request cost, see Seeing what you paid.
To set up on a machine with no browser (SSH or headless), to use a separate wallet for an agent, or to run the proxy on a server or in CI, see Other ways to set up your wallet.
What's next
- Running as a service: start the proxy at login and keep it running across reboots.
- Configuration:
config.yaml, networks, and spend caps. - Wallet & funding: wallet commands, funding from the terminal, and the prepaid ticket pool.