Skip to content

Releases: petekp/inbox

v0.2.10

Choose a tag to compare

@petekp petekp released this 21 Oct 19:11

The inbox now works in omp, and the agent asks its questions as questions in every app.

What you'll notice

omp: the inbox is here. Run /inbox to open its panel over the conversation, and press Escape to close it. A line above the prompt counts the questions and tasks waiting on you, and the findings. Install it with the omp steps under Update.

The inbox keeps itself up to date with the newest Sonnet among your omp providers, and falls back to omp's @smol model role. The panel's footer names the model it uses. With no model to use, the panel says "no inbox model" and the inbox stops updating. It was tested on omp 18.12.3.

The agent asks you a direct question when it needs a decision. It used to state what it needed, as in "I need your approval before I run the migration", and the inbox had to guess that you were being asked. When your message answers a question, the agent now also says how it took your answer, as in "I took 'the second one' to mean the in-memory cache".

An answer you give by position is saved as the option you picked. The closed question reads "Which cache should the product API use? → In-memory". Before, it could read "→ The second one".

A question you dismiss in the agent's question dialog stays in the inbox's Needs you list. Before, a dismissed dialog often left nothing behind, most of all when it asked about a finding. In omp, the row shows as soon as you press Escape on the dialog, not after your next message.

Questions stay open when the agent finishes unrelated work. Before, a reply that wrapped up one task sometimes closed a question about something else, because the reply did not mention it.

Similar questions no longer merge or disappear. Two questions the agent asks in one turn, such as "Which license do you prefer?" and "Which Node version do you prefer?", used to merge into one row. A follow-up worded like a question you already answered, such as "Which cache size should the product API use?" after "Which cache should the product API use?", used to be dropped.

A finding that becomes a question says so. A finding is something the agent noticed outside its task, in the Findings tab. When a question replaces one, its closed row reads "Now a question in Needs you". Before, it showed an id such as "asked as i3".

When nothing waits on you, the inbox reads "Nothing needed". The line above the prompt and the empty Needs you tab used to read "Nothing needs you".

Claude desktop app: a selected row stays inside a narrow pane. The reply field's Discard button used to sit past the pane's edge.

Codex: a forked chat gets its parent's inbox. The items appear after your first message in the fork, since Codex tells the inbox nothing when a chat opens.

Codex: a PR you open shows up as new. It shows as a new row in the Inbox tab's PRs tab. When the tab you're on has nothing to show, the Inbox tab switches to PRs, as in Claude Code.

Codex: your own AGENTS.md no longer reaches the model that keeps the inbox up to date. Your instructions to Codex could change how it sorted your inbox. Your Codex sign-in is unchanged. If you keep your Codex sign-in in the keychain instead of auth.json, this fix does not apply yet, and the model still reads your AGENTS.md.

Update

  • Claude Code: run claude plugin marketplace update inbox, then claude plugin update inbox, then /reload-plugins in any session that's already open.
  • Codex: run codex plugin marketplace upgrade, then codex plugin add inbox@inbox. The Codex plugin is now 0.2.10.
  • omp, new install: run omp plugin marketplace add petekp/inbox, then omp plugin install inbox@inbox-omp. It starts in your next omp session.
  • omp, later updates: run omp plugin marketplace update inbox-omp, then omp plugin upgrade inbox@inbox-omp, then restart omp.

Under the hood

  • Claude Code, Codex and omp now share one core. It decides what the update after each reply adds and closes, how a missed reply is caught up, which row counts as new, and how closed rows are labeled. All three give the agent the same record and close tools.
  • Every host reads shell output for local URLs and gh pr create. When the inbox missed a reply, it rereads the whole conversation, and its "may be missing" warning stays until that reread covers the missed reply.
  • Codex's inbox model runs in its own Codex home in the plugin's data folder, which holds only a link to your auth.json. Codex reads AGENTS.md from its home even with --ignore-user-config.
  • A question you answered now stops the agent from asking only that same question again. A question you dismissed still stops reworded versions of it too.
  • The update after each reply no longer closes an item as no longer applying when its reason names nothing that changed, such as "not related to this exchange".
  • A busy turn no longer rewrites the saved session after every tool call.

v0.2.9

Choose a tag to compare

@petekp petekp released this 20 Oct 05:10

Fixes for the band above the prompt, for commands only you can run, and for updates in Codex.

Update

  • Claude Code: run claude plugin marketplace update inbox, then claude plugin update inbox, then /reload-plugins in any session that's already open.
  • Codex: run codex plugin marketplace upgrade, then codex plugin add inbox@inbox. Then quit and reopen the ChatGPT app once. The Codex plugin is now 0.2.9.

What changed

Other mods' notes show in the band above the prompt. Once the inbox had any entry, its line in the band hid what other mods draw there, such as Claude Code's built-in You should know note. Their notes now show under the inbox's line. Thanks to @fahadjibransheikh for the report (#4).

A command only you can run copies instead of going to the agent. When the agent asked you to run a command on your own device, such as a phone plugged into your computer, the task's step often asked the agent to run it. That step now copies the command for you to run.

Updates in Codex keep the Inbox tab working. Codex deletes a plugin's old folder when it installs a new version. From 0.2.9 on, the inbox server loads the new version's files after an update, instead of showing a module error. This update still needs the restart above, because the server running now is the 0.2.8 one.

v0.2.8

Choose a tag to compare

@petekp petekp released this 19 Oct 01:20

Two fixes for the Inbox tab in Codex. Nothing changed in Claude Code.

Update

  • Claude Code: run claude plugin marketplace update inbox, then claude plugin update inbox, then /reload-plugins in any session that's already open.
  • Codex: run codex plugin marketplace upgrade, then codex plugin add inbox@inbox, and start a new chat. The Codex plugin is now 0.2.8.

What changed

The PRs tab notices when gh is gone. If gh is removed while Codex is open, the PRs tab says "The inbox could not find gh, so it cannot read your PRs." at its next refresh. Before, it said "Last refresh failed" until you restarted Codex. If gh moved to another folder, the inbox finds it there.

Long answers fit the tab. A long answer button wraps its label onto more lines, so a narrow tab no longer scrolls sideways.

v0.2.7

Choose a tag to compare

@petekp petekp released this 18 Oct 23:36

The agent now records its own questions and tasks as it asks them, and the inbox keeps what you dismissed out of the way.

Update

  • Claude Code: run claude plugin marketplace update inbox, then claude plugin update inbox, then /reload-plugins in any session that's already open.
  • Codex: run codex plugin marketplace upgrade, then codex plugin add inbox@inbox, and start a new chat. The Codex plugin is now 0.2.7.

What changed

Questions arrive as the agent asks them. The agent records its own questions and tasks with one record tool, with the choices and the one it recommends. They show in Needs you during the turn. The inbox still reads each reply afterward and adds any ask the agent didn't record.

Fewer findings that aren't findings. The agent checks a finding once before recording it. A problem in its own change, a check it can run, progress, and a choice that's yours go in its reply instead.

Dismissed question dialogs stay in Needs you. When you close the agent's question dialog without answering, the question becomes a Needs you row as soon as the turn ends. That's Escape in the terminal and the close button in Codex. Codex's dialogs reach the inbox at all for the first time. In the desktop app, Skip still sends "[No preference]" and adds no row.

Your reply keeps its row. If a row closes while you're typing a reply to it, the row stays where it is, with your words and the reason it closed. Send delivers the words to the agent. Discard folds the row.

Explain on findings. A finding's buttons are now Fix, File issue, Reply, Explain, Discuss, Dismiss. Explain asks the agent why the finding matters and what fixing it involves, without changing anything. Discuss moved to the d key.

A finding and its question stay together. When the agent asks you about a finding, the finding folds into that question. If you dismiss the question or let it lapse, the finding comes back. Fixing the finding closes its question.

What you settled stays settled. The inbox no longer brings back a question you answered or dismissed, or a finding you dismissed, even when the agent asks it again many turns later.

Offers and held steps. "Want me to keep going?" about the task you asked for no longer becomes a question. A step the agent holds until you say so, such as committing or publishing, does.

Forked conversations keep their inbox. A conversation you fork in Claude Code starts with its parent's rows.

The PRs tab says when gh is missing. The terminal and the desktop app now say "The inbox could not find gh, so it cannot read your PRs.", as Codex already did.

No inbox ids in replies. The agent no longer writes ids like i3 or f4 to you. Closing something already closed gets a plain answer instead of an error.

Codex tab. A row shows "Sending…" in its side column, so its title and buttons don't move while a press is out. A row takes its new height at once when its content changes. The plugin keeps the newest 40 session files and deletes older ones.

Known issue

With Claude, a command only you can run, such as a build on your own phone, sometimes gets a step that asks the agent to run it, instead of one that copies it for you.

v0.2.6

Choose a tag to compare

@petekp petekp released this 17 Oct 07:02

Findings get a File issue button, and the inbox now catches the questions the Claude desktop app shows in its next-step box.

Update

  • Claude Code: run claude plugin marketplace update inbox, then claude plugin update inbox, then /reload-plugins in any session that's already open.
  • Codex: run codex plugin marketplace upgrade, then codex plugin add inbox@inbox, and start a new chat. The Codex plugin is now 0.2.6.

What changed

File issue. A finding has a File issue button beside Fix. It asks the agent to file the finding in the issue tracker it has tools for, such as Linear or GitHub. The agent first looks for an issue that already covers it. Once it files or finds one, it closes the finding with the issue's key and gives you the link. If it has no tracker, it says so, and the row reads "Still open".

Questions in the desktop app's next-step box. In the Claude desktop app, the agent can end a turn with a box that asks a question and offers buttons. The inbox now lists that question in Needs you, with the box's buttons as its answers. Before, it missed these questions.

Explain in every app. The terminal and the Codex tab now draw an Explain button beside Reply and Dismiss. Before, Explain had only a key there.

The same PR buttons everywhere. The terminal, the desktop app and the Codex tab show a PR's buttons in the same order. On desktop, the filled button is the PR's main action, not Try again or Open PR.

Longer typed replies in the terminal. With Claude Code 2.1.301 or later, the reply field shows up to three lines. Shift+Enter, or a backslash before Enter, starts a new line.

Clearer requests from the agent. The agent is asked to say how to do what it asks of you: the link, path or command, what to do there, and how the result gets back to it. The inbox's tools no longer answer with item ids, so the agent repeats them to you less.

More reliable saving. Two saves at the same moment no longer lose items. In Codex, the Inbox tab keeps working while it loads a new version.

Organizations that manage Claude Code. The README now says what the inbox can and can't do when an organization manages your Claude Code settings.

v0.2.5

Choose a tag to compare

@petekp petekp released this 15 Oct 15:01

Codex no longer runs the inbox on its own background threads, and the terminal's inline pane holds still.

Update

  • Claude Code: run claude plugin marketplace update inbox, then claude plugin update inbox, then /reload-plugins in any session that's already open.
  • Codex: run codex plugin marketplace upgrade, then codex plugin add inbox@inbox, and start a new chat. The Codex plugin is now 0.2.5.

What changed

Codex skips its background threads. The Codex app runs jobs such as suggesting your next message in short threads of its own. The inbox updated after each one, at about 16k tokens a thread. It now leaves them alone.

An answer no longer flickers "Queued". When you answered an idle agent, the row showed ✓, then "Queued", then ✓ again. A row now reads "Queued" only once its message has waited a second.

Claude Code follows releases. The plugin now has a version, so Claude Code updates it when a release raises the version, not on every change to main.

In the terminal:

  • In an inline pane 80 columns or wider, the tabs sit in a column at the pane's left. Docked and narrower panes keep them in a row.
  • The inline pane keeps one height as you switch tabs.
  • Inline, the key list takes its own lines above the footer, so its first line is no longer cut off.
  • A click on a row's key letter presses the row, and the hover highlight includes the letter.

The demo describes adding a gesture to an app for AR glasses, to match the launch video.

v0.2.4

Choose a tag to compare

@petekp petekp released this 15 Oct 01:38

Claude's new questions open again, and the terminal and Codex looks are steadier.

Update

  • Claude Code: run claude plugin marketplace update inbox, then claude plugin update inbox, then /reload-plugins in any session that's already open.
  • Codex: run codex plugin marketplace upgrade, then codex plugin add inbox@inbox, and start a new chat. The Codex plugin is now 0.2.4.

What changed

New questions open again. In 0.2.3, after you closed the last waiting row, a question in Claude's next reply arrived closed. It now opens.

A subagent's turns no longer count as the session's. Since Claude Code 2.1.299, subagents and teammates start turns of their own. The inbox now ignores them.

In the terminal:

  • The docked pane's tabs take two rows instead of three. The shown tab's name is in the text color.
  • In Terminal.app, the tabs are drawn without half blocks, which left a seam there.
  • The tree hangs from the middle of each section title, and its lines on the open row match the row's shade.
  • An option's key letter stays when its label is too long for the line.
  • The open row keeps its shade after /clear.
  • /inbox demo recording shows the demo without the notices that mark it as a sample, for recording a video.

In Codex:

  • When a row arrives in an empty group, the group's empty line fades out as the row comes in.
  • When a group's last row leaves, the empty line and the Closed fold come in without a jump.
  • Undo no longer jumps before it grows, and it dims while its press is out.

v0.2.3

Choose a tag to compare

@petekp petekp released this 14 Oct 04:13

The inbox now opens the row that needs you next, and keeps it open while you read.

Update

  • Claude Code: run claude plugin marketplace update inbox, then claude plugin update inbox, then /reload-plugins in any session that's already open.
  • Codex: run codex plugin marketplace upgrade, then codex plugin add inbox@inbox, and start a new chat. The Codex plugin is now 0.2.3.

What changed

The next row opens on its own. After a press closes the open row, the next waiting row opens.

The inbox opens where something waits. It opens a tab's first waiting row. When the tab it shows is empty, it opens a tab that has rows.

The row you're reading stays open. When new rows arrive above it, the open row no longer moves to the newest one.

New rows arrive without a bar. The colored bar that marked a new row for 1.5 seconds is gone. It looked like the bar that marks the open row.

In the terminal:

  • The inline pane scrolls the open row to its top, so the row's keys fit.
  • After the window changes size, the pane scrolls back to the open row.
  • /inbox opens at once during a turn, instead of after Claude's reply.

Docs. The README covers the terminal, the Claude desktop app and Codex. /inbox demo shows sample work on a store's checkout page.

v0.2.2

Choose a tag to compare

@petekp petekp released this 13 Oct 15:44

Codex's hook dialog now says what each inbox hook does.

Update

  • Codex: run codex plugin marketplace upgrade, then codex plugin add inbox@inbox, and start a new chat. The Codex plugin is now 0.2.2.
  • Claude Code: nothing changed. claude plugin update inbox picks up this release's commit, with no change to the mod.

What changed

Named hooks. Codex's "Review hooks" dialog listed the inbox's hooks as Hook 1 to Hook 4. It now names each one:

  • Inbox: loading this chat's inbox
  • Inbox: giving Codex the inbox
  • Inbox: noting what Codex runs
  • Inbox: starting the inbox update

Codex asks you to trust the hooks again after this update, since their definitions changed.

v0.2.1

Choose a tag to compare

@petekp petekp released this 13 Oct 07:09

A fix for short terminal panes, and corrected install steps for Codex.

Update

  • Claude Code: run claude plugin update inbox, then /reload-plugins in any open session.
  • Codex: run codex plugin marketplace upgrade, then codex plugin add inbox@inbox, and start a new chat. The Codex plugin is now 0.2.1.

What changed

An open finding fits a short inline pane. In a short terminal, a finding's detail could push its action keys below the pane. The detail now gives up lines until the keys show.

The Codex README covers setup. It says where to trust the hooks, how to open the Inbox tab, and how to update.

Docs match the code. The READMEs, glossary and plans were checked against the code and a fresh install. Finished plans were deleted.

Dead code removed. Unused fields, styles and imports are gone.