Unofficial CLI client for Copilot Money.
Vibe-coded with GPT 5.2 in Codex. Use with caution.
This demo runs the CLI against the repo’s fixture data (no network calls):
- Homebrew:
brew install JaviSoto/tap/copilot-money-cli - With Cargo:
cargo install copilot-money-cli(installs thecopilotbinary) - Or download a prebuilt binary from GitHub Releases
copilot auth statuscopilot auth login --mode email-link --email you@example.comcopilot transactions list --unreviewed --fields date,name,amount,category
copilot auth logintries to use an optional browser helper (Python + Playwright); otherwise it falls back to manual token paste.- SSH-friendly:
copilot auth login --mode email-link --email you@example.com(or just paste a bearer token manually).
By default, commands are read-only. Any write action either:
- runs with an interactive confirmation prompt, or
- requires
--yesin non-interactive contexts (scripts/CI).
--dry-runprints the planned change without sending it--yesskips confirmation prompts--output json|table--color auto|always|never
copilot auth status— show whether an auth token is configured and whether it works (no secret output).copilot auth set-token— securely store a token (prompts with hidden input).copilot auth login— obtain and store a token (uses optional Python+Playwright helper; otherwise prompts for manual token paste).--mode interactive(default): opens a browser window and waits.--mode email-link: SSH-friendly; you paste the sign-in link back (hidden input).--mode credentials: uses--secrets-file(not recommended).--persist-session: stores a Playwright browser session under~/.config/copilot-money-cli/playwright-sessionso tokens can be refreshed without re-auth.
copilot auth refresh— refresh token from the persisted browser session.copilot auth logout— remove local token.
copilot transactions list— list transactions (paged).- Pagination:
--limit,--after,--pages,--all,--page-info - Filters:
--reviewed,--unreviewed,--category-id,--category <NAME>,--tag <TAG>(repeatable),--date <DATE>,--name-contains <TEXT> - Sorting:
--sort date-desc|date-asc|amount-desc|amount-asc - Table columns:
--fields date,name,amount,reviewed,category,tags,type,id
- Pagination:
copilot transactions search <query>— list transactions and filter by merchant/name substring.copilot transactions show <id>— show a transaction with full details.copilot transactions review <id...>— mark reviewed.copilot transactions unreview <id...>— mark unreviewed.copilot transactions set-category <id...> --category-id <ID>— set category by id.copilot transactions set-category <id...> --category <NAME>— set category by name (exact match).copilot transactions assign-recurring <id...> --recurring-id <ID>— attach to an existing recurring.copilot transactions set-notes <id...> --notes <TEXT>— set notes.copilot transactions set-notes <id...> --clear— clear notes.copilot transactions set-tags <id...> [--mode set|add|remove] [--tag-id <TAG_ID> ...]— update tags.copilot transactions edit <id...> --type <TYPE>— set transaction type (best-effort).
copilot categories list— list categories.- Options:
--children,--name-contains,--spend,--budget,--rollovers
- Options:
copilot categories show <id>— show one category.copilot categories create <name> [--emoji <EMOJI>] [--color-name <COLOR>] [--excluded] [--template-id <ID>] [--budget-unassigned-amount <AMOUNT>]— create a category.
copilot recurrings list— list recurring definitions.- Options:
--category-id,--name-contains
- Options:
copilot recurrings create <transaction-id> --frequency <FREQ>— create a recurring from a transaction (best-effort).copilot recurrings edit <id> [--name-contains <TEXT>] [--min-amount <N>] [--max-amount <N>] [--recalculate-only-for-future]— edit recurring rule (best-effort).copilot recurrings show <id>— show one recurring.
copilot tags list— list tags.copilot tags create <name> [--color-name <COLOR>]— create a tag.copilot tags delete <id>— delete a tag.
copilot budgets month— list budget history months (best-effort).copilot budgets set— not implemented yet.
Demos are generated from fixture responses under tests/fixtures/graphql/.
- Generate the GIF:
./scripts/generate-demos.sh - Tape file:
demo/basic.tape
- Generate/update schema stub:
cargo run --bin schema-gen -- --out schema/schema.graphql
- Summary:
cargo llvm-cov --workspace --summary-only - Update README badge:
./scripts/update-coverage.sh
This is an unofficial project and is not affiliated with Copilot Money.
Trademarks: “Copilot Money” and related marks/logos are the property of their respective owners.
Terms/Legal: This tool interacts with Copilot Money’s web API. Use may be restricted by Copilot Money’s Terms of Service. You are responsible for ensuring your use complies with applicable terms and laws.
