Commands
The full Hourdini CLI surface, grouped by what you're trying to do.
Every command supports --help. Most commands accept a partial name
and fuzzy-match, so you don't need to type the full client or project
name.
Auth
| Command | What it does |
|---|---|
hourdini auth login | Connect the CLI to Hourdini. Prompts for a Personal Access Token unless you pass --token. |
hourdini auth logout | Forget the locally saved token. |
Time
| Command | What it does |
|---|---|
hourdini start <project> | Start a timer on the project. Add --task, --description, repeated --tag, or repeated --link. |
hourdini stop | Stop the running timer. |
hourdini status | Show what's running, elapsed, and estimated earnings. |
hourdini log <project> <duration> | Log a manual entry. Duration accepts 90m, 1h30m, 1.5h, 0:45. Add --task, --description, --when, repeated --tag, or repeated --link. |
hourdini today | Today's entries. Add --limit. |
hourdini week | This week's entries. Add --limit. |
hourdini list | Filtered entries. Add --client, --project, repeated --tag, --period, or --limit. |
Sessions
A session groups an agent-driven block of work and writes a single billable entry when it ends. See Sessions for the concept.
| Command | What it does |
|---|---|
hourdini session start <project> | Open a session on the project. Add --description. The first beat is active. |
hourdini session list | List open sessions. Add --all to include ended ones; --project or --client to filter. |
hourdini session show <id> | Show a session, its beat timeline, and totals. Accepts a uuid prefix (8 chars is usually unique). |
hourdini session focus <id> | Bring this session to the foreground. Add --previous agent if the previous session was an agent run rather than going idle. |
hourdini session beat <id> <kind> | Flip the open beat to active, agent, or idle. |
hourdini session end <id> | End the session. Hourdini sums billable seconds and writes one time entry. |
Clients and projects
| Command | What it does |
|---|---|
hourdini clients | List your clients. |
hourdini projects | List projects. Add --client <name> to filter. |
Client and project creation currently lives in the web app, REST API, and MCP tools.
Tags
| Command | What it does |
|---|---|
hourdini tags list | List active tags. Add --archived to include archived tags. |
hourdini tags create <name> | Create a tag. Add --color <n> for palette slot 1..12. |
Budgets
| Command | What it does |
|---|---|
hourdini budget set <project> | Set or update a project budget. Requires --period and at least one of --hours or --amount; use --currency with --amount. |
hourdini budget show <project> | Show a project's current budget and usage window. |
hourdini budget clear <project> | Remove a project's budget. |
budget set accepts --period lifetime|monthly|quarterly|yearly,
--basis billable|all, --warn <pct>, and --critical <pct>.
Utilization
| Command | What it does |
|---|---|
hourdini util | Show billable utilization for a period. Add --period and `--group-by user |
Overlaps
| Command | What it does |
|---|---|
hourdini overlaps list | List same-client overlapping entries. Add --client, --period, or --open-only. |
hourdini overlaps ack <entry-a> <entry-b> | Mark an overlap pair intentional. |
hourdini overlaps unack <entry-a> <entry-b> | Reopen an acknowledged overlap pair. |
Organizations
| Command | What it does |
|---|---|
hourdini orgs list | List the organizations you belong to. |
hourdini orgs current | Show the organization this token is scoped to. |
Output formats
The CLI prints human-readable terminal output. For machine-readable automation, use the REST API or the OpenAPI reference.
A few useful patterns
Standup helper. What did I work on this week?
hourdini list --period week --client acmeTag time from the terminal. Create the tag once, then attach it when starting or logging time:
hourdini tags create review --color 5
hourdini log "acme dashboard" 45m --tag review -d "PR review"Check budget burn.
hourdini budget show "acme dashboard"Clean up overlaps.
hourdini overlaps list --period last_week --open-only