# firma

> Local-first personal finance CLI + MCP server. Logs trades, derives portfolio and cash flow live from a local SQLite database, and exposes everything to Claude over MCP.

firma stores everything in `~/.firma/firma.db` — no server, no account. Transactions are the source of truth; portfolio, cost basis, and P&L are derived. Multi-currency with historical FX rates backfilled from FRED, so a 2018 balance reflects the 2018 rate, not today's. The `get_brief` MCP tool returns a deterministic weekly stance (aggressive / defensive), ranked recommendations, and a peer-based watchlist — alongside holdings, macro signals, movers, news, upcoming earnings, dividend calendar, world macro, and active disaster alerts — in a single call.

## Documentation
- [README](https://github.com/evan-moon/firma/blob/main/README.md): Install, examples, full CLI and MCP reference
- [CLI reference](https://github.com/evan-moon/firma/blob/main/README.md#cli-reference): All `firma` commands grouped by `add` / `show` / `report`
- [MCP integration](https://github.com/evan-moon/firma/blob/main/README.md#claude-integration-mcp): Tool catalog and guided prompts (`/import-trades`, `/morning`, `/analyst`, …)
- [CONTRIBUTING](https://github.com/evan-moon/firma/blob/main/CONTRIBUTING.md): Monorepo layout, build pipeline, extension points
- [npm](https://www.npmjs.com/package/@evan-moon/firma): `npm install -g @evan-moon/firma`

## Optional
- [Herald](https://ai-herald.vercel.app): Voice assistant that consumes firma over MCP
- [memex](https://github.com/evan-moon/memex): Companion MCP server for persistent personal notes
