One freelancer's Harvest is a timer, a few tables for clients, projects and tasks, a timesheet grid, reports and a PDF invoice. That is squarely what an agent builds in one session on SQLite, with no outside service in the loop. Gaps are on the edges: card payments on invoices, accounting sync, native apps and the phone, and a PDF invoice you should check against your country's rules before sending it to a client.
Before you buildHarvest Free covers one seat and two projects with invoicing. If you have two active clients or fewer, you may not need to pay.
Build me a local time tracker and invoicer to replace Harvest. Requirements: - Node.js 22 + TypeScript: a Fastify API and a React UI built with Vite. `npm start` serves http://localhost:4830; the UI also works in a phone browser on my home network. - Storage: better-sqlite3 in ./data/harvest.db: clients (name, address, currency, tax id, payment terms), projects (client, billing method: hourly, fixed fee or non-billable, hourly rate, budget in hours or money), tasks, time entries (project, task, date, minutes, notes, invoice id), expenses (amount, category, billable, receipt in ./data/receipts/) and invoices with line items, numbered YYYY-NNN, status draft / sent / paid / void. - Timer: one running timer stored on the server so it survives a reload, manual entry, and a week timesheet grid (rows project and task, columns days) with inline editing. Entries on an invoice are locked. - Invoices: build one from a client's unbilled entries and expenses in a date range, grouped by project or task, with an optional rounding up to 15 minutes, one or two tax rates and a discount. Render the PDF with `pdfkit` (A4 or Letter) using my business details from config. Mark paid with a date and method; send by email through nodemailer SMTP with the PDF attached. - Reports: hours and billable amount by client, project, task and month; budget left per project; unpaid and overdue invoices. Every report exports CSV. - Import and backup: import Harvest's "Export all time" CSV, mapping columns by header and printing a summary before writing; copy the database to ./data/backups/ nightly and keep 14. - Single user. No accounts, no telemetry, local-first. The only outbound calls are SMTP. - Out of scope: online card payments, QuickBooks or Xero sync, several users and approvals, estimates, native apps, resource planning. - README: the .env keys, where PDFs are stored, and a note to check invoice numbering and tax wording against local rules, since this is not tax advice.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Harvest.
Extend the time tracker in this folder with a fuller Harvest importer. Requirements: - A command `track import-harvest <file.csv>` for the "Export all time" CSV: create missing clients, projects and tasks from the Client, Project and Task columns, then the entries. - Print counts of new clients, projects, tasks and entries, plus rows skipped, before writing; support --dry-run. - Running the same file twice must not duplicate entries: hash each row. - Mark imported entries that Harvest had already invoiced as billed, without inventing invoices. - Update the README with the export steps.
Add recurring invoices to the time tracker in this folder. Requirements: - A schedule per client: monthly on day N, with fixed line items; the app creates a draft on the day and emails me a reminder instead of sending anything to the client. - A list of schedules with the next run date and a pause toggle. - Draft numbers continue the YYYY-NNN sequence and never skip or repeat. - Skip a run and say why in the log if the client has an unpaid invoice older than 30 days. - Update the README.
Add reminders to the time tracker in this folder. Requirements: - A setting for reminder days and a time (default Friday 16:00); if logged hours in the week are under a target set in .env, send an email through SMTP with the missing days listed. - Never remind during a day marked as time off in the UI. - One reminder per day at most, and a log of what was sent. - Update the README.
Freelancers and small agencies pay for time tracking that ends in an invoice and a payment, with their hours, rates and invoices in one place that an accountant can read. Harvest's free plan covers one person with two projects, so paying starts with a second seat, a third project or a QuickBooks or Xero connection.
Estimate · Runs on your own machine; SMTP at one person's volume fits free tiers. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Free | $0 | $0 | 1 seat, 2 projects, time and fixed-fee projects, time and expense tracking, invoicing, estimates, basic reporting, up to 4 custom reports, 50+ integrations. |
| Teams | $11 | $9 | Unlimited seats and projects, billable and cost rates, team reporting on capacity, utilization and workload, project and people CSV import, QuickBooks, Xero and Stripe integrations, scheduled phone support. |
| Enterprise | $17.50 | $14 | Everything in Teams plus unlimited custom reports, profitability reporting, timesheet approval, activity log, SAML SSO, custom CSV exports, required notes on entries. |
| Enterprise Plus | custom | — | Everything in Enterprise plus custom integrations, a dedicated customer success manager, assisted data migration, white labelling and product customization. |
Free gives one seat and two projects with time tracking, invoicing, expense tracking and the Mac and iOS apps.
Yes. An AI coding agent such as Claude Code, Codex or Cursor can build a usable personal version in one session with the prompt on this page, running on your own machine.
About $11 a month on the Teams plan per seat, $132 a year (checked 2026-10-19).
Online payment of invoices by card, Stripe or PayPal; QuickBooks, Xero and the other connected apps; Team features: timesheet approvals, capacity and utilization reports; Native Mac and iOS apps and a desktop timer; Years of history in a system your accountant already knows. If any of those matter to you, keep paying.
Yes: Kimai (open source), solidtime (open source), TimeTagger (open source).