Need to ask something unrelated mid-task, like looking up an API limit, debugging a side error, or exploring an alternative, without polluting your main thread? /tangent lets you branch into a side-conversation that inherits everything discussed so far, explore freely, then jump back to exactly where you left off.
| Command | What it does |
|---|---|
/tangent | At the root, branches into a side-conversation (auto-named tangent-N) that inherits your conversation so far. Inside a tangent, goes back one level toward the parent. |
/tangent <name> | Branches into a named side-conversation (e.g. /tangent ddb). Creates it if new, switches to it if it already exists. |
/tangent ls | Opens a visual picker showing your whole conversation tree. Select any session to switch to it. |
/tangent root | Jumps straight back to the main conversation from any depth. |
While in a tangent, a ↯ name chip in the footer shows where you are.
Each tangent is a full session: it starts with your conversation's history up to the branch point, but everything after stays isolated. Nothing you do inside a tangent touches the parent conversation's context. Because a tangent branches from your conversation's history, you can't branch an empty chat — send a message first.
Tangents can also have tangents. Nest as deep as you need — /tangent ls shows the whole tree, and /tangent root gets you home from anywhere.
/tangent, ask, get the answer, /tangent back. Your main thread never sees the detour./tangent approach-a and /tangent approach-b off the same design discussion, explore each with full shared context, then return to the root and commit to the winner.Exploring in a tangent and want its findings folded into another session, without dragging in the whole side-conversation? /tangent merge [dest] sends a short summary of the tangent to a destination session instead.
# Merge into the parent session (default) > /tangent merge # Merge findings into the conversation root > /tangent merge root # Merge into a specific named session > /tangent merge ddb
| Destination | Behavior |
|---|---|
| (none) | Merges into the parent of the current tangent. |
root | Merges into the main conversation, regardless of nesting depth. |
<name> | Merges into that named session, if it exists. |
Merge never creates a session. An unresolvable named destination is an error.
| Message | Cause |
|---|---|
Already on the root session — nothing to merge into | You ran bare /tangent merge at the root, with no destination to merge into. |
No session named "<name>" to merge into | The named destination doesn't exist. Merge never creates one. |
Cannot merge a session into itself | The resolved destination is the current session. |
Nothing to merge yet — this conversation has no findings of its own | The tangent has no prompts of its own to summarize. |
Merge cancelled — ... | The summarization turn was cancelled or failed to send. |
Tangent