ticktrac Log in Get started

Time tracking for professionals

The tracker for a professional and their agentic team.

Start a timer from a line of text. Use shortcuts to quickly organise. Work with agents? They file their hours through the API. At billing time, you export.

No teams, no seats, no approvals.

Dealer map fixes Atelier NordDevelopment
ticking since 21:46
00:42:17 Stop
AGENTReview PR #482: stream export rows Atelier Nord
via API · 09:14–09:59
00:45:00
Brand workshop prep Kade & CoDesign
10:15–11:45
01:30:00

For anyone who tracks time

A timer first.
Agents are optional.

You do not need an agent to use TickTrac. It tracks your hours, shows where they went and gets them ready to bill.

Shortcuts on every row.

A single press can add minutes, a tag or a category, or mark your time unbillable. You define your own buttons in Settings.

Your day on a timeline.

Home shows today as bars in each client’s colour. Multiple timers can sit side by side.

Your year at a glance.

A heatmap of the last twelve months. Beside it, your billable hours, what they are worth and your effective hourly rate.

Stats per period.

A week, month, quarter or year, next to the one before. See who, or what, took your time.

Billable, and at what rate.

Every entry is billable until you say it is not. Set an hourly rate, or a different one for any client.

Round up or to the nearest.

Pick an increment, such as a quarter hour. Each entry rounds up or to the nearest. The export says which.

Export for invoicing.

Pick a client and a period. Download CSV, JSON or plain text with hours and amounts per entry.

Nothing is final.

Add time to the past, or edit any entry.

Your own time

One line.
A whole timer.

+ for the client, @ for categories, # for tags; what’s left is what you put in. Autocomplete helps where it can, and all it needs from you is a stop. Hyperfocused? Run as many timers as you want.

task
Homepage fixes
+
Atelier Nord
@
Development
#
#urgent

For your agents

Agents file their own hours.

When an agent finishes a task it posts one entry: what it did, for which client, when it started and when it stopped, and how long a person would have needed. Its true time is what bills.

RequestPOST /api/v1/entries

curl -X POST https://ticktrac.com/api/v1/entries \
  -H "Authorization: Bearer $TICKTRAC_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"entries": [{
    "ref": "pr-482-review",
    "name": "Review PR #482: stream export rows",
    "client": "Atelier Nord",
    "categories": ["Development"],
    "tags": ["programming"],
    "started_at": "2026-10-26T09:14:00+01:00",
    "ended_at": "2026-10-26T09:59:00+01:00",
    "source": "agent",
    "human_equivalent_hours": 2.5
  }]}'

Response200 OK

{
  "results": [{
    "ref": "pr-482-review",
    "id": 5312,
    "created": true
  }],
  "errors": []
}
# same ref again → "created": false, nothing written

Set up your agent

How to instruct your AI agent to start working with TickTrac.

Copy this prompt into your agent’s instructions. It works with Claude, ChatGPT, Cursor or any agent that can send a web request. After each task, the agent logs its work for you.

What you need first: a TickTrac account, and an API token from Settings → Calendar & API.

Prompt

Log your finished work to my time tracker, TickTrac.

When you finish a task, send one entry for it.
Send a POST request to https://ticktrac.com/api/v1/entries
with these two headers:

  Authorization: Bearer YOUR-TICKTRAC-TOKEN
  Content-Type: application/json

and this body:

{"entries": [{
  "ref": "a new id for this task, e.g. 2026-10-27-fix-login",
  "name": "what you did, in one short line",
  "client": "CLIENT NAME",
  "categories": ["one category from the list below"],
  "tags": ["one kind of work from the list below"],
  "started_at": "when you started, e.g. 2026-10-27T09:14:00+01:00",
  "ended_at": "when you finished, in the same format",
  "source": "agent",
  "agent": "your own name, e.g. Claude"
}]}

Rules:
- Give every task a new "ref". If a request fails, send it again with the same "ref". TickTrac never logs the same "ref" twice.
- Send the real times you started and stopped, with the timezone. Never an estimate. Never a time in the future.
- Put each entry in one category from this list: Development, Design.
- Tag each entry with one kind of work from this list: docs, programming.
- Never work out a ratio or a human-time estimate. I set those in TickTrac.
- If the answer lists an error, tell me what it says.

Replace the token, the client name and the two lists. Then set a ratio on those tags, or on a category, in Settings → Agents, for example docs 1:10 and programming 1:60. A tag, category or client can take a ratio once it exists: after the agent’s first entry, or once you have used it yourself.

Agent time

Know what an agent’s hour stands for.

AI works fast. Six minutes of its time can be an hour of yours. A ratio says how much.

Set a ratio on a tag, on a category, on a client, or one for everything. A ratio of 1:10 means one agent minute stands for ten human minutes.

TickTrac shows the human-equivalent beside the agent’s true time, on Home, in the export and in Stats. The invoice uses true time at your rate. The human-equivalent helps you decide what to charge.

Tag#docs1:10
Tag#programming1:60
AGENTWrite the export changelog Atelier Nord#docs
Claude via API · 14:02–14:32 · human-equivalent ≈ 5:00Claude · #docs · ≈ 5:00 human
00:30:00
AGENTFix the booking form’s date check Kade & Co#programming
Claude via API · 15:10–15:16 · human-equivalent ≈ 6:00Claude · #programming · ≈ 6:00 human
00:06:00

The guards

Made so an agent can’t make a mess of your month.

A replayed ref writes nothing.

Send the same ref twice and the second call hands back the entry it already has, "created": false. Retries are safe; nothing is counted twice.

Sane times or none.

One entry is 24 hours at most. No times in the future. Get it wrong and the entry is refused, not guessed at.

“Agent” is a column, not a tag.

It can’t be misspelled, renamed or forgotten in a filter. Home, stats and export all split on it every time. No mistaking who (or what) did what.

A runaway loop hits a wall.

100 entries per call at most, and every token has an hourly cap. Revoke a token in Settings and its next call is refused.

What you see

One client, one file, both kinds of hours.

Your rows and your agents’ sit in the same export, the agent rows marked. Both bill true time at the client’s rate. Leave the agent work out in one click, and the totals follow.

19 Oct Dealer map fixes 2:00 €190.00
26 Oct AGENTReview PR #482: stream export rows 0:45 €71.25
Total Atelier Nord · €95/h 2:45 €261.25

Questions

Short answers.

Does TickTrac write invoices?

No. We offer you a file — CSV, JSON or plain text — with hours and amounts and all metadata. Your invoicing tool does the rest.

Is it for teams?

No. One person, or a very small studio working as one. There are no seats, no roles, no approvals. We’re about Getting Things Done, properly tracked.

Do I need agents?

No. TickTrac is an awesome timer on its own. The agent side is just us being realistic about how work is done in the future.

Can I leave agent work out of an export?

Yes, in one click. The totals then show what is left, split into your hours and your agents’. Nothing goes quietly missing.