@openaccountant/wilson
v0.2.0
Published
Open Accountant - Privacy-first AI bookkeeper CLI
Downloads
118
Readme
Import bank statements, categorize transactions with AI, surface spending anomalies, and get actionable advice — all without your financial data leaving your machine.
Named after Frank J. Wilson, the forensic accountant who followed the money to convict Al Capone.
Features
- Bank CSV import — Auto-detects Chase, American Express, and generic CSV formats
- Monarch Money sync — Pull transactions directly from your Monarch Money account
- AI categorization — Classifies transactions into 18 spending categories using your choice of LLM
- Spending summaries — Breakdowns by category, merchant, or time period with comparisons
- Anomaly detection — Flags duplicate charges, unusual spikes, and forgotten subscriptions
- Export — Save filtered transactions to CSV or XLSX
- Web search — Research merchants and financial questions (Exa, Perplexity, Tavily, Brave)
- MCP extensibility — Add tools via Model Context Protocol servers
- Orchestration — Chain tools sequentially or run parallel teams for complex workflows
- Skills — Multi-step workflows like subscription audits, extensible with custom skills
- 9 LLM providers — OpenAI, Anthropic, Google, xAI, Moonshot, DeepSeek, OpenRouter, LiteLLM, and Ollama (local)
Quick Start
Prerequisites
Install & Run
git clone https://github.com/openaccountant/wilson.git
cd open-accountant
bun install
cp env.example .env # edit with your API key(s)
bun startFirst Steps
- Import transactions — Drop a CSV into the chat:
Import my transactions from ~/Downloads/chase.csv - Categorize —
Categorize my uncategorized transactions - Explore —
What did I spend on dining last month? - Audit —
Find any unusual charges or forgotten subscriptions
LLM Providers
| Provider | Prefix | API Key Env Var |
|---|---|---|
| OpenAI | gpt- | OPENAI_API_KEY |
| Anthropic | claude- | ANTHROPIC_API_KEY |
| Google | gemini- | GOOGLE_API_KEY |
| xAI | grok- | XAI_API_KEY |
| Moonshot | kimi- | MOONSHOT_API_KEY |
| DeepSeek | deepseek- | DEEPSEEK_API_KEY |
| OpenRouter | openrouter: | OPENROUTER_API_KEY |
| LiteLLM | litellm: | LITELLM_API_KEY |
| Ollama | ollama: | None (local) |
Switch providers at any time with /model.
CLI Commands
| Command | Description |
|---|---|
| /model | Switch LLM provider and model |
| /pull <model> | Download an Ollama model |
| /skill <name> | Run a skill (e.g. /skill subscription-audit) |
| /help | Show available commands |
Type exit or quit to close. Press Esc to cancel a running operation.
Configuration
Environment Variables
Copy env.example to .env and set at least one provider API key. See the file for all options including web search keys and Ollama base URL.
MCP Servers
Add external tool servers in ~/.openaccountant/mcp.json:
{
"servers": {
"my-server": {
"command": "npx",
"args": ["-y", "my-mcp-server"],
"env": {}
}
}
}MCP tools appear automatically in Open Accountant's tool registry.
Custom Skills
Drop a folder with a SKILL.md file into any of these directories:
| Location | Purpose |
|---|---|
| src/skills/ | Built-in skills |
| ~/.openaccountant/skills/ | User-wide skills |
| .openaccountant/skills/ | Project-specific skills |
Skills defined later in this list override earlier ones with the same name.
Architecture
src/
agent/ # Core agent loop, tool execution, context management
components/ # TUI components (chat log, editor, prompts)
controllers/ # Agent runner, model selection, input history
db/ # SQLite schema, queries, database init
mcp/ # MCP client, adapter, config
model/ # LLM abstraction and provider implementations
orchestration/ # Chains (sequential) and Teams (parallel) workflows
skills/ # Skill discovery, loading, and built-in skills
tools/ # All tool implementations
categorize/ # AI transaction categorization
export/ # CSV/XLSX export
import/ # CSV import with bank parsers, Monarch sync
query/ # Transaction search, spending summary, anomaly detection
search/ # Web search providers (Exa, Perplexity, Tavily, Brave)
utils/ # Shared utilitiesAll data is stored locally in ~/.openaccountant/data.db (SQLite).
Contributing
Contributions are welcome! Please open an issue first to discuss what you'd like to change.
See the issue templates for bug reports and feature requests.
