Flowsery CLI
Drive Flowsery from your terminal or a script. One binary, no runtime to manage, and every command can print JSON.
Install
Pick whichever fits your machine. The Homebrew and curl routes install a standalone binary, so Node is not needed.
npm install -g @flowsery/clibrew trust Flowsery/tap && brew install Flowsery/tap/flowserycurl -fsSL https://flowsery.com/install.sh | shnpx -p @flowsery/cli flowsery --helpHomebrew 7 refuses to load a formula from a third-party tap until you trust it, which is what brew trust does. Skip it and both install and upgrade stop with "Refusing to load formula from untrusted tap".
The install gives you two names for the same program. The short one is fsy.
Authentication
Create an API token and hand it to login. Tokens live in your workspace settings: API & AI Agents.
flowsery loginThe command opens the token page, reads the token from a hidden prompt, checks the flow_ws_ prefix locally, then verifies it with one API call before writing it to disk at mode 0600. Nothing is stored if the check fails.
In CI, pipe the token in and skip the prompt
echo "$MY_SECRET" | flowsery login --token-stdinOr skip storage entirely and pass it per command
FLOWSERY_API_TOKEN=flow_ws_your_token flowsery whoamiQuick start
A week of traffic, the top referrers over a month, then a refreshing live view.
flowsery stats --range 7d
flowsery breakdown referrers --range 30d --limit 10
flowsery liveCommands
Every command takes --help, and most take --json. Run flowsery doctor first if something looks wrong.
Getting in
| flowsery login | Store an API token on this machine, after checking it works |
| flowsery logout | Remove the stored token |
| flowsery whoami | Show which token is in use and what it can see |
Everyday work
| flowsery site | The websites this token can report on |
| flowsery stats | Traffic, revenue and realtime figures |
| flowsery breakdown | Visitors and revenue grouped by one dimension |
| flowsery goal | Goal completions, and the writes that record them |
| flowsery payment | Revenue writes |
| flowsery issue | AI-detected session issues |
| flowsery visitor | One visitor, their identity, revenue and timeline |
| flowsery live | A refreshing dashboard for one website |
Escape hatches
| flowsery api | Send an authenticated request to any API endpoint |
| flowsery mcp | Print the MCP server config for your editor |
| flowsery open | Open a page of the web app in your browser |
This machine
| flowsery config | Read and write CLI preferences |
| flowsery doctor | Check this machine, the config files, the API and the default website |
| flowsery completion | Print the shell completion script |
Each command lists its own flags under flowsery <command> --help.
Scripting
Add --json to any command and you get a stable envelope with ok, command and data, ready for jq.
flowsery whoami --jsonYou rarely need the flag. Output switches to JSON on its own when stdout is not a terminal or CI is set, so a piped command already gives you JSON.
Exit codes
| 0 | Success |
| 2 | Usage error, such as a missing or unknown flag |
| 3 | The token was rejected or is missing |
| 4 | Nothing matched that id |
| 5 | The API rejected the input |
| 7 | Too many requests |
| 8 | Network failure or timeout |
| 9 | Plan or quota limit reached |
Next steps
Create a token, or wire the same account into an AI agent instead.