Do less tracking,
do more doing.
Farmer reads your calendar and your Git history and fills in the timesheet for you. You check the day, fix what's off, and get back to work. Open source, on your own server.
Most of your day is already written down.
Meetings live in the calendar. Code lives in Git. Farmer reads both, adds the things that happen every day, and proposes a timesheet. You only correct it.
A timesheet you review, not write.
Day, week and month views. Every entry is a date and a duration under client, project and task, in 15-minute steps. Rows that automation made stay locked in the week; you adjust them in the day view.
Vacation, sick leave and paid leave are ordinary entries against built-in tasks, so absence reports come from the same data as work.
Month-end is a CSV away.
Time by client, project or teammate. Overtime. Tracking, which is logged time against the month's target. Absence. Pick a week, month, quarter, year or any range, then export.
Hours, people, projects and the reminders.
Hours
A monthly hour fund, public holidays for your country, and working hours per person.
People
Employees, students and contractors. Billable, overhead or hourly. Admins, Team Leads, PMs and per-project roles.
Projects
A page per project with its hours, team and settings. Emoji or your own icon.
Reminders
Slack DMs, a month-end nudge and an admin digest. Web push if you prefer the browser.
Integrations
A GitHub App per organization, Google Calendar per person, Slack per organization, and outbound webhooks.
Moving from Harvest
Drop your Harvest CSV exports in Settings. Importing the same files twice changes nothing, and the last run can be undone.
Your timesheet, from the terminal.
A CLI, a REST API, an MCP server and an assistant, all acting as you and nothing more. Each can be switched off per deployment.
$ curl -fsSL https://farmer.profi.co/cli | sh $ farmer login Open farmer.profi.co/device and enter WDJB-MJHT ✓ Signed in as person@example.com · Profico $ farmer start "Code review" -p harbor-app ● Timer running · Harbor App › Development $ farmer today Design review Acme Rebrand › Meetings 1:00 Auth refactor Harbor App › Development 2:30 Sprint planning Internal › Planning 1:30 total 5:00
MCP server
/api/mcp/<org-slug>The same tools for Claude Code or any MCP client.
> log 2h yesterday on Harbor App, code review ⏺ farmer.create_time_entry(date: "2026-07-08", durationSeconds: 7200) Logged 2:00 · Tue, Jul 8
Assistant
Runs on your organization's OpenRouter key. It can do only what the person asking can do.
POST /api/v1/orgs/acme/time-entriesEverything the CLI does. Read the API docsBuilt in the open. Yours to run.
One Docker image. Postgres is the only dependency. Three environment variables to start, and an administrator sets up the rest from inside the app.
docker run -d -p 3000:3000 \ -e DATABASE_URL=postgres://… \ -e BETTER_AUTH_SECRET=… \ -e BETTER_AUTH_URL=https://time.example.com \ ghcr.io/profico/farmer
Single-organization mode gives you one invite-only workspace with your own logo on the sign-in page. Light and dark themes, a custom accent and high contrast come built in.
Rather not run a server?
We're preparing a hosted Farmer, run by Profico. There are no plans or prices yet. Join the list and we'll write when there's something to try.