Back to AI agents

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
npm install -g @flowsery/cli
Homebrew (macOS, Linux)
brew trust Flowsery/tap && brew install Flowsery/tap/flowsery
Install script (macOS, Linux)
curl -fsSL https://flowsery.com/install.sh | sh
Run once, without installing
npx -p @flowsery/cli flowsery --help

Homebrew 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 login

The 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-stdin

Or skip storage entirely and pass it per command

FLOWSERY_API_TOKEN=flow_ws_your_token flowsery whoami

Quick 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 live

Commands

Every command takes --help, and most take --json. Run flowsery doctor first if something looks wrong.

Getting in

flowsery loginStore an API token on this machine, after checking it works
flowsery logoutRemove the stored token
flowsery whoamiShow which token is in use and what it can see

Everyday work

flowsery siteThe websites this token can report on
flowsery statsTraffic, revenue and realtime figures
flowsery breakdownVisitors and revenue grouped by one dimension
flowsery goalGoal completions, and the writes that record them
flowsery paymentRevenue writes
flowsery issueAI-detected session issues
flowsery visitorOne visitor, their identity, revenue and timeline
flowsery liveA refreshing dashboard for one website

Escape hatches

flowsery apiSend an authenticated request to any API endpoint
flowsery mcpPrint the MCP server config for your editor
flowsery openOpen a page of the web app in your browser

This machine

flowsery configRead and write CLI preferences
flowsery doctorCheck this machine, the config files, the API and the default website
flowsery completionPrint 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 --json

You 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

0Success
2Usage error, such as a missing or unknown flag
3The token was rejected or is missing
4Nothing matched that id
5The API rejected the input
7Too many requests
8Network failure or timeout
9Plan or quota limit reached

Next steps

Create a token, or wire the same account into an AI agent instead.