For teams inside a business
Finance gets the numbers. Developers get their time back.
Your team's coding agents record the time as they work — attributed to the developer who ran them, sorted into the right project, reviewed before it counts.
Shyre is in early access and accounts are set up by hand. Tell us what you work on and we'll be in touch.
One Claude Code session, as Shyre measures it
One entry: 47 min — 35 with the agent working, 12 waiting for the person — attributed, categorized
What this is, and what it isn't
It is an operational measure of engagement
It tells you that the Platform team spent most of last quarter in the billing service, and it does that without asking anyone to write it down. If your finance team has zero data today, this is the difference between a guess and a number.
It is not a payroll or capitalization record
The hours are sampled from agent activity, not clocked labor, and the idle cap is set per developer. We are not going to call that audit-grade, because it isn't.
Which agent, on whose behalf, in which session — recorded at write time, and the database refuses to let it be edited afterwards, including by an administrator.
Cost rates have shipped: an effective-dated hourly cost per person, visible to owners and admins only. Internal chargeback is next.
And then what finance actually gets
Measuring the hours is half of it. This is the half that has to add up.
Reports, by project and by person
Hours and billable share over any period, per project and per person, with a lens that separates what a human logged from what an agent did. Per project, it also reads the agent meters back: how long the agents ran against the hours people declared, and how long they waited on a review.
What the quarter cost
An effective-dated hourly cost per person — owner and admin only — so a quarter of engineering has a number beside it, not just a duration.
Release notes with a named approver roster, and a sign-off you can request before you ship, or record as not needed — either way the decision sits on the release. When someone asks who approved it, the answer is a record rather than a thread.
A cost figure carries the hours it covers — “cost known for 6.7h of 10.0h” — because an hour nobody priced is not an hour that cost nothing. Where the hours in view were priced in more than one currency the total is withheld rather than converted at a rate nobody chose.
Three of a figure's four answers are not a number: a genuine nothing, “we could not load it”, and “you are not permitted to see this” — and a confident $0.00 you were never allowed to see is worse than no number at all.
Which ticket, not just which project
Finance asks what an hour was against. The row answers it.
Entry description
Linked to
Close a period and the database stops arguing
Not a screen that hides the button. A refusal, one level beneath every screen.
Lock through a date and an edit inside it raises an error whoever the caller is — including a cost rate that would start on or before the lock, and any change to a locked invoice's amounts, dates or customer.
What stays open, on purpose
Marking a locked invoice paid still works, and so does recording the payment against it. A payment landing a month later is ordinary, and a lock that refused it would be a lock nobody could live with.
Both directions are recorded
Every lock and unlock is kept in a table that only ever gains rows, and unlocking makes you type the word. The lock itself has no edit path.
Nobody on your team wants to fill in a timesheet. Nobody has to.
Shyre is the only time record where the answer to "who's going to fill this in?" is nobody.