CLI reference

One command for agents
to start and talk to agents

overvibe talks to the running app on 127.0.0.1 with your token, so any shell on your Mac can use it, and so can every agent running in an Overvibe session. ov is the short form, and the old name deck still works.

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

CommandWhat it does
overvibe newStart a session. --cwd is required.
overvibe sendType a message into a session's prompt: Claude, Codex or agy.
overvibe lsList running sessions with status, tool and folder. --json for the full records.
overvibe resumeContinue a stopped or past session on the same conversation. overvibe ls --past lists them.
overvibe attachOpen a running session in the terminal you are in (tmux attach). Ctrl-b d leaves it running.
overvibe openBring a session up on your screen in Overvibe.
overvibe stopStop a session. The conversation is kept.
overvibe moveMove 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>"
  • --tool defaults to claude.
  • --name is what the sidebar shows and what overvibe send matches on. Keep it short, project and role: "shop: codex review".
  • --prompt is the first message. For agy it is typed in once agy's input box is up.
  • --mkdir creates a missing folder first (only under your home folder). Without it, a missing folder is refused.
  • --attach makes 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                         ~/notes

Columns: 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

Hand off your next task

Free and open source. Claude Code, Codex and Gemini on your Mac, working on the same job.