The first release of Plus One: an open-source, self-hosted household finance agent designed for couples.
Plus One accepts natural-language requests through chat channels while keeping financial writes behind deterministic validation, explicit confirmation, PostgreSQL constraints, and verified readback.
Highlights
Conversational accounting
- List household accounts and transactions.
- Record expenses and income through natural, multi-turn conversations.
- Create missing accounts or transaction categories with confirmation.
- Preserve transaction details while resolving missing information.
- Understand relative dates such as “today” and “yesterday” using the household timezone.
- Handle multiple currencies, currency precision, assets, liabilities, income, and expenses.
Checked financial mutations
Every financial write follows a maker-checker flow:
- An agent proposes the change.
- A checker validates the proposal.
- The user confirms when required.
- Deterministic services execute the mutation.
- Plus One verifies the committed result before reporting success.
Accounting records remain append-only, while idempotency and replay protection prevent duplicate commits.
Reliable conversation handling
- Durable conversation state across follow-up messages and restarts.
- Safe recovery after clarification, timeout, or interrupted execution.
- Duplicate Telegram updates are deduplicated—even across gateway restarts.
- Bounded delegation and inbound deadlines prevent runaway requests.
- Internal tool details and database identifiers are filtered from user-facing responses.
Self-hosted runtime
- PostgreSQL-backed accounting, runtime state, and Mastra memory.
- Telegram pairing and production channel intake.
- Production health and readiness endpoints.
- Operator CLI for starting, stopping, inspecting, and monitoring the gateway.
- Privacy-conscious rotating logs containing operational metadata rather than financial payloads or conversation bodies.
Getting started
Requirements:
- Node.js 22.13 or newer
- pnpm 10.20.0
- Docker
- An LLM API key
pnpm install
cp .env.example .env
pnpm db:up
pnpm db:migrate
pnpm db:verify
pnpm install:cli
plus-oneUse plus-one status, plus-one stop, and plus-one live to operate the gateway.
Reliability
This release includes unit, database, integration, and live-service acceptance coverage. The accounting acceptance matrix exercises:
- Multi-turn transaction entry
- Missing-category continuation
- Confirmation, cancellation, and replay
- Invalid and corrected amounts or dates
- Currency scale rules
- Household timezone boundaries
- Asset and liability posting directions
- Gateway readiness and graceful shutdown
- Telegram duplicate delivery across restart
Current scope
v0.1.0 establishes the core runtime and accounting safety model. Plus One is still an early-stage project: conversation ingress is channel-only, and the terminal interface is an operator console rather than a chat client.