offtrack

Coworkers

When several of you work on the same repos, each in your own offtrack project, you can hand tasks to each other and see how the shared work is going. Nobody can touch the other side's threads or items. This page walks through one team: Neo the developer, Trinity the business analyst (BA) and Morpheus the project manager (PM). General use is in the user guide.

Concepts

Nickname

Set your nickname on the Your account page or with offtrack nick neo. It is 2–24 characters, unique on the server, and case doesn't matter. With a nickname you agree that people working on the same repo can find you: you show up in the output of offtrack coworkers. It has no other use. Without a nickname nobody finds you.

offtrack nick "" clears it. You then drop out of the lookup. Your existing coworks stay, and your pending requests can still be accepted: the recipient sees the nickname you had when you sent them. Nobody else can take a cleared nickname, so your old coworkers never mix up two people.

Only someone who works on a repo can ask who else works on it: the client asks with the repo's fingerprint, and the server only answers for a fingerprint the asker knows too. The answer lists nicknames only, and whether you already cowork.

Task level: shared tasks

Trinity has specified the new billing endpoint in her own project. In her session she asks: “hand this to Neo for development”. Claude hands it off with the to: "Neo" field of offtrack_report. The item lands on the main thread of Neo's project, Trinity's item closes, and a task-level cowork starts between them.

Neo gets stuck: he doesn't know how to round the invoice amounts. He asks: “hand this back to Trinity as a question: how do we round?”. That is a new shared task, this time with Trinity.

At task level you both see only the shared tasks, none of the other's work. To show an item of yours without handing it off: offtrack share-item <item-id> <nickname>. The item stays yours; your coworker can only see it.

Project level: the whole picture

Morpheus wants to see who works on what. He asks both of them for a project-level cowork: “ask Neo for a project-level cowork on my billing project” (offtrack cowork Neo project --project billing). This needs no common repo and no earlier cowork.

Neo accepts on the Your account page or with offtrack cowork accept Morpheus. If the server suggests no project, he picks his own when accepting (--project). Neo also gets an email with the commands to accept or decline (he can turn it off on Your account). A pending request shows as one line on the Your account page and in the session's [offtrack] block at startup; a session that's already running doesn't show it.

At project level each side sees every thread and item of the other's project, except private ideas. It works both ways: Neo sees Morpheus's project too. The work of the project's other members stays hidden.

What you see, and where

Map from Trinity's view: her own threads, plus Neo's threads in a pale blue band with a “Neo threads” badge
The map from Trinity's view: Neo's band on the right, with the handed-off task.
List from Trinity's view: the project's own cards, then Neo's section with a pale blue stripe
The same on the list: your own cards first, then Neo's section.

Your coworker's threads and items are read-only: you can't close, reopen or rename them, or add notes. The server enforces this, not just the interface. To give Neo work, open the menu of your own open branch or manual to-do and pick “Hand off to Neo…”: you can edit the text and due date, your item closes, and the new one shows up on his side. On both your maps an arrow links the source thread's link to the handed-off item. When Neo closes the task, it stays in his band within the time window, faded and ticked. Click your coworker's item or milestone to see its full text and time, read-only.

Changing level and ending a cowork

The Nickname and Coworks sections of the Your account page, from Morpheus's view, with Neo at project level
On the Your account page you set your nickname, and change level or end a cowork.

Repo labels

One session can touch several repos: Neo starts Claude Code in his backend repo but works in the web repo too. So every item records which repo or repos it concerns.

  1. Claude sets them when reporting, with the repos field of offtrack_report; for an open branch, also the repos the to-do will touch.
  2. If Claude gives none, the client works them out from the files edited since the last report, and failing that, from the session's directory.
  3. The label shows in the item's meta line, for example “api · web”. The owner can fix it from the item's menu (Repo labels…).

Per repo the client sends two things: a salted fingerprint of the remote address and the name of the repo's root directory (that is the label). The repo address never leaves your machine. Details are in the install guide.

Ask Claude

Claude touches coworks only when you ask.

Say thisClaude does this
“who else works on this repo?”offtrack_coworkers: the list of nicknames
“hand this to Neo for development”offtrack_report with to: "Neo"
“share #412 with Trinity”offtrack share-item 412 Trinity
“ask Neo for a project-level cowork on my billing project”offtrack_cowork request
“accept Morpheus's request”offtrack_cowork accept
“show my coworks”offtrack_cowork list
“keep it at task level with Morpheus”offtrack_cowork task
“end the cowork with Trinity”offtrack_cowork end

The same from the command line: in a terminal, or in Claude Code with the ! prefix.

offtrack nick [<nickname>]show or set your nickname ("" clears it)
offtrack coworkers [<directory>]who else works on this repo
offtrack cowork listyour coworks and pending requests
offtrack cowork <nickname> project --project <own project>request project level
offtrack cowork <nickname> task | end [--project <own project>]back to task level, or end the cowork
offtrack cowork accept <nickname> [--project <own project>]accept a request
offtrack cowork decline <nickname>decline a request
offtrack share-item <item-id> <nickname>share an item of yours without handing it off