Features
The whole day, written down for you.
Devlog watches where the work happens — repos, trackers, calendars — and turns it into a log you approve rather than one you type. This is everything it does, in the order you'll meet it.
Sources
Every place the work actually happens.
Commits from GitHub, GitLab, Bitbucket and Azure DevOps. Issues from Jira, Linear and GitHub. Meetings from Google and Outlook calendars. Incidents from Sentry. The reviews, PRs and issues that never produced a commit come along too.
- Public and private repositories, OAuth or a token
- One source failing never costs you the others
- Push anything else in through an API key
Today · sources
- github.com/acme/api4 commits · 1 review
- gitlab.com/acme/infra2 commits
- Jira · DEV-42moved to In progress
- Google Calendar3 meetings · 2h10m
- Sentry1 incident resolved
The model
Your provider, your key, your prompt.
Seven providers out of the box, including a local model through Ollama for self-hosted installs where commit messages never leave your infrastructure. Bring your own key and the provider bills the model calls to you directly.
- OpenAI, Anthropic, Gemini, Groq, Mistral, Ollama, any OpenAI-compatible endpoint
- Commit messages and counts go to the model. File contents never do
- Test the connection before the first run
AI provider
key = yours · prompt = yours
Review
Nothing is final until you say so.
Summaries you generate are shown before they are saved, and nightly runs land as drafts. Edit anything that misreads the day, drop days you don't want, then submit. The same discipline applies to reports and to the sentences you dictate.
- Task links show which were certain, which the model inferred, which you set
- A key the model invents is discarded, not written
- Reopen a submitted day as a draft, unless your workspace locks them
Review before saving
draftShipped branch-aware commit fetching and closed the public-access gap on operator-only functions. Covered the schedule rollover with tests.
Hours
Hours that say where they came from.
Measured from the span between the first and last commit plus anything you logged, typed by you, or estimated by the model — and every entry says which. An estimate is never presented as a measurement, anywhere it appears.
- Provenance survives into CSV exports and team reports
- Meetings, reviews, on-call and pairing count, with their own hours
- Dictate a sentence and it becomes a draft entry, dated and categorised
Where the hours came from
measured
first commit 09:12 → last 17:40
typed
you entered it
estimated
the model's guess, labelled
Automation
Runs nightly, in your timezone.
Set a time and a zone once. 22:00 means 22:00 where you are, and a commit at 01:00 belongs to that day, not the previous one. A night that fails can be retried the same day, and a missed week can be back-filled in one go.
- Runs while a tab is open, or from a cron you control
- Bulk fill only touches days with activity and no entry
- Each run records what it wrote and what it cost
Nightly schedule
22:00
Asia/Kolkata · where you are, not the server
A failed night can be retried the same day. Back-fill a missed week from Bulk fill.
Workspaces
The log writes itself against the assigned task.
Create a workspace, invite your engineers, assign the work. A task key in a commit message links that day's log to that task exactly. Managers read one report across every member, with hours and provenance, exportable as CSV.
- Owner, admin, manager, member — each sees what their role warrants
- Import a backlog from Jira, Linear or GitHub Issues instead of retyping it
- Separated at the database by row-level security, not by a filter someone could forget
Project · API · 3 members
Todo
Doing
Done
A commit that says DEV-42 links to that task exactly. No guessing.
Reports and Ask
Read it back, in the reader's language.
Ask questions of your own log in plain English. Generate a report for a manager, an executive, or an engineer — three audiences, same facts. Every number comes from a query, and the model is handed the figures rather than asked for them.
- Management, executive and technical framings
- Sending is a second, deliberate step after the draft is on screen
- A Monday digest of your own week, opt-in, with no team comparison
Report · last 2 weeks · management
draft9
days logged
41h
hours (measured)
3
tasks advanced
Numbers come from SQL. Prose comes from the model, handed the numbers as facts and forbidden from inventing its own.
Public profile
A page worth screenshotting.
An opt-in public profile built from aggregates only — streaks, a heatmap of real commit activity, your rhythm through the day. No commit message, summary or highlight is reachable from it. Hours and project names are separately opt-in and off by default.
- Link unfurls with a generated image in Slack, Discord and Twitter
- A story-sized image for Instagram and TikTok
- Wrapped: your year in code, built from the real history
devlog.app/u/you
public · opt-inAnd the details that add up.
Dictation, on device
Say what you did. The browser's own recogniser turns it into a draft; no audio leaves the machine.
Ask the log
"What did I ship in August?" answered from your own record, with the entries it used.
Write-back, off by default
Post the day's log as a comment on the Jira or Linear issue it advanced — only for links a commit named.
Repository rules
Decide which repos count as work. Personal side projects never reach an employer's report.
Weekly digest
A Monday email about your own week. Opt-in, and silent for a week with nothing in it.
Delete everything
One control removes your account and everything keyed to it. Workspace records stay with the workspace.
Spend tonight shipping. Not writing standup notes.
Connect GitHub, pick a model, and tomorrow morning the log is already written — waiting for you to read it rather than write it.