CountBean
# Countbean plugin for Claude Code
Hosted plain-text accounting in Claude Code: a git-backed [Beancount](https://beancount.github.io/)
ledger, AI ingestion of statements and receipts into validated double-entry, and HTML/Excel reports.
## Install
Run these one at a time — Claude Code reads a multi-line paste as a *single*
slash command, so sending them together makes `marketplace add` swallow the
install line and fail with `URL rejected: Malformed input to a URL function`.
```text
/plugin marketplace add https://github.com/CPUtester5465/countbean-plugin.git
```
```text
/plugin install countbean@countbean
```
Then reload, so the running session picks up the plugin's commands and MCP
tools — they are bound when Claude Code starts, so a fresh install is not live
until you do:
```text
/reload-plugins
```
Use the full HTTPS URL, not the `CPUtester5465/countbean-plugin` shorthand — the shorthand resolves
to `git@github.com`, which needs an SSH key *and* GitHub's host key already in your `known_hosts`.
Then connect it to your book. Say this to Claude with nothing after it:
```text
/countbean:connect
```
It prints a short code and a link. Open the link, sign in at
[app.countbean.com](https://app.countbean.com), pick the book, and approve —
Claude picks it up within a few seconds. There is no key to copy between
windows. (If you would rather paste a key you already have, put it on the same
line: `/countbean:connect cbk_… bok_…`.)
Full documentation is in [`plugin/README.md`](plugin/README.md).
---
## This repository is published, not authored
The source of truth is the `plugin/` directory of the Countbean monorepo. This repo is a mirror,
pushed by CI on every change.
**Pull requests here cannot be merged** — they would be overwritten by the next publish. The
mirror exists so that installing the plugin does not require access to the private monorepo,
and so `plugin/mcp/countbean_mcp/ledger.py` can keep being byte-compared against its
`ledger_core` original by tests that need both in one tree.
TDQS
Scored across 21 tools
Some overlap exists: add_transactions and add_directives can both commit transactions, and open_accounts overlaps with add_directives for account opens. The descriptions do clarify intended use cases, but an agent could still hesitate between these pairs.
Most tools follow a clear verb_noun pattern (connect_book, add_transactions, open_accounts, run_query), but a few are bare nouns (balances, history, book_status, connection_status). The device-auth tools also mix 'authorization' and 'approval' terminology, though the overall pattern remains readable.
With 21 tools, the server is in the heavy range, though the count is justified by the two-step auth flow and separate workflows for statements, receipts, and reporting. Still, some consolidation (e.g. merging open_accounts into add_directives) could tighten the surface.
The tool set covers the full bookkeeping lifecycle: connecting and creating books, adding validated transactions and directives, opening accounts, querying balances, generating reports, proposing from statements and receipts, and undoing changes via history/revert. No critical operations are missing for the stated purpose.