Your agents build the project. Now they bill it too.
A CRM for AI agents: your agent logs effort, keeps clients and orders up to date, issues the e-invoice and records the payment. All in Time Momentum, through the command line tm.
- macOS, Linux and Windows
- Claude Code, Codex, Cursor and any agent with a shell
A CRM for AI agents: what your agent does
You say what you need. The agent turns it into a tm command.
- Log two hours on the relaunch for yesterday
tm timers add --project-id <project-id> --started-at "yesterday 09:00" --duration 2:00 - Create the client Muster GmbH
tm customers create --name "Muster GmbH" --payment-terms-days 14 - Build the September invoice for Muster GmbH
tm invoices build --customer-id <client-id> --month 2026-09 - Looks good, issue it
tm invoices finalize <invoice-id> --yes - One transfer paid both invoices
tm payments split --paid-on today --allocation <a>=3451.00 --allocation <b>=2998.80 - Timesheet for September
tm statements create --customer-id <client-id> --period-from 2026-09-01 --period-to 2026-09-30 - What is still unpaid?
tm payments outstanding - How profitable were my clients this year?
tm revenue --from 2026-01-01 --to 2026-12-31
Agent access is part of Pro.
What your agent may do
| Action | Rule |
|---|---|
| Read, log, create, edit | Directly: time entries, clients, orders, projects, project costs, invoice drafts, payments, timesheets and reports. |
| Issue, cancel, delete | Only with an explicit --yes, otherwise tm stops without sending anything. The usage guide tells the agent to do this only when you ask for it. |
| Change billed time | Refused. Time on an issued invoice or a finalized timesheet is locked. |
| Issue an incomplete e-invoice | Refused. The invoice stays a draft, and tm names every missing detail and where to fix it. |
| Create keys, delete the account | Blocked on the server for agent access, as is changing the password without email confirmation. New keys are created only in the web app. |
Security model
Your agent works with an API key that you create in the web app and can revoke at any time.
- tm exchanges a write key for a token valid for one hour and renews it automatically. The exchange is rate-limited.
- The key is stored only in your local configuration (file mode 600) or an environment variable. It never appears in output, logs or errors, not even with
--verboseor--dry-run. - A read key reaches only selected read routes and the timers.
- Revoking a key is final and takes effect immediately.
--dry-runshows the exact request without sending it. Existing files are never overwritten silently.
Built for agents
The agent fetches its own instructions and the command catalog, and every response tells it what to do next.
- Which command groups are there?
tm --json - Which flags does an invoice take?
tm schema invoices --json - Usage guide for the installed version
tm skill - Show the request before sending it
tm invoices finalize <invoice-id> --dry-run
Agent access is part of Pro.
| Trait | What it means for you |
|---|---|
| Complete | Every API operation has exactly one command. A test checks this with every change to the API. |
| Predictable | With --json, stdout carries exactly one JSON document. Errors arrive as JSON, and the exit code says whether to fix the call, ask you, wait or retry. |
| Runs anywhere | macOS, Linux and Windows, or via npx without installing, for example in an agent sandbox. |
| Everything stays in one place | Invoices, orders and outstanding payments end up in Time Momentum, whether you or your agent created them. |
Set up tm for your agent
Requires Node.js 22.14 or newer and an API key with permission “read and write” from the web app.
Install tm permanently
npx -y @time-momentum/cli installLog in with your API key
tm auth loginCheck login and permission
tm whoamiClaude Code: install the skill
tm skill --installClaude Code: status line
Project, effort and budget of the current session at the bottom of Claude Code.
tm statusline installCapture your AI sessions
Claude Code, Codex and Cursor, with tokens and runtime. Also in Free.
tm collect init
Or without installing, for example in an agent sandbox: npx -y @time-momentum/cli@latest whoami
Business software for AI agents
How to tell whether software lets your agent work safely with clients, invoices and payments.
Read guideThe best CRM for AI agents
What people mean by a CRM for AI agents, and where the large CRMs and Time Momentum fit.
Read guideMCP vs. CLI for AI agents
Why a command line often suits agents better than an MCP server.
Read guideAgentic engineering vs. vibe coding
What separates engineering with AI agents from vibe coding, and what it means for client work.
Read guide
Part of Pro
Agent access through tm is part of Pro. Every new account tests Pro for 30 days, without a credit card.
Without Pro, an API key still reaches the timers and the project list.
Let your agent do the billing
- 30 days of Pro
- No credit card
- Then continue on Free
Frequently asked questions
Why a CLI and not an MCP server?
Your agent already works in a shell. tm loads only the part of the command catalog it needs instead of every tool definition up front, works the same in Claude Code, Codex, Cursor and any other agent that can run commands, and you can run every command yourself to see exactly what the agent did. There is no MCP server for Time Momentum.
Which agents work with tm?
Any agent that can run shell commands. Claude Code gets a short skill with tm skill --install that points to the full guide. Codex, Cursor and others read the guide with tm skill, always matching the installed version.
What if the agent gets something wrong?
Drafts can be changed or deleted. An issued invoice is corrected by cancellation, and time on it is locked. With --dry-run the agent shows you the exact request before sending it.