Time tracking and invoicing for independent contractors — local-first, self-hostable, and scriptable from the terminal or an AI agent.
Tallyhand is a time tracker and invoicing app built for contractors who bill by the hour. Track your time with a simple timer, turn the hours into professional invoices, and share them with clients — without handing your business data to someone else's cloud.
curl -fsSL https://tallyhand.xyz/setup.sh | bash
tally config set api-url https://tallyhand.xyz
tally login
tally doctorRerun the installer to update without changing saved configuration. Setup guide · Agent guide.
curl -fsSL https://raw.githubusercontent.com/pkyanam/tallyhand/main/install.sh | bashThis downloads the standalone tally CLI for your platform — no Node required. Point it at a running Tallyhand server and go:
tally config set api-url http://localhost:3000
tally config set token <your-api-token>Or run the full web app locally: clone the repo, npm install, npm run dev, and open http://localhost:3000.
# 1. Start a timer on a project
tally timer start --project abc123 --note "API design"
# ... do the work ...
# 2. Stop it — the entry lands in your ledger
tally timer stop
# 3. Turn the unbilled hours into an invoice
tally invoice draft --client def456From there: tally invoice send <id> when it's ready, tally invoice paid <id> when the money lands.
- Time tracking — one-command timer with notes and tags, a unified ledger of time and expenses, inline editing, and a weekly reckoning view that finds the hours you forgot to bill.
- Invoicing — build invoices from ledger entries or from scratch, preview them live, download as PDF, and track draft → sent → paid.
- Recurring invoices and retainers — set up monthly schedules or prepaid-hour retainers that bill automatically.
- Client portal share links — give any invoice a read-only public link clients can open without an account.
- CLI, API, and MCP for agents — the
tallyCLI, a REST API with an OpenAPI spec, and an MCP server covering the CLI's workspace operations, so scripts and AI agents can track time and bill on your behalf. MCP works locally (tally mcp, stdio) or remotely over Streamable HTTP at/api/mcp— same deployment, same tools. - Local-first and self-hostable — your data lives in your browser's IndexedDB or your own server's SQLite database. Run it on your laptop, your server, or Vercel — no account required.
- CLI guide — every
tallycommand, conventions, and MCP setup for Claude Code / Claude Desktop - API quickstart — auth, the REST endpoints, remote MCP (
/api/mcp), and the track → bill workflow - OpenAPI spec — canonical machine-readable API reference
- Integration discovery — REST, MCP and CLI access and authentication
See CONTRIBUTING.md. Bug reports and ideas: use the GitHub issue templates.
MIT — see LICENSE.