ThreadPage

All use cases

Where your coding agent stopped

Claude Code on Monday, Codex on Thursday, one thread per task. Each picks up where the other stopped.

See the thread

At a glance

For
Developers who hand part of the work to agents.
You keep
A Work folder with one thread per task, and a Decisions thread every agent reads first.
Files itself
  • Your agents’ notes, from Claude Code or Codex.
  • Your repository’s pull requests, in a thread of their own.
The moment
Thursday morning, List filtered to Waiting shows every blocked task across repositories, with the reason in its last note.
Plan
Pro Try it free for 14 days, no card needed.

Before

On Monday you had three sessions going: Claude Code on a migration, Codex on a refactor, and a bug someone dropped in Slack. On Thursday the worktree is gone and the session’s context with it. The progress file was on a branch you never merged, and the ticket still says “In progress”.

Why a thread, not a progress file or a ticket

  1. It outlives the session

    A progress file disappears with its branch. The thread stays, and every agent you connect can read it.

  2. It’s yours, not the team’s tracker

    Agent notes in ticket comments are noise for everyone else. Here they are your private log, and you share one thread when someone needs it.

  3. The next session starts from it

    “Read the thread for the migration and continue” picks up where the last session ended, whichever agent runs it.

  4. You decide what it can touch

    Give it the Work folder only. A review agent can have Read only. Each note says which connection added it, and Undo this change reverses an edit.

The moment

Thursday, 08:55: three tasks are still Waiting, each with its latest note.

List

Waiting

  • Work

    Tax rates from 1 October

    Finance is fine with Friday 18:00.

    Waiting
  • Work

    Flaky checkout test

    Staging is down; rerun once it’s back.

    Waiting
  • Work

    Upgrade to Postgres 17

    Waiting for Sunday’s maintenance window.

    Waiting

A thread, over time Example

Your workspace starts empty.

Work

Tax rates from 1 October

Open invoices move to the new VAT rates. Pull request #482.

Done
  1. Mon 2 Nov

    1. You start the thread. The agent takes it from here.

      You09:12

      From Slack: invoices after 1 October still use the old VAT rate.

    2. The agent writes its plan before it touches the code, and pins it.

      via Claude Code09:40

      Pinned

      Cause: the rates are cached per process and never reload. Plan:

      • To do: Add an effective date to tax rates
      • To do: Backfill invoices from 1 October
      • To do: Remove the per-process cache
    3. A table, not a chat message. The thread’s link now opens the pull request.

      via Claude Code16:05

      Tested on a copy: 18,204 invoices, 312 change. Pull request #482 opened.

      InvoiceOld VATNew VAT
      1048220%21%
      1051720%21%
      1053320%21%
  2. Tue 3 Nov

    1. The agent sets Waiting and says why. Waiting

      via Claude Code11:20

      Blocked: finance has to agree on a window for the backfill.

  3. Wed 4 Nov

    1. One line from your phone.

      You18:02

      Finance is fine with Friday 18:00.

  4. Thu 5 Nov

    1. Another agent, the same thread. Active

      via Codex09:03

      Read the thread. Continuing from Monday’s plan; the dry run is below.

  5. Fri 6 Nov

    1. The agent marks the thread Done when the work is. Done

      via Codex18:41

      • Done: Add an effective date to tax rates
      • Done: Backfill invoices from 1 October
      • Done: Remove the per-process cache

      Backfill done, pull request merged.

It files itself. You read.

Your tools write into the threads you choose, with only the access you give them.

Custom connections and API
  • Notes from your agents

    Claude Code or Codex adds a note when it finishes a session, gets stuck or decides something.

    Set it up

    Assistant connectionSelected folders and threads: Work

    1. In Settings → Connections, choose Add connection → Claude Code or Codex and copy the MCP URL.
    2. Claude Code: run claude mcp add --transport http threadpage MCP_URL Then open /mcp in Claude Code to connect and sign in.
    3. Codex: run codex mcp add threadpage --url MCP_URL --oauth-client-registration cimd and codex mcp login threadpage --scopes notebook.read,notebook.add,notebook.edit,notebook.manage
    4. When the browser opens ThreadPage, choose Customize access → Selected folders and threads → Work.
    5. Add one rule to CLAUDE.md or AGENTS.md: Keep one ThreadPage thread per task in Work. Read it before you start. Add a note when you finish a session, when you are blocked and when you decide something. Set Waiting with the reason when blocked, and Done when finished.
  • Pull requests from GitHub

    Every pull request in the repository that is opened, ready for review, merged or closed becomes a note in one thread for the repository. The agent links its own pull request in the task’s thread.

    In billing, pull requests

    via GitHub16:06

    Pull request opened: Use effective dates for tax rates

    github.com/acme/billing/pull/482

    Set it up

    Custom connectionAdd endpointGitHub pull requests

    1. In Settings → Connections, choose Add connection → Automation or API and name it GitHub: its notes will say so.
    2. Choose Add endpoint, the thread for the repository’s pull requests, and GitHub pull requests.
    3. In the repository’s Settings → Webhooks, paste the URL and the secret, choose application/json and Pull requests.

Also

An agent you haven’t connected can still read the thread: Copy as text in its menu copies it at once, on Free too, and sends nothing anywhere.

Limits

  • Nothing is posted back to Slack or GitHub.
  • ThreadPage doesn’t run your agents: they run where they always do.
  • One endpoint URL feeds one thread, so a repository’s pull requests go to a thread of their own.

Claude Code, Codex, GitHub, and Slack are the names of their owners. ThreadPage is independent and not affiliated with or endorsed by them.

Start with one thread.

Open threads

Free in your browser. No account needed to start.