How a child knows who to report to. Every session Overvibe starts gets $OVERVIBE_SESSION in its environment, its tmux id. A parent puts it in the child's brief as the reply address, and overvibe stop uses it to decide what you may close.
01Commands
| Command | What it does |
|---|---|
overvibe new | Start a session. --cwd is required. |
overvibe send | Type a message into a session's prompt: Claude, Codex or agy. |
overvibe ls | List running sessions with status, tool and folder. --json for the full records. |
overvibe resume | Continue a stopped or past session on the same conversation. overvibe ls --past lists them. |
overvibe attach | Open a running session in the terminal you are in (tmux attach). Ctrl-b d leaves it running. |
overvibe open | Bring a session up on your screen in Overvibe. |
overvibe stop | Stop a session. The conversation is kept. |
overvibe move | Move a Claude session to another folder after its turn ends. |
02overvibe new
overvibe new --cwd <folder> [--mkdir] [--tool claude|codex|agy] [--name "<name>"] [--prompt "<first message>"] [--attach] $ overvibe new --tool codex --cwd ~/code/shop --name "shop: codex copy" \ --prompt "Rewrite the hero copy in landing.md. When done, run: overvibe send \"shop: lead\" \"<summary>\"" started "shop: codex copy" in ~/code/shop (session pending, tmux d3f9a1c2) message it: overvibe send "shop: codex copy" "<message>"
--tooldefaults to claude.--nameis what the sidebar shows and whatovervibe sendmatches on. Keep it short, project and role: "shop: codex review".--promptis the first message. For agy it is typed in once agy's input box is up.--mkdircreates a missing folder first (only under your home folder). Without it, a missing folder is refused.--attachmakes it a child of the session running the command, nested under it in the sidebar. Only works from inside an Overvibe session.
Unknown flags are rejected, so a typo never starts a session.
03overvibe send
The target can be a tmux id, a session id, an exact name or part of one (the most recently active match wins). The message arrives with a header naming the sender and the exact reply command, newlines collapsed to spaces:
$ overvibe send "shop: codex copy" "Also shorten the CTA." # typed into the prompt of "shop: codex copy" [overvibe message from "shop: lead" (claude); reply with: overvibe send "shop: lead" "<reply>"] Also shorten the CTA.
Only Overvibe sessions can receive it. A session in a plain Terminal tab has no pane to type into, so move it in first.
04overvibe ls
$ overvibe ls
busy codex overvibe ↳ shop: codex review ~/code/shop
waiting claude overvibe shop: lead ~/code/shop
idle claude outside notes ~/notesColumns: status (busy, idle, waiting, blocked, ended), tool, whether it runs in Overvibe or outside it, name (↳ marks an attached child) and folder.
05overvibe resume
$ overvibe ls --past $ overvibe resume "api: codex tests" --prompt "One more: also run the lint. Report back the same way."
Brings back a stopped session in its folder with its name and its sidebar row; a stopped helper comes back under its parent. --prompt is typed once it is up, --attach makes it a child of the calling session, and --fork starts a copy instead (Claude only).
06overvibe attach
Opens a running session in your current terminal through tmux. --print shows the tmux command instead of running it.
07overvibe open, overvibe stop, overvibe move
overvibe open ["<session name>"] overvibe stop "<session name>" overvibe stop --children overvibe move --to <folder> [--session "<name>"]
overvibe open
Opens that session on your screen; with no name, the calling session. An agent uses it when you have to answer something over there.
overvibe stop
Stops the session and keeps its conversation for later. An attached child is also hidden from the list, and --children closes every child of the calling session. From inside a session it reaches only that session and the ones it started. From a plain shell you can stop any.
overvibe move
Claude sessions only. The move waits for the current turn to end, then resumes the session in the new folder with a note saying where it is now.
08The one-shot attach pattern
For a test run, a lookup in another repo or a second opinion: attach the helper, tell it how to report, end the turn, and close it when the answer is in.
$ overvibe new --attach --tool codex --cwd ~/code/api --name "api: check tests" \ --prompt "Run the test suite and summarize failures. When done, run: overvibe send \"$OVERVIBE_SESSION\" \"<result>\"" # end the turn; the result arrives as a new message $ overvibe stop "api: check tests"
End the turn after you hand off
A reply is typed into the waiting session's prompt and read once that session's turn is over. An agent that sleeps or polls for the answer blocks the very message it is waiting for.
Tell your agents it exists
overvibe --help prints the full usage with examples, so one line in your CLAUDE.md or AGENTS.md pointing at it is enough. Claude sessions can also message each other with Claude Code's own SendMessage; overvibe send is how you reach Codex and agy.
A full example, step by step
Claude asks Codex to review a migration, gets the findings and closes the helper. Read the walkthrough