Time Tracking for Software Developers
You don’t forget to do the work - you forget to log it. Sandtime.io makes it fast to start a timer and easy to fill in what you missed, so your Friday isn’t a memory exercise and your client invoice reflects what you actually built. Now you can log time straight from Claude Code, Codex, or any MCP client.
Software Developers: why they choose Sandtime.io
Track by project and ticket
Start a timer on any project or tag an entry to a specific ticket. Every hour lands in the right bucket, not in a pile to sort at invoice time.
Log what you already did
Opened Sandtime.io at 4pm? Fill in the morning retroactively. No timer needed - just set the time range and you’re done.
Log from Claude Code and Codex
Connect Sandtime.io over the MCP server and create time entries from your editor and terminal - the context is already in your commits and your diff.
See where your hours go
Reports by project, client, or ticket type. Know whether your estimate held up before the invoice goes out.
How a developer sets up Sandtime.io around the editor
A developer sets up Sandtime.io with one project per client or codebase and notes the ticket on each entry, logged from a timer, after the fact, or by an AI assistant over the MCP server. At the end of a sprint or billing month, a report grouped by project shows where the hours went and whether the estimate held.
- One project per client or codebaseCreate a project for each client or product and mark client work billable. Put the ticket number in each entry’s note, so every hour says which piece of work it belongs to.
- Connect your toolsConnect the MCP server to Claude Code or Cursor so the assistant can create entries from your commits and pull requests, and generate a personal API key for your own scripts. The Chrome extension and Slack slash commands cover the rest.
- Track deep work without watching a clockStart a timer when you pick up a ticket, or skip it and fill in the morning afterwards with a start and end time. Check what the assistant logged, and overlap detection flags any entries that collide.
- Close the sprint with a reportGroup a custom report by project and by year-month-day to see each day’s hours, then export to Excel or CSV for the client invoice or the sprint review. With a revenue rate on the project, the Invoices template adds the totals.
Step by step in the help center: invite the team with the right role, approve a week from the email, and turn on auto-locking.
Common use cases
- Track time per project and ticket without changing how you work
- Fill in missed entries after a deep debugging session or code review
- Track client work and internal work in one account
- Generate an accurate billing summary for freelance or agency work
- Review time across projects to understand where your capacity goes
- Create time entries from your editor with Claude Code, Codex, or any MCP client
Key features
One-click timers
Hit start on a project and stop when you surface. No forms, no friction, no reason to put it off.
Retroactive time entry
Log a session after the fact with a start time, end time, and a note. Works for the sessions where a timer was never the right tool.
MCP integration
Create time entries from commits and your IDE without switching context, over an MCP server that is free for everyone.
Reports by project
Filter hours by project, client, or ticket type. Export for invoicing or sprint reviews.
Where Sandtime.io stops
Better to know before you invite the team. These are the gaps people in this line of work ask about most.
- No invoicingSandtime.io does not send invoices. The Invoices report template lists time, rate, net revenue, tax, and total per project, and you export it to Excel or CSV for your billing software.
- No project budgetsThere is no budget field or budget alert. A report grouped by project shows hours, cost, and revenue so far, and you compare them with the estimate yourself.
- Reminders are a weekly emailThe fill-timesheet reminder is one email, sent on Friday at 6 PM while auto-locking is on. It is off by default, so each member switches it on in their notification settings.
Common questions
Can I log time from Claude Code or Cursor?
Yes. Connect an AI assistant to the Sandtime.io MCP server and ask it to create time entries from the work in front of it, such as your commits and pull requests, then check each entry it creates.
Is there an API?
Yes. The REST API lets scripts and tools read and create time entries with a personal API key, so time tracking can live inside your own tooling.
Can I fill in time I forgot to track?
Yes. Add an entry with a start and end time after the fact. A timer is optional, which suits deep work where you only surface hours later.
Does Sandtime.io watch my screen or keystrokes?
No. There are no screenshots, no screen recording and no keystroke logging. You record the time you worked, and that record is all anyone sees.
Is it free?
Yes. Sandtime.io is free for unlimited users, and the MCP server and API are included.
Keep exploring
Continue with the most relevant Sandtime.io pages for this topic.
Use the browser extension
Install the browser extension for quicker access to timer controls, projects, reports, and timesheets.
Open pageActivity
A single time entry representing work performed. Activities are the building blocks of timesheets and reports.
Open pageConnect Sandtime.io with Slack
Add Sandtime.io to Slack so people can track time without leaving team communication, using slash commands once their Slack user is linked.
Open pageTimer
The built-in stopwatch in Sandtime.io. Start it to begin tracking time, stop it to save the entry automatically to the current day in your timesheet.
Open pageCreate and manage API keys and MCP tokens
Connect your own tools or scripts to Sandtime.io using the REST API or MCP server, and revoke access any time.
Open pageApproval
The process of reviewing and accepting timesheets before payroll or billing. Ensures accuracy and compliance.
Open pageTrack your first hour today
Create your free account and see results in minutes.