Offsite Solutions / /offtrack

/offtrack your tasks on a map

When you work on several projects and threads at once with Claude Code, unfinished tasks get lost between sessions. offTrack collects reports from your sessions through hooks and MCP tools: completed steps, open branches and manual tasks. A timeline map shows where every thread stands and where a branch was left open.

Open offtrackofftrack.offsite-solutions.com
Illustration: three threads of work as vertical lines, with stops, open branches, a manual task, a quiet stretch and a link between two threads. today 2 weeks ago website back office mobile app deployed update the sitemap privacy notice done closed branch plan approved root cause found quiet for 6 days client sign-off migration done touches build ready test notifications screen designs requirements
Illustration. The map with sample data.
Status
Available, allowlist-based
Client
Claude Code on a Mac; a connector in the Claude app
Interface
Web list and map with a mobile view
Languages
Multilingual interface

Where the context gets lost

At the end of a longer round, Claude lists several next steps. You take one forward, the rest slip your mind, and after a compaction often the session’s context too.

When a session closes, the thread’s state goes with it. In a project running on several threads, a missed step only stands out if you can see that the thread has been quiet for days.

How it works

  • Hooks and MCP. The client installs at user level (~/.claude/), so it is active in every project and every session, with no per-project setup. Hooks register each session deterministically. Through MCP tools the model sends semantic reports: a stop, an open branch, a manual task, an idea or a link.
  • Enforced reporting. The Stop hook checks at the end of every round. If significant work or a to-do list went unreported, it sends the session back to catch up. A to-do list is a list of at least three items that does not lead into a question. Individual commands, file reads and small fixes are not logged, so the map stays clean.
  • Context at startup. The SessionStart hook, after compaction too, injects the project’s threads, the latest stops, the open branches and any new notes. A new session knows where the thread stands.
  • Pick up a branch in one click. Clicking an open branch on the map copies a ready prompt to the clipboard: project, thread, task and the latest steps. Paste it into any session. The session first summarises the task, and only then starts on it.
  • Fail-open, with an offline queue. If the server is unreachable, the hooks let the session through after a short timeout, and the Stop hook never blocks. Reports go to a local queue and are sent later, in order.
  • Links across projects. When a session touches another project’s code, server or configuration, the map connects the two threads.
  • Backfill from earlier sessions. offtrack backfill turns the old conversations on your machine into one proposal file per project, with milestones and open items. The summarising runs on your own machine, with Claude. You review and edit the file, and only then send it up (offtrack import), into your own projects only.
  • Add items from the Claude app. With a custom connector you can add an item from the Claude app (on your phone, desktop or the web), for example: “track website quote”. The item goes to the project the text names, otherwise to unsorted. Typing, dictation and voice mode all work.

Only Claude Code sessions running locally report. Cloud sessions do not receive user-level hooks or MCP servers.

The map

There are two views. The list is the default: one card per project with its open items in full, and for quiet projects, how long nothing has happened. On the map, each thread is a vertical line with the latest event at the top. The timeline is event-based: a date appears only where something happened. The range goes from one day to six months; older open items stay in a compressed “earlier” band.

Completed items appear with a toggle, and a thread’s dense open items can be grouped into one stub. Both views update live as reports arrive. The marks differ in shape, not just in colour.

  • StopA completed, self-contained step.
  • Open branchA task that was started or listed but not closed.
  • Manual taskSomething you have to do yourself.
  • Closed branchA finished task that loops back into the line.
  • QuietNothing has happened on the thread for days.
  • Live sessionSomeone is working on the thread right now.
  • LinkWork on two threads touches each other.
  • IdeaA thought set aside for later. A lock shows while it is private.

On the phone too

The mobile view shows one thread at full width; swipe to switch. You can add the map to your home screen.

Note a deadline or a clarification from a meeting straight onto the thread, even by dictation. The thread’s next session receives it at startup.

Illustration: the map on a phone, one thread at full width. offTrack 2 weeks website 1 back office 1 mobile app today3 days1 week2 weeks quiet for 4 days deployed update the sitemap due: Friday privacy notice done closed branch plan approved
Illustration

Many projects, shared work

  • Projects from the working directory. An unknown cwd becomes a project automatically. You can merge projects (offtrack merge) and attach a running session to an existing project (offtrack attach). The directory moves to the target project with its subdirectories, and the old name lives on as an alias. You can also assign a root directory with its subdirectories to a project by hand (offtrack root).
  • Shared projects. A project is private by default. Its owner can add members; members see everything in it, can report to it and can close anyone’s items. Sharing, merging and handing over are the owner’s rights. Everyone sets the project roots on their own machine.
  • Private and published ideas. An idea stays private even in a shared project until its owner publishes it. What someone cannot see does not exist for them: the server returns a 404.
  • Its own skill and CLI. The standalone offtrack Claude skill handles the less frequent operations: attaching, merging, sharing, handing over, publishing, assigning a manual task and picking up a branch. The same works from the command line (offtrack …).

Data and access

Sessions send summaries of one to three sentences; the text of the conversations never reaches the server. The client reports with a per-user token. Each token can be revoked on its own, and the server stores only its hash.

Everyone signs in to the web interface with their own account. Access is controlled by an allowlist of domains and addresses.

The data lives on a server in Hungary that we operate. No tracking, analytics or advertising; the interface uses a single cookie, for sign-in.

Installing

The Mac client installs from a public repository under the MIT licence: offsite-solutions/offtrack-client.

git clone https://github.com/offsite-solutions/offtrack-client.git
cd offtrack-client && npm install
node install.mjs install
offtrack login

The installer sets up the hooks, the MCP server, the CLAUDE.md block, the skill and the offtrack command at user level. It leaves existing hooks and text alone and backs up every file it changes. Once signed in, you generate a client token per machine and the Claude app connector URL on the install page.

Install guide · Sign in to offTrack

Want to try offtrack?

Sign-in is allowlist-based. If you would like to try it, or roll it out to your team, write to us and we will add you.