Everyday use
The work record
What each agent actually did — files created and edited, lines, tests, commits, pushes and pull requests — by work stream, turn by turn, and week by week.
Once several agents are running, the hard part isn't writing code — it's keeping track of what they produced. The work record says what each agent did, not just whether it was working: files created and edited, lines added and removed, tests run and how they went, commits, the branch pushed and pull requests opened — grouped by work stream (what the agent is working on) and by turn.
The counts need the Agentower hook version 4 or later on the agent's computer; work streams, and the instruction and the agent's summary, need version 6 (or the Claude Code plugin 0.4.0); version 7 (plugin 0.4.1) also tidies instructions sent from another session. Until then, the Work tab says so and points to Keys & connections — see Connect Claude Code.
#Where you see it
- Cards: a tag with the agent's work stream (for example "docs · landing", or "No stream yet") on the second row, and "Editing 3 files (src)" on the Now row counts the current turn's changed files (see What it's doing).
- Details panel → Work (the first of its tabs: Work · Chat · Stats · Log): the agent's work grouped by stream, newest first, and within each stream its turns, newest first. Each turn has a title — the agent's task when Agent chats is on, otherwise "Turn 3" — and its times, then labelled blocks:
- Stream — the stream's name, with Rename (below);
- Why · your instruction — with Work details on, the instruction the turn began with;
- What changed, marked "Verified from git" — the numbers (files new, files edited, lines
+223 −54, commits), then the steps: files changed or created, tagged NEW or EDIT, with+12 −3; test runs, with how many passed, failed and were skipped (failed test names in red, with Work details on); commits — the short hash links to the commit on GitHub, GitLab or Bitbucket when the repository is hosted there; the branch pushed and the pull request opened (linked); and the last test result; - Agent's summary — with Work details on, the agent's own closing message, in a dashed box marked "In its own words · not verified".
A subagent's steps appear inside its parent's turn, under the subagent's name.
- History → Work: one table, by stream and week — see below.
- History → Log: pick Changes to see the work steps — "Committed “Add cursor pagination” · a1b2c3d", "Tests (vitest): 47 passed, 1 failed", "Finished its turn · 3 files · +80 −12 · 1 commit". The Log never shows instructions or summaries.
A turn runs from your instruction to the moment the agent finishes and waits for you.
#Work streams
A work stream is a short name for what an agent is working on, such as "Landing page" or "fix login bug". Agents in the same project with the same name share one stream, so a piece of work keeps one name however many sessions it takes. Each top-level agent is in one stream at a time; its subagents' work counts towards it.
Agentower picks the name in this order — the first that gives one wins:
- A launch label you set when you start the agent (below).
- A rename in the details panel.
- The git branch, or the linked worktree's folder name, made readable:
docs/landingbecomes "docs · landing" andfix-login-bugbecomes "fix login bug". Names that say nothing, such asmainor a worktree calledworktree-agent-3f9a1c, are skipped. - The top-level folder of the repository that the agent's edited files are in, such as "apps" or "docs".
On the live board, an agent whose stream is only an automatic guess (a branch or folder) shows its own session title instead, when there is one — what it's working on, as on the board — so agents on the same branch each show their own work. That title is shown only to people who may approve the project; everyone else sees the branch or folder stream. It is never stored, and History → Work and exports keep the stream itself.
A launch label beats everything else; a rename beats every automatic guess. Until one of these is known, the card says "No stream yet" (and History → Work shows "Unnamed stream"). A name is at most 40 characters.
#Start an agent with a label
Set AGENTOWER_LABEL when you start the agent:
AGENTOWER_LABEL="landing page" claudeIt works the same with the hook file and with the Claude Code plugin (the plugin's hook reads the same variable from the session it runs in). Letters, digits, spaces and . _ / : + - are kept; anything else is dropped.
#Rename a stream
In the Work tab, Rename beside the agent's current stream moves only that agent to the name you give: other agents on the same branch keep theirs, so each can have its own stream. If the agent was alone in a stream you named by hand, that stream is simply renamed; otherwise it joins the project's stream of that name, or a new one. An automatic guess never replaces a name given by hand. Only owners and approvers of the project can rename a stream, with a sign-in from the last 7 days; up to 40 characters. Each rename is recorded in the audit log (action stream.renamed), for example "Renamed work stream “fix login bug” to “Login fix” (Sarah (BIL-02))". A workspace can make up to 20 renames a minute (agents and streams together).
#Counts always, names with Work details
Every project sends counts: how many files (created or edited), lines added and removed, the kind of command (test, build, lint, install, git, run), test results, the number of commits and their short hashes, whether a branch was pushed and a pull request opened. The stream's name comes from names only — a launch label, a branch, a worktree folder or a top-level folder name — never a path.
Switch on Work details on a project's page (Project settings; off by default — owners and that project's approvers can change it) and the record also holds:
- the files (relative to the repository, never a full path on your computer), commit messages (first line), the branch, the pull request link and the names of failed tests (up to 10);
- the instruction that started each turn — the first 600 characters of what you typed (an instruction sent from another session shows as "From <name>: …", without its technical wrapper);
- the agent's summary — its own closing message at the end of the turn, first 600 characters. It's what the agent says it did; Agentower doesn't check it, and labels it "Agent's summary · In its own words · not verified".
For the instruction and the summary, the hook removes code blocks and replaces anything that looks like a secret with [hidden] on your computer, before it's sent — and Agentower does it again when it arrives. It looks for private key blocks, tokens in the form of JWTs, Stripe, Resend, Agentower, Anthropic and OpenAI-style keys, GitHub, GitLab, Slack, npm, Hugging Face, SendGrid and DigitalOcean tokens, Slack webhook links, AWS access key IDs, Authorization: and Cookie: header values, passwords inside links (https://user:password@…), curl -u credentials, a -p password after mysql, mongo or sshpass, the value after password, pass, pw, passphrase, token, secret, credential, auth, api_key or any name ending in _KEY or _ID such as SECRET_KEY (with =, : or as a --password value option), and long random-looking strings of letters and digits. From hook version 12 (plugin 0.4.6) it does this after removing hidden formatting characters and backticks, so a secret can't be slipped past it by splitting it up. It's best effort: it can't recognise a secret that looks like ordinary words, so don't paste secrets into instructions.
Instructions and summaries are shown only to people who may approve the project and kept as long as your history. Switching Work details off deletes the names, instructions and summaries already kept; the counts stay. Switching it either way needs a sign-in from the last 7 days and is recorded in the audit log.
Never sent, at any setting: your code, diffs, what an edit changed, the full text of a command (it can hold secrets) or a command's output. With Work details off, none of your instructions are sent either. Lines are counted on your computer and the edit is thrown away. Commit and pull request links point to your own repository host — Agentower never fetches your code.
#Codex and Cursor send less
What a tool doesn't report, the Work tab says quietly — "not reported by Codex" — rather than guessing.
- Codex: shell commands by kind, commits, pushes and pull requests, the turn's totals and, with Work details on, the instruction and the agent's summary. Codex doesn't give test output to hooks, so test runs come without passed and failed counts or test names ("Test results: not reported by Codex"). The hook counts file changes only from Claude Code's edit tools, so files Codex changes with its own patch tool aren't counted.
- Cursor: the stream (branch, worktree folder, launch label) and, with Work details on, the instruction. No files, tests, commits or summary ("Files, tests and commits: not reported by Cursor", "Summary: not reported by Cursor").
#History → Work
History → Work is one table, with one row per work stream and week (ISO weeks, Monday to Sunday, UTC). Its columns:
| Column | What it shows |
|---|---|
| Stream | The stream's name, with its project and week under it |
| Sessions per day | Seven small cells, Monday to Sunday, darker on days when more agents worked in the stream (hover a cell for the number) |
| Files · lines | Files created and edited together, with lines added and removed |
| Commits | How many commits |
| Latest tests | A dot and "Passed" or "Failed", with the counts when the runner printed them — or "No test run" |
| Why · and the agent's summary | With Work details on, the stream's first instruction of the week, with "Agent: …" and its latest summary under it, and its commit messages (up to 20) folded under "N commit messages" |
Pick Week, Month (the default), 6 months or Year and step back and forth with ← and →. Export beside them opens the Export page. Work done without a stream shows as "Unnamed stream".
Everyone in the workspace sees the counts, the sessions per day and the test results. Commit messages, instructions and summaries show only for projects with Work details on, and only to people who may approve the project. The same roll-up, without the sessions per day, is the Work summary by stream and week dataset on Export.
#Who sees it, and for how long
Everyone who can see the agent sees the counts and the stream's name; only people who may approve the project see the names, instructions and summaries. The same goes for the Work record and Work summary datasets on Export, the export API and the MCP server. Files changed and commits also appear in the weekly view. The record is kept as long as your history: 7 days on Solo, a year on Team and Enterprise. Streams nobody uses any more are deleted along with that history. See Privacy.
Each workspace can keep up to 4,000 work steps a day on Solo and 20,000 on Team (UTC days). Beyond that, the board and its totals still update live, but the rest of that day's steps aren't kept in the record — see Workspace limits.