Skip to content

Course · Codex · Sessions & context

Take a quick tangent with /side

You are mid-task in Codex when a small question jumps the queue: which merchants would still land uncategorised if you ran the categorizer over a month of imports? You want the answer without abandoning the main line of work and without permanently enlarging that thread.

A session is the saved conversation Codex can restore with codex resume. /side starts a side conversation in an ephemeral fork: it can see what the main thread was discussing, runs separately, and does not switch you away from the parent.

The docs describe /side as starting a side conversation in an ephemeral fork of the current chat. While side mode is active, the TUI shows a context label (shape in source: Side from main thread · Ctrl+C to return), and the parent chat’s status stays visible:

> /side run the categorizer over a month of imported descriptions and
list every one that lands uncategorised
[illustrative reconstruction, not a captured run - your data supplies the rows]
6 of 214 landed uncategorised: 3 are a new merchant (BLINKIT), 2 are
ATM withdrawals, 1 is a refund. The table has no keyword for any of them.

The month of rows is a constructed teaching scenario; the sample CSV in budgetcli (the course’s running example, a small self-hosted personal-finance API in Python and FastAPI) is smaller. Return with Ctrl+C, or Ctrl+D from an empty composer. The main thread is as you left it: the side chat’s transcript does not rejoin the parent, not even as a summary.

Anything from the side chat you need later (a merchant name, a gap in the table) you copy out by hand into a note, commit, or file before you leave side mode.

When it’s a tangent, and when it isn’t

Section titled “When it’s a tangent, and when it isn’t”

Use /side when the detour is disposable: an answer you want without keeping the exploration trail in the main window.

When the tangent becomes real work (adding BLINKIT to the table and its tests, not just noting the gap), give it a proper session or branch instead.

Sort by weight:

  • /side - disposable detour; main transcript unchanged.
  • /fork - two parallel lines you will develop and compare; shared history paid twice on purpose. See fork.
  • Fresh session or /new - unrelated work from a clean window. See reset.

Side chats do not shrink a crowded main window. If the agent re-reads files and loses thread on a long task, the fix is /compact or, after reading /status, a deliberate reset - not another side trip.