And what the AI cost you, feature by feature. Estela rebuilds it from what your agents and your Git already wrote to disk.
npx estela setupcopy
No account, no card, nothing leaves your machine — and you don't have to take my word for it: the source is open with zero dependencies.
Needs Node 22.5 or higher.
This is the real dashboard, with sample data. Open it and expand any figure →
A timer you have to remember to start always fails, and no one installs a program that spies on their terminal. Estela reads artifacts that already exist.
Claude Code, Codex and Copilot save every session to your disk, with the model and tokens. Estela reads them. It doesn't inspect processes, doesn't look at your terminal, and never stores the content of your prompts: only when, how much, and with which model.
No hook installed, not a line added to your commit messages. They're
read with git log and cross-referenced with sessions by
timestamp, author, and branch. Your husky and your lefthook stay
untouched.
If you coded by hand, your commits are still a trail: Estela deduces time from them and marks it as estimated, so you know what's measured and what's guessed.
Claude Code. Estela reads its sessions with the exact model, tokens and cache. The hours are measured, and the AI cost comes from what you actually spent.
Codex. Estela reads its sessions too: exact model, tokens and cache, and even the git branch. Measured hours and real AI cost, same as Claude Code.
GitHub Copilot in VS Code. Estela reads its chat and agent-mode sessions, on Windows, macOS and Linux: when each request starts and when it finishes. Measured hours. There's no AI cost because Copilot is a flat subscription, and inline completions leave no trace on disk: that time comes from your commits.
Cursor, Copilot in Visual Studio or JetBrains, Gemini CLI, Aider… and coding by hand. Their sessions aren't read yet, so no AI cost comes from them. The hours do: they're deduced from your commits and marked as estimated, so you never mistake a measured figure for a guessed one.
On the free plan, your sessions, your code and your hours never leave your machine. Nothing to configure: that's how it works.
What Estela reads and works out is stored in ~/.estela. The
estela web dashboard only opens on your machine and loads
nothing from the internet. It never stores the text of your prompts.
Once a day it asks npm whether there's a new version, and
estela delivery reads your GitHub or GitLab through your own
gh or glab. With ESTELA_OFFLINE=1
it connects to nothing.
With an account, only what you turn on is uploaded. Before publishing a
dashboard it shows you what will become public, and
estela unpublish takes it down.
Logging hours is a feature that already exists for free in twenty places. What doesn't exist is knowing what each feature actually cost you, in human hours and in AI money, attributed to the same work.
With a flat quota, the real cost isn't the sum of tokens — it's the quota split across what you consumed. Estela prorates it, and counts cache separately because it's usually most of the bill.
Share a read-only link with the hours and the commits that back them up. It's not a PDF attachment: it's the tool itself, and every figure expands down to the commits that produced it.
No lines of code, no commit counts, no productivity indices. Effort per feature, rework, rhythm, and unmerged work: what a project lead actually needs and can't dress up.
Knowing how much you spend on AI isn't enough anymore: the question is on what. Estela ties every session to the branch, ticket and PR that came out of it, and tells you what each delivery cost, in hours and in money.
Planned versus delivered · northwind-app · Northwind Labs · 2026-10-01 → 2026-10-31 Plan: no plan · Source: git: the PRs from merge commits and from squashes ending in (#N) Delivered (3) Hours API Real PR #41 feature/bulk-export 10h 12m $12.86 $71.67 merged 2026-10-20 · cost based on: the PR's branch, number in a branch or commit PR #48 feature/revenue-chart 5h 10m $6.14 $10.15 merged 2026-10-27 · cost based on: the PR's branch, number in a branch or commit PR #42 fix/token-refresh 3h 57m $4.81 $32.31 merged 2026-10-21 · cost based on: the PR's branch, number in a branch or commit Block total 19h 19m $23.81 $114.13 API is what it would cost at API prices: it measures usage, it isn't money paid. Real is your subscription split by usage.
Swipe the output to see the numbers →
Real estela delivery output, on the made-up demo.
Mark the plan with a label or a milestone in GitHub or GitLab and
estela delivery tells you what shipped, what's half done, what slipped
in unplanned and what each thing cost. Offline, it reads it from your git merges.
With a cliente:Name label on issues and PRs (or your own prefix,
such as client:), estela delivery --by client separates what you spent on each
client's requests from everything else. Work that served several isn't split by eye.
estela summary puts together, in Markdown, CSV or JSON, what you paid
for AI per client and project, what got delivered and what never shipped. A closed
month adds up to exactly your subscription, not a cent more.
Every line says what it's based on: the PR's branch, a number in a
commit, or something you set by hand. Whatever has no basis goes whole to
"Unattributed", never spread around to make the numbers fit. And it reads GitHub
or GitLab through your own gh or glab, and with
--offline not even that: it repeats what it last read.
The free plan runs entirely on your machine, so it costs us no servers and can afford to be genuinely generous. You pay when you want to see it from somewhere else, or when there's more than one of you.
A year costs what ten months do: two are on the house.
Only for the first 100. No monthly fee, no renewals: everything Pro includes, on all your machines.
Become a founding member · $49One-time card payment, through Stripe. "Forever" means for as long as Estela exists as a service: the details are in Terms.
The difference between Pro and Teams is simple: Pro is one person on several machines; Teams is several people. You pay for the people Estela actually measures, and projects are unlimited: adding one more costs nothing, so you can measure everything instead of picking what to watch. Teams starts at three people, which is where a team starts: on your own, Free or Pro is what you want. And a teammate's hours are only measured if they install Estela — until then they're an estimate from their commits, and it says so clearly.
AI cost is reported per project, never per person. What each person spends from their own pocket is theirs, and whoever contributes with their own subscription is excluded from the total — otherwise a simple subtraction would reveal it. Also, no one can tell who's paying by looking at a transcript: it's declared, not detected, and by default it's assumed you're paying for the AI yourself.
One command. Reads what's already on your disk and shows you your last few months.
npx estela setupcopy
After that: npx estela web
opens the panel, and npx estela doctor checks the data.
Then you don't have to leave. The plugin is the same program, with three skills Claude Code reaches for when they fit.
/plugin marketplace add jdleonruiz/estela-clicopy
/plugin install estela@estela-clicopy
Then just ask in plain words
—"how many hours have I put into this?", "show me an example
first"— and it finds the command on its own. /estela:demo
fills a whole panel with made-up data and touches nothing of yours: see
what it does before you let it near your own history.
Today Estela exports to CSV and Clockify, and reads the plan from GitHub and GitLab. Next up is Azure DevOps: your hours in each task's Completed Work, without logging them by hand. Which one do you need? Vote: whatever's asked for most goes first.
Teams has a free 14-day trial and you sign up yourself in a minute: start here. What's below is for when you'd rather talk it through first — leave us your email and we'll write back ourselves, not an automated system.