Elyra
Elyra The coding agent e The native code editor Elyra Grove Native local development environment Askr The real server for Laravel & PHP Elyra Framework Rust + Svelte 5 framework for desktop apps Elyra Conductor Local project conductor Elyra SQL Server MySQL-compatible SQL server in Rust Elyra Félagi Agents as teammates on one board Elyra SQL Client Native desktop SQL workbench Elyra SQL Anywhere Replication-ready SQL engine Elyra Sjá SEO & GEO workspace for macOS Elyra DataGrid Server-driven data grid for Laravel
Start here
Concepts
Elyra

Timesheets

Your week, with the empty days showing. Timesheets, in the sidebar.


Two places to write time down

Time has always been loggable on an issue, and that is still the right place when you are looking at one: you have just finished something, the issue is open in front of you, you write down what it took.

The timesheet is the other half. It answers a question the issue cannot — what have I written down this week, and what is missing — which is the question somebody actually has on a Friday afternoon with four days to remember at once.

Both write the same rows. Neither is a second system.

The grid is the argument

Seven columns, one per day, whether or not anything was logged on them.

An empty Wednesday is the most important thing this page displays. A list of what was recorded cannot show what was not, and what was not is exactly what somebody opened the page to find.

Each day shows what you recorded against what was expected of you:

mon 3    4h of 8h
tue 4    8h of 8h
wed 5    3h 30m of 8h
sat 8    —

The heading carries the week number after the dates — 3–9 August 2026 (week 32) — because plenty of teams schedule, invoice and talk in week numbers, and "week 32" is something people say out loud in a way "3 August" is not.

Inside a day, durations are in hours. 1d of 8h is one quantity written twice.

Where "expected" comes from

The same weekly rate the Gantt and cycles use — weekly_hours on the membership — divided across the working week. Somebody on twenty hours is expected to record four a day, not eight.

Deliberately borrowed rather than restated. A second copy of that arithmetic is a second thing that can drift out of step with the plan it is being compared against.

Weekends expect nothing, and a month is measured by its own working days rather than by four weeks.

Corrections

Edit or remove any entry you typed. Moving an entry from one issue to another is a correction, not a new record — both issues' totals are repaired, the one losing the hours and the one gaining them.

Totals are recalculated from the rows rather than adjusted by a difference. A sum that went wrong once stays wrong forever under a difference, and there is no way back.

Whose hours are whose

An agent's hours appear and cannot be edited. The run is in the timeline with its own duration; editing the entry would let the time report disagree with the history it was derived from. Machine time is time, and a timesheet that hid it would disagree with every report in the product.

Somebody else's hours cannot be edited either, by anybody. A workspace admin can read the whole workforce's weeks — people and agents both — and correct nobody's. Another person's hours are their statement about their own week.

Notes

A note is written in the editor, like every other piece of prose in Félagi. Formatting survives, HTML is sanitised on the way in, and the day cell and the CSV export both show the words without the markup.


Not there yet

  • No approval or submission. There is no "submit for approval", no locked period and no manager sign-off. A timesheet here is a record, not a workflow.
  • No timer. Nothing to start and stop; durations are typed.
  • No billing. No rates, no billable flag, no invoice. Agent runs carry a cost in dollars from the CLI, but human hours have no price attached.
  • No copying last week. Every entry is written once.
  • Not in the API. Time can be read through the reports and written through the interface only.
  • No per-day reminder. Nothing emails you about an empty Wednesday.