# Where your coding agent stopped

Claude Code hits its limit on Monday afternoon. You write to @codex, and it carries on from the pinned plan and the last note.

## At a glance

- **For:** Developers who run Claude Code and Codex on the same work.
- **You keep:** A Work folder with one thread per task, its plan pinned at the top.
- **Comes in:**
  - Replies from @api and @codex, as notes.
  - Notes from agents you connect through MCP, if you use that route too.
- **The moment:** On Wednesday morning, List filtered to Waiting shows every blocked task, with the reason in its last note.
- **Plan:** Pro · From USD 7.99 a month. 14 days free, no card.

## Before

On Monday afternoon Claude Code hits its limit halfway through a migration. You open Codex, and it knows nothing: the plan was in Claude Code’s conversation, the progress in a file on a branch, the reason for the cache change in your head. You spend twenty minutes explaining what took Claude Code a morning to work out.

## Why a thread, not a progress file or a ticket

### Another session picks it up

@codex reads the pinned plan and @api’s last note, and carries on from there. You copy nothing between the two conversations.

### It outlives the session

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

### A log of your own

Agent notes in ticket comments are noise for the rest of the team. Here they make your own log, and you share a single thread when someone needs it.

### You decide what it can touch

Narrow each session to the Work folder in Manage access. Each note says which session added it, and you can undo a connection’s changes.

## The moment

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

Example list:

- Work · Tax rates from 1 October · Waiting on finance for a backfill window. · 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

Your workspace starts empty.

### Tax rates from 1 October

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

Work · Done

#### Mon 5 Oct

*You start the thread with what you know.*

**You** · 09:12

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

[Image: Screenshot of the Slack message]

*Claude Code gets it by name.*

**You** · 09:14

To **@api** Replied in 26 min

@api find out why, and write the plan as a note before you change any code.

*Its plan, as a note. You pin it, so it stays at the top.*

**From @api** · 09:40

Pinned

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

- [ ] Add an effective date to tax rates
- [ ] Backfill invoices from 1 October
- [ ] Remove the per-process cache

**You** · 09:45

To **@api** Replied in 3 hr

@api go ahead with the effective dates, and test the backfill on a copy.

*The test run, as a table.*

**From @api** · 13:20

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

| Invoice | Old VAT | New VAT |
|---|---|---|
| 10482 | 20% | 21% |
| 10517 | 20% | 21% |

*Monday afternoon, Claude Code stops.*

**You** · 16:05

Claude Code hit its limit, back this evening. Codex can take the rest.

*You write to the Codex session, with nothing to explain.*

**You** · 16:06

To **@codex** Replied in 52 min

@codex continue from the pinned plan and @api’s last note. The backfill waits for finance.

*It read the plan and the last note, and carries on.*

**From @codex** · 16:58

Read the plan and @api’s notes. Removed the per-process cache and added a test that changes a rate mid-run. The backfill is ready in #482.

*Waiting, with the reason. Waiting*

**You** · 17:02

Waiting on finance for a backfill window.

#### Wed 7 Oct

*One line from your phone. Active*

**You** · 18:02

Finance is fine with Friday 18:00.

#### Fri 9 Oct

*On Friday, Claude Code is back on it.*

**You** · 18:00

To **@api** Replied in 41 min

@api run the backfill now, then tick the plan.

*The plan, ticked.*

**From @api** · 18:41

- [x] Add an effective date to tax rates
- [x] Backfill invoices from 1 October
- [x] Remove the per-process cache

Backfill done, 312 invoices moved. Pull request merged.

*You mark the thread Done. Done*

**You** · 18:50

Checked ten invoices by hand. Closing this.

## You write. Your sessions reply.

Each session reaches only the notes you give it access to.

[Connect Claude Code or Codex](https://thread.page/help/connections/coding-agents.md#sessions)

### Connect your sessions

Install the plugin once per computer, then connect Claude Code and Codex. Name the Codex session codex when your browser asks.

#### Set it up

Coding agent

1. **Claude Code** Once per computer, install the ThreadPage plugin in your terminal.

   ```bash
   claude plugin install threadpage --marketplace ThreadPage/threadpage-companion
   ```

2. Quit Claude Code, then reopen your conversation with ThreadPage.

   ```bash
   claude --continue
   ```

   Connect it in the session. It suggests a name from your project folder.

   ```bash
   /threadpage:connect
   ```

3. **Codex** Once per computer, install the ThreadPage plugin in your terminal.

   ```bash
   codex plugin marketplace add ThreadPage/threadpage-companion && codex plugin add threadpage@threadpage
   ```

4. Quit Codex, then resume the same conversation.

   ```bash
   codex resume
   ```

   A new Codex session needs one message first. Your browser opens; check the name and access there, then choose Connect.

   ```bash
   $threadpage:connect
   ```

5. Your browser opens ThreadPage. The name comes from the project folder; change it if you like, then choose **Connect**. To connect another session, run the connect command in it.

### Or notes through MCP

Claude Code or Codex added through MCP has no name to write to, but adds a note on its own when a rule asks it to: at the end of a session, when it’s blocked and when it decides something.

#### Set it up

Coding agent Edit and organize Selected folders and threads: Work

1. Claude Code: run `claude mcp add --transport http --scope user threadpage https://thread.page/mcp; claude mcp login threadpage`
2. Codex: run `codex mcp add threadpage --url https://thread.page/mcp`
3. When the browser opens ThreadPage, choose **Customize access** → **Edit and organize**, so it can set a thread’s status and link and pin its plan. Then choose **Selected folders and threads** → **Work**.
4. Add one rule to `CLAUDE.md` or `AGENTS.md`: “Keep one ThreadPage thread per task in Work. Read it before you start. Pin your plan, and set the thread’s link to your pull request. 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 **GitHub** · 13:21

Pull request opened: Use effective dates for tax rates

github.com/acme/billing/pull/482

#### Set it up

Automation Add notes from another app GitHub pull requests

1. In **Settings → Connections → Automations**, choose **Connect an automation** → **Add notes from another app** and name it GitHub: its notes will say so.
2. In **Adds to**, choose the thread for the repository’s pull requests; in **What it sends**, **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 the thread’s menu copies all of it, ready to paste. That works on Free too, and ThreadPage sends nothing.

## Limits

- A session has to be open on a computer that stays awake. A request waits up to seven days for it.
- Permission prompts appear in your terminal, as they always do. If one holds up your request, the note says Waiting for your approval and names the computer.
- Notes and replies are stored on ThreadPage’s servers and aren’t end-to-end encrypted, so keep secrets out of them.
- Don’t also add ThreadPage with claude mcp add to a session you connect with the plugin: its notes would come from Claude Code, not under the session’s own name.
- 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.

[Start free trial](https://thread.page/auth/sign-up?returnTo=%2Fapp%2Fsettings%2Fconnections%2Fcoding-agents%23trial)

14 days of Pro, no card. Then from USD 7.99 a month.

[Start a thread](https://thread.page/app)

More use cases

### [Claude Code writes, Codex reviews](https://thread.page/use-cases/claude-code-and-codex.md)

@api writes the fix and @review checks it. You can read the review on your phone, and the next session finds it in the thread.

Pro · sessions by name

### [Which session is waiting on you](https://thread.page/use-cases/waiting-sessions.md)

Claude Code in three repositories, Codex in two. For you shows the one with a question, the one waiting for your approval and the replies you haven’t read.

Pro · sessions and For you

[How to keep a work log](https://thread.page/guides/work-log.md)

[A notes app with MCP for Claude, ChatGPT and Codex](https://thread.page/notes-mcp.md)

[All use cases](https://thread.page/use-cases.md)
