Skip to content

tomfunk/fungible

Repository files navigation

fungible

CI

Personal finance, keyboard-first. Available as a terminal UI or a desktop app — both running over the same local data: Plaid sync, CSV import, categorize, tag, search, analyze. Plus an MCP server so Claude can read and manage it for you.

fungible TUI demo

fungible GUI demo

Screenshots

Terminal UI

Dashboard Transactions
Trends Net Worth
Tags Financial Health
Rules Accounts

Desktop GUI

Dashboard Transactions
Trends Net Worth
Tags Financial Health
Rules Accounts

Features

  • Plaid sync — connect bank accounts and pull transactions automatically; 15-min debounce with force-sync option
  • CSV import — import statement exports from any bank with flexible column mapping
  • Manual assets — track a house, car, or other asset by name and value
  • Category & name rules — substring or regex rules that auto-categorize and rename transactions; survives re-syncs
  • Spending flexibility — tag categories as fixed / flexible / discretionary; see breakdown on Dashboard
  • Delta mode — per-category spending deltas vs prior period, same period last year, and 12-month rolling average; heat-map coloring
  • Tags — label transactions across accounts (trips, projects, events) and view summaries by tag
  • Net worth — balance history with asset/liability breakdown; by account or by type
  • Financial health — cash and liquid runway, FIRE number and progress, years to retirement with adjustable assumptions
  • Trends — bar charts for expenses, income, net, or any category; per-range aggregation
  • Regex search — shared across Dashboard, Transactions, and Trends
  • Dedup review — review and remove CSV transactions that duplicate Plaid imports
  • MCP server + HTTP API — Claude (or any script) can read and manage your finances
  • Daily backups — kept at ~/.fungible/backups/, last 7 by default (configurable via FUNGIBLE_BACKUP_DAYS)

Try it (no account needed)

fungible --demo

Spins up a fully pre-loaded instance with fake accounts, transactions, tags, and rules — completely isolated from any real data. Good for exploring before connecting a bank.

In the desktop app, pick "Try Demo Mode" from the app menu (macOS) or Help menu (Windows/Linux) — the app relaunches with the same isolated demo dataset.

Install

Terminal UI

Homebrew (recommended)

brew tap tomfunk/fungible
brew install fungible
fungible --setup   # first-time setup wizard
fungible

From source (Node.js 22+, also works on Linux/WSL)

git clone https://github.com/tomfunk/fungible
cd fungible
npm install
npm run dev -- --setup   # first-time setup
npm run dev

Desktop GUI

Download an installer from the latest release (macOS arm64, Windows x64, Linux x64), or run from source:

npm install
npm run gui

The GUI reads/writes the same ~/.fungible/ database as the TUI — switch freely.

For first-launch caveats on unsigned installers (Gatekeeper, SmartScreen) and packaging details, see docs/gui.md.

Storage

Data and config live at ~/.fungible/ (override with $FUNGIBLE_DATA_DIR). Plaid access tokens are encrypted at rest using a key file at ~/.fungible/key — do not delete this file or you will need to re-link your accounts. A free Plaid developer account (sandbox tier) is enough.

Running

Command What starts
fungible TUI + MCP server (HTTP, port 3741) + REST API (port 3456)
Fungible.app (GUI) Electron window only — MCP/API not auto-started
fungible mcp stdio MCP server only — use this in your Claude Desktop config
fungible api REST API server only

FUNGIBLE_MCP_PORT and FUNGIBLE_API_PORT (in ~/.fungible/.env) override the defaults.

Screens

Key Screen
0 Settings
1 Dashboard
2 Transactions
3 Trends
4 Net Worth
5 Tags
6 Financial Health
7 Rules
8 Accounts
9 Canvas

Full per-screen keybindings: docs/keybindings.md.

Docs

About

Terminal UI for personal finance — Plaid sync, CSV import, AI assistant, and MCP server

Resources

License

Contributing

Stars

Watchers

Forks

Contributors

Languages