Instead of Harvest
Harvest charges a seat for everyone who logs an hour. The hours are yours.
Time Billing for Claude Code is open-source time tracking and invoicing that is just Postgres and Claude Code. Timesheets, project budgets, unbilled work and invoices, asked for in plain language. No seats, no tiers.
What you are paying for
Most of a Harvest bill is the front end
An hour of work is one row: who, what, how long, billable or not. The screens around those rows are what you rent, and the rent is set per person, per month, per tier.
A seat for everyone who logs an hour
Billing is per person per month. The contractor who enters four hours a week costs the same seat as the person billing forty.
The profit numbers sit on the top tier
Profitability reporting, timesheet approvals and unlimited custom reports are above the entry plan. The upgrade is priced per seat as well.
A free plan you cannot run on
One seat and two projects. Enough to see that it works, never enough to bill a real month with.
Reports the vendor chose to build
You get the charts on the menu. "Which fixed fee jobs earned under $120 an hour once the design time is counted" is not on the menu.
Chasing the timesheet, not doing the work
Reminding people to fill it in, tidying entries, re-keying the invoice into your accounting system. That is work the tool creates.
Your history behind their export
Years of hours, rates and invoices live in their account. Leaving means a CSV and a rebuild, and the budgets do not even come out.
What you get instead
Billing you can ask questions of
Timesheets
Ask where the week went
The data is plain Postgres tables. Claude Code reads them, so any question about hours gets an answer, not just the ones with a chart.
- check Hours by day, by person against capacity, and by project
- check The billable share of the week, and who is below it
- check Who has not filled in a timesheet for five days
- check Any question you can phrase, not the four the plan allows
Unbilled work
It tells you what to invoice
One command lists every hour and expense that is billable and not yet on an invoice, ranked by money and by age, then drafts the invoice.
- check Billable work not yet invoiced, oldest and biggest first
- check Expenses in the same list, so nothing gets missed
- check A draft invoice built from the entries, grouped by task and rate
- check A covering note written from the project history. Nothing sends without you
Project margin
What the job actually earned
Every entry carries a bill rate and a cost rate, so the margin is arithmetic. Harvest puts that behind its top plan.
- check Hours and value against the budget, per project
- check What the work cost, and the margin left over
- check Effective rate per hour worked, per project and per person
- check Fixed fee jobs measured against the hours they ate
Your data
Postgres you own
Runs on a laptop with no database install, or on your own Postgres or Supabase for a team. Plain SQL tables any tool can read.
- check Embedded database for one person, Postgres or Supabase for a team
- check Import your Harvest time export in one command
- check Plain SQL tables. Your accountant can query them.
- check MIT licence, no vendor to leave
Honest trade-offs
What you give up
- remove_circle The stopwatch. Time is logged after the fact in one sentence, not by a timer running in a browser tab.
- remove_circle A phone app. It runs where Claude Code runs, so hours from the car get entered later.
- remove_circle Approvals, payment links and automatic reminders. You mark an invoice sent and paid, and the chaser is a draft you send yourself.
Two ways to run it
Run it yourself, or have it run for you
Open source
Run it yourself
Free
- 1 Clone the repo
- 2 npm run demo, then open the folder in Claude Code
- 3 Type /timesheet
- 4 Point it at your own Postgres when your team needs it
Omni by Enterprise DNA
Have Enterprise DNA install it
One setup fee, then a monthly retainer
- check We migrate your Harvest history
- check We set the budgets, rates and fee types Harvest never exported
- check We write the commands for the way you bill: month end runs, retainers, chasers
- check It runs inside Omni, our managed Command Center, with the rest of your business
Questions
Instead of Harvest, answered
Is it really free? expand_more
Yes. MIT licence. Run it anywhere, change anything, no account with us.
How do people log time without a timer? expand_more
In one sentence: /log Kauri intake 2h15 "conflict check screens". Durations take any shape you would say out loud. Most timesheets are filled in after the fact anyway.
Does it send invoices? expand_more
No. It builds the invoice from the hours and writes a covering note to a drafts folder. You send it from your own email, and your accounting system stays where it is.
What happens to my Harvest history? expand_more
Export the detailed time report as CSV and run the import command. Clients, projects, tasks, people, hours, notes and rates come with you. Budgets, approvals and timers do not, and the migration guide says exactly what to set by hand.
Can my team use it? expand_more
Yes. Point everyone at a shared Postgres or Supabase project and they run the same commands against the same data, with no per-seat fee.
Stop renting a place to type your hours
Thirty minutes with Sam. We look at what you pay Harvest for, how your team really logs time, and what the installed version would look like for you. If it is a fit, we install it. If it is not, take the repo and run it yourself.
Time Billing for Claude Code is MIT licensed and published by Enterprise DNA at github.com/Enterprise-DNA-OS/time-billing-for-claude-code.