← All docs Claude Skill

Talk to your wallet from Claude.

A Claude Skill and a tiny bash CLI. Drop it into ~/.claude/skills/ and Claude knows how to list your perks, mark credits as used, log transactions, and tell you how much annual-fee value you still have on the table.

Overview

The Finstracker Claude Skill teaches Claude how to call the Finstracker REST API on your behalf. It ships as two small files:

  • SKILL.md contains instructions Claude reads automatically whenever you mention your wallet, perks, offers, or cards.
  • fins.sh is a self-contained bash CLI that wraps the API. Claude invokes it, and you can also run it directly from your terminal.

It uses the same JWT bearer auth as the REST and MCP surfaces. The token is cached at ~/.finstracker/token with mode 0600. Passwords are prompted via read -s, so they never appear in shell history or chat logs.

Install

git clone https://github.com/egomez3412/finstracker-claude-skill.git
mkdir -p ~/.claude/skills/finstracker-cli
cp finstracker-claude-skill/SKILL.md \
   finstracker-claude-skill/fins.sh \
   ~/.claude/skills/finstracker-cli/
chmod +x ~/.claude/skills/finstracker-cli/fins.sh

That's it. The next time you open a Claude session and mention finstracker, the skill loads automatically. No config to edit, no server to run.

Use it

Just say things to Claude:

  • "Log me into finstracker as your_username." Claude runs fins login and you type the password into the terminal prompt.
  • "What perks do I have due in the next 30 days?"
  • "I used my Amex dining credit at Olive Garden. Mark it off and log the $42 transaction."
  • "How much annual-fee value have I left on the table this year?"
  • "What offers are loaded on my Chase Sapphire?"
  • "Roll over my perks to next year."
  • "Am I on Pro? When does it renew?"

The skill knows which endpoint each request maps to, unwraps the response envelope, and turns the JSON into a plain-English summary. It will confirm before any destructive operation (delete, bulk update).

Standalone CLI

The fins.sh script works without Claude too. Symlink it into your PATH and you have a regular CLI:

sudo ln -s "$PWD/finstracker-claude-skill/fins.sh" /usr/local/bin/fins

fins login your_username
fins perks-due --days=30
fins value-left
fins tx-add 67c1…f1a 42 cashback earn "Olive Garden"

Every command prints JSON. Pipe to jq for slicing.

Commands

CommandWhat it does
login <user>Log in. Password prompted with read -s, never passed as an arg.
whoamiShow the cached user profile.
logoutDrop the cached token.
cardsList your cards.
perks [--month=YYYY-MM] [--unused] [--card=<id>]List perks with optional filters.
perks-due [--days=30]Unused perks expiring in the next N days, sorted by deadline.
perk-use <perkId> / perk-unuse <perkId>Toggle a perk's used flag.
offers [--card=<id>] [--unused]List merchant offers.
offer-use <offerId>Mark an offer as used.
tx-add <cardId> <amount> <unit> [type] [note]Log a transaction. unit=points|cashback, type=earn|redeem.
billingSubscription status from Stripe.
value-left [--year=YYYY]Sum of unused perk values for the year, in dollars.
api <METHOD> <PATH> [json-body]Raw API call. Escape hatch for anything not wrapped above.
set-api <url>Point at a different host, e.g. http://localhost:3000/api.

Config & files

FilePurpose
~/.finstracker/tokenJWT bearer token, chmod 600.
~/.finstracker/user.jsonCached profile from last login.
~/.finstracker/apiOverride API base URL.
FINS_API env varPer-shell override of the API base.

Safety rules

  • Passwords are never accepted as a plaintext CLI argument; fins login prompts via read -s.
  • The JWT is mode-600 at ~/.finstracker/token and is never echoed to stdout.
  • The skill instructs Claude to confirm before any DELETE or any change touching more than ~5 records at once.
  • A 401 response triggers a logout + re-login prompt rather than retrying with a stale token.

Skill vs. MCP: which should I use?

Both surfaces give an LLM the same powers over your wallet. The trade-off:

  • Claude Skill (this page) is zero-config. Copy two files and you're done. It works in Claude Code, in Claude.ai with file system access, or anywhere you can run bash. It also doubles as a regular CLI you can script outside of Claude.
  • MCP server gives you native tool-call ergonomics in Claude Desktop and other MCP clients. Cleaner schemas, streaming, no shell involved. It requires editing your client's config and pasting in a bearer token.

If you live in a terminal, install the skill. If you live in Claude Desktop and would rather not have a shell in the loop, set up MCP. They share the same backend, so using both is fine.

Install it

Two files, one cp command. Then ask Claude what's due this month.

Jump to install steps