Skip to content

eriyc/agents-ledger

v0.4.1

Plan and execute bounded Beads work ledgers with optional Jev feedback.

Work Ledger

The agents-ledger plugin provides planning and execution skills plus a local Bun MCP server for Beads work. Install Bun 1.4+ and bd on the host. Agents use MCP tools; the server invokes bd internally. The committed dist/server.js needs no dependency installation.

The plugin's mcp.json starts bun ${PLUGIN_ROOT}/dist/server.js. Each MCP call supplies an absolute workspaceRoot and a goalDir relative to it. The server verifies that the goal has its own .beads database before returning any issue data. It uses BEADS_PATH from the MCP server environment when set. On Windows it otherwise checks bd.exe on the MCP process's PATH, then installed Beads versions in the current user's mise data directory (MISE_DATA_DIR or %LOCALAPPDATA%\\mise). This uses the installed binary directly because a mise shim can itself require mise on PATH. Installations elsewhere can use BEADS_PATH; executable selection is never a tool argument.

ToolPurpose
ledger_initInitialize a missing goal database and create its local status board; validate an existing database and prepare its board.
ledger_readyBounded ready issue list, optionally filtered by parent.
ledger_taskOne issue's scope, dependencies, acceptance, and writable paths.
ledger_documentNumbered headings, lines, or a character slice from a routed file.
ledger_validate_receiptCheck a worker YAML receipt against the issue's writable paths.
ledger_createCreate one issue with bounded content and ownership metadata.
ledger_dependsAdd one blocking dependency.
ledger_noteAppend bounded evidence to an issue.
ledger_transitionClaim, block, reopen, or close one issue.
ledger_status_pageReturn the existing local HTML board path.

Only the coordinator calls mutation tools. Every successful MCP ledger action refreshes an existing board. See the design for the complete contract and migration plan.

Local status page

ledger_init creates the local HTML file as part of goal setup. On a checkout that already contains the database, the same tool validates it and prepares a local board without reinitializing Beads. ledger_status_page only returns the path; the coordinator can open it in a browser when a run begins. The server rewrites it after MCP ledger calls, and the browser reloads every five seconds. No watcher, network request, or web server is involved. The full-height board has Open, In progress, and Blocked lanes with a collapsible Done lane. Long lists scroll inside their lane. Ready issues are marked within Open. An issue marked in progress does not prove an agent process is still active.

For development, run bun install and bun run validate in this directory.