Terminal CLI for Fleets. Per-site commands mirror the app UI tabs at https://fleets.run/app/<slug>/<tab>.
npm install -g fleetsfleets loginPicks between two methods:
- browser (default) — device flow: CLI prints a URL + 8-character code, auto-opens your browser, you click authorize, CLI finishes automatically.
- paste a token — mint one in app → account → cli, paste it in.
Skip the prompt with a flag:
fleets login --browser # force device flow
fleets login --paste # force token paste
fleets login --token fl_xxxxxxxxxxxxxxxx # paste in one shot (CI)
export FLEETS_TOKEN=fl_xxxxxxxxxxxxxxxx # skip login entirelyThe most intuitive way to run commands is to put the site slug first, like you're "inside" that site:
fleets fightbets # GA4 summary (defaults to stats)
fleets fightbets sources # top traffic sources
fleets fightbets funnel session_start view # conversion funnel
fleets fightbets seo --range 30d # GSC summary, last 30 days
fleets fightbets open settings # print app URLThe legacy form fleets <command> <slug> (e.g. fleets sources fightbets) still works.
| Command | Description |
|---|---|
fleets login |
Browser device-flow auth (no paste) |
fleets add <domain> [--detect] |
Create a site; --detect auto-links GA4 + GSC |
fleets connect <slug> |
Auto-detect GA4 + GSC via service account |
fleets connect <slug> --property <id> |
Set GA4 property explicitly |
fleets connect <slug> --gsc <site-url> |
Set GSC site explicitly |
All accept --range (default 7d) and --json. Commands with top-N tables also accept --limit.
| Command | Tab | Data source |
|---|---|---|
fleets list |
— | All your sites with sparkline + Δ7d |
fleets <slug> / fleets stats <slug> |
day | GA4 summary |
fleets <slug> sources |
sources | GA4 traffic sources |
fleets <slug> campaigns |
campaigns | GA4 UTM campaigns |
fleets <slug> referrals |
referrals | GA4 referrals |
fleets <slug> landers |
landers | GA4 landing pages |
fleets <slug> events |
events | GA4 events |
fleets <slug> users |
users | GA4 country + device breakdown |
fleets <slug> funnel <step1> <step2>… |
funnel | GA4 funnel |
fleets <slug> seo |
seo | Google Search Console |
fleets <slug> edge |
edge | Cloudflare Analytics |
fleets <slug> speed |
speed | PageSpeed Insights |
| Command | Description |
|---|---|
fleets <slug> export |
Daily GA4 CSV/JSON export |
fleets <slug> query "<text>" |
Natural-language analytics query |
fleets <slug> open [tab] |
Print the app URL for a site |
The same package ships an MCP server, fleets-mcp,
so agents (Claude Code, Claude Desktop, Cursor, …) can pull your live Fleets
analytics as tools. It reuses the CLI's auth — run fleets login once (or set
FLEETS_TOKEN) and the MCP server picks up the same token from ~/.fleets/config.json.
Claude Code:
claude mcp add fleets -- fleets-mcpClaude Desktop / Cursor (claude_desktop_config.json or .cursor/mcp.json):
{
"mcpServers": {
"fleets": {
"command": "fleets-mcp"
}
}
}No global install? Use npx with the fleets-mcp launcher package:
{
"mcpServers": {
"fleets": {
"command": "npx",
"args": ["-y", "fleets-mcp"]
}
}
}If you authenticate via env instead of fleets login, add
"env": { "FLEETS_TOKEN": "fl_xxx" } to the server entry.
All read-only except log_change (writes a change-log entry). Every analytics
tool takes a slug (from list_sites) and an optional range (7d, 30d, 24h).
| Tool | What it returns |
|---|---|
list_sites |
All sites + connected sources (GA4 / Cloudflare / GSC) — start here |
stats |
GA4 summary: sessions, users, pageviews, events, engagement, bounce |
sources · campaigns · referrals · landers · events |
GA4 breakdowns (accept limit) |
users · devices · demographics |
GA4 audience breakdowns |
funnel |
GA4 conversion funnel across steps (2+) |
seo |
Google Search Console summary |
edge |
Cloudflare edge analytics (bots, humans, cache) |
speed |
PageSpeed Insights + Core Web Vitals |
insights |
AI-ready signals worth investigating (optionally per site) |
ask |
Natural-language question answered server-side with citations |
log_change · recall |
Write / read the per-site change log |
| Variable | Description |
|---|---|
FLEETS_TOKEN |
Personal access token. Skip fleets login entirely — useful for CI. Overrides ~/.fleets/config.json. |
All --range flags accept:
7d— last 7 days30d— last 30 days90d— last 90 days24h— last 24 hours (rounds to 1 day)
- Node.js >= 22 (LTS)
- Works on macOS, Linux, Windows