CLI reference
Install: npm install -g funnelkeeper (or npx funnelkeeper …). The binary is fk.
Credentials live in ~/.config/funnelkeeper/config.json (created 0600 by fk login).
fk signup
create a funnelkeeper workspace (email verification, or —agent for an immediate api key + claim link).
fk signup [flags]
| Flag | Type | Required | Description |
|---|---|---|---|
--agent | boolean | no | create via the agent path: returns an api key immediately plus a claim url for the human |
--email | string | no | account email (prompted if omitted) |
--name | string | no | owner display name (agent path only) |
--api-url | string | no | api base url (default https://api.funnelkeeper.com) |
fk signup
fk signup --agent --email you@example.com
fk login
sign in and store an api key in ~/.config/funnelkeeper (0600).
fk login [flags]
| Flag | Type | Required | Description |
|---|---|---|---|
--key | boolean | no | paste an existing api key instead of using a password |
--api-url | string | no | api base url (default https://api.funnelkeeper.com) |
fk login
fk login --key
fk login --api-url http://localhost:3100
fk logout
delete the stored api key.
fk logout
fk logout
fk account
show the current workspace (name, email, role).
fk account
fk account
fk billing
show the current plan, trial, and usage (prints a checkout or portal url with —checkout / —portal).
fk billing [flags]
| Flag | Type | Required | Description |
|---|---|---|---|
--checkout | string | no | indie | growth — print a Stripe Checkout URL |
--portal | boolean | no | print the Stripe customer-portal URL |
fk billing
fk billing --checkout growth
fk billing --portal
fk export
download events or transactions as csv (growth plan).
fk export <kind> [flags]
| Flag | Type | Required | Description |
|---|---|---|---|
--product | string | yes | project slug |
--out | string | no | write to this file instead of stdout |
fk export events --product demo
fk export transactions --product demo --out tx.csv
fk accounts
list workspaces this identity can see (api key: the key’s tenant).
fk accounts
fk accounts
fk team
list people in the current workspace.
fk team
fk team
fk team invite
invite someone to this workspace (existing funnelkeeper logins get a join link).
fk team invite [flags]
| Flag | Type | Required | Description |
|---|---|---|---|
--email | string | yes | invitee email |
--role | string | no | owner | member (default member) |
fk team invite --email teammate@agency.com
fk team invite --email owner@client.com --role owner
fk claim-link
print a fresh claim url so the human can set a password on an agent-created account.
fk claim-link
fk claim-link
fk product create
create a project in your account.
fk product create [flags]
| Flag | Type | Required | Description |
|---|---|---|---|
--name | string | yes | display name |
--slug | string | yes | url-safe id (lowercase, hyphens) |
--currency | string | no | iso currency code (default USD) |
--domain | string | no | project domain |
fk product create --name "Demo" --slug demo --currency AUD
fk detect
auto-detect active analytics, pixels, tag managers, and tools on a website or project.
fk detect <url> [flags]
| Flag | Type | Required | Description |
|---|---|---|---|
--product | string | no | project slug (uses project domain if url omitted) |
--url | string | no | website url to scan (e.g. https://motormerchants.com.au) |
fk detect https://motormerchants.com.au
fk detect --product demo-product
fk connect
connect ga4 | gtm | google-ads | gsc (browser/SA), or semrush | clarity | posthog | opinly | bing | ahrefs | meta-ads | meta-ads-filter | linkedin-ads | meta-social | x-social | stripe (token).
fk connect <source> [flags]
| Flag | Type | Required | Description |
|---|---|---|---|
--product | string | yes | project slug |
--prefixes | string | no | comma-separated campaign name prefixes (meta-ads-filter only) |
fk connect ga4 --product demo
fk connect google-sa --product demo
fk connect semrush --product demo
fk connect clarity --product demo
fk connect posthog --product demo
fk connect opinly --product demo
fk connect bing --product demo
fk connect ahrefs --product demo
fk connect stripe --product demo
fk connect meta-ads-filter --product demo --prefixes META_
fk connect test
verify a connected source can actually deliver data.
fk connect test <source> [flags]
| Flag | Type | Required | Description |
|---|---|---|---|
--product | string | yes | project slug |
fk connect test ga4 --product demo
fk connect sync
sync mysql | postgres | mongo | ga4 | posthog | opinly | gsc | bing | meta-ads | linkedin-ads | meta-social | x-social | stripe now.
fk connect sync <source> [flags]
| Flag | Type | Required | Description |
|---|---|---|---|
--product | string | yes | project slug |
fk connect sync mysql --product motor-merchants
fk status
pipeline health: jobs, sources, queue backlog.
fk status
fk status
fk track
send a first-party funnel event (server-side, uses your api key).
fk track [flags]
| Flag | Type | Required | Description |
|---|---|---|---|
--product | string | yes | project slug |
--stage | string | yes | canonical stage (lead, converted, …) |
--dedupe | string | yes | idempotency key (required) |
--name | string | no | free-form event name |
--email | string | no | identity email |
--external-id | string | no | identity external id |
--score | string | no | lead grade (A, B, C, D) or numeric score |
--cents | number | no | value in integer cents |
--currency | string | no | iso currency (defaults to the project) |
fk track --product demo --stage converted --dedupe order-123 --cents 9900 --name purchase
fk tracking-key
show the publishable write key and install snippets.
fk tracking-key [flags]
| Flag | Type | Required | Description |
|---|---|---|---|
--product | string | yes | project slug |
fk tracking-key --product demo
fk tracking-key rotate
mint a new write key and revoke the previous one.
fk tracking-key rotate [flags]
| Flag | Type | Required | Description |
|---|---|---|---|
--product | string | yes | project slug |
fk tracking-key rotate --product demo
fk tracking-key deploy
publish the snippet via google tag manager (asks for typed confirmation).
fk tracking-key deploy [flags]
| Flag | Type | Required | Description |
|---|---|---|---|
--product | string | yes | project slug |
fk tracking-key deploy --product demo
fk ads
roi by campaign, ad group, keyword or creative — spend, revenue, roas, cac.
fk ads [flags]
| Flag | Type | Required | Description |
|---|---|---|---|
--product | string | yes | project slug |
--level | string | no | campaign | ad_group | keyword | ad (default campaign) |
--days | number | no | window in days (default 30) |
fk ads --product demo --level keyword
fk ads --product demo --level ad --days 7
fk ads url-suffix
show whether google ads tags landing urls with the params keyword-level roi needs.
fk ads url-suffix [flags]
| Flag | Type | Required | Description |
|---|---|---|---|
--product | string | yes | project slug |
fk ads url-suffix --product demo
fk ads url-suffix apply
add those params to the google ads account (asks for typed confirmation — changes every ad’s landing url).
fk ads url-suffix apply [flags]
| Flag | Type | Required | Description |
|---|---|---|---|
--product | string | yes | project slug |
fk ads url-suffix apply --product demo
fk portfolio
one row per project: spend, revenue, cac, ltv:cac.
fk portfolio
fk portfolio
fk queue list
pending keeper cards.
fk queue list
fk queue list
fk queue approve
approve a card (asks for typed confirmation — this can move money).
fk queue approve <id>
fk queue approve 3f1c…
fk queue reject
dismiss a card.
fk queue reject <id>
fk queue reject 3f1c…
fk queue snooze
snooze a card.
fk queue snooze <id> [flags]
| Flag | Type | Required | Description |
|---|---|---|---|
--hours | number | no | snooze duration (default 24) |
fk queue snooze 3f1c… --hours 48
fk growth
ranked next actions that will generate revenue or growth (activation leaks, friction, wasted spend).
fk growth [flags]
| Flag | Type | Required | Description |
|---|---|---|---|
--product | string | yes | project slug |
--days | number | no | lookback window (default 30) |
--tool | string | no | cursor | claude | lovable | bolt | v0 — shapes the prompt text (default cursor) |
fk growth --product demo-product
fk growth --product demo-product --tool claude
fk social
organic social: followers, reach, engagement, top posts (Meta + X).
fk social [flags]
| Flag | Type | Required | Description |
|---|---|---|---|
--product | string | yes | project slug |
--days | number | no | window in days (default 30) |
fk social --product demo-product
fk prompt
print the full coding-agent prompt for one growth action.
fk prompt <id> [flags]
| Flag | Type | Required | Description |
|---|---|---|---|
--product | string | yes | project slug |
--tool | string | no | cursor | claude | lovable | bolt | v0 (default cursor) |
--days | number | no | lookback window (default 30) |
fk prompt activation.dropoff.signup-activated --product demo-product
fk prompt activation.dropoff.signup-activated --product demo-product --tool claude
fk scorecard
weekly growth scorecard (metrics × ISO weeks, auto-filled from the warehouse).
fk scorecard [flags]
| Flag | Type | Required | Description |
|---|---|---|---|
--product | string | yes | project slug |
--weeks | number | no | number of weeks (default 12) |
fk scorecard --product demo-product
fk scorecard --product demo-product --weeks 8
fk scorecard set
write a manual scorecard cell (week_start is the ISO Monday).
fk scorecard set [flags]
| Flag | Type | Required | Description |
|---|---|---|---|
--product | string | yes | project slug |
--metric | string | yes | metric key, e.g. blog.posts |
--week | string | yes | ISO week Monday YYYY-MM-DD |
--value | number | yes | numeric value (omit to clear) |
fk scorecard set --product demo-product --metric blog.posts --week 2026-08-18 --value 2
fk scorecard export
download the scorecard as csv (growth plan).
fk scorecard export [flags]
| Flag | Type | Required | Description |
|---|---|---|---|
--product | string | yes | project slug |
--weeks | number | no | number of weeks (default 12) |
--out | string | no | write to this file instead of stdout |
fk scorecard export --product demo-product --out scorecard.csv