conversation
Conversation commands operate a persistent dialogue between you and one agent on the Host. A turn is one cycle of “you send a message → the agent finishes answering”. At most one turn is in flight per conversation. The agent and workspace must already exist, and the agent must be enabled and authenticated. Start with npx vibex agent list and npx vibex workspace list to obtain IDs.
A running Host and VIBEX_TOKEN are required. See Connect to a Host.
npx vibex conversation create
Create a conversation and optionally send the first message immediately.
npx vibex conversation create \
--workspace WORKSPACE_ID \
--agent AGENT_ID \
[--title TITLE] \
[--prompt TEXT]--workspace is the workspace ID (project root or a Git worktree), required. --agent is the agent’s stable kind, for example claude_code or codex, required. --title is the display name; omit it and the Host may name the conversation from the first message. --prompt is submitted as the first user message and starts the first turn.
The response is the new conversation JSON, including id. Later npx vibex conversation send, npx vibex conversation wait, and npx vibex conversation show take that ID as --conversation.
If the agent is disabled or unauthenticated, the Host rejects create. Enable and sign in under desktop Settings → Agents, then confirm with npx vibex agent list.
npx vibex conversation send
Send text to an existing conversation. An idle conversation starts a new turn. If a turn is already running, the text enters the input queue and runs in order after the current turn ends.
npx vibex conversation send \
--conversation CONV_ID \
--workspace WORKSPACE_ID \
--agent AGENT_ID \
--text TEXTAll four flags are required. --text is plain text. This command sends text only: no images, attachments, or plugin actions. --workspace and --agent must match the conversation’s original binding.
The response is the submit JSON. Read turn status afterward with npx vibex conversation show or npx vibex conversation wait.
npx vibex conversation steer
Append guidance to the in-flight turn. It belongs to that turn; no new turn is created.
npx vibex conversation steer \
--conversation CONV_ID \
--turn TURN_ID \
--text TEXT--turn must be the in-flight turn ID, from the turn field of npx vibex conversation show. All three flags are required. If the agent has no steering capability, the Host returns an error; the text stays a steering request and queued input is unchanged.
With no in-flight turn, the Host returns an error. To add work to an idle conversation, use npx vibex conversation send.
npx vibex conversation child / npx vibex conversation fork
Create a child conversation of an existing one, usually for delegation: the parent agent hands part of the work to another agent. npx vibex conversation fork matches npx vibex conversation child.
npx vibex conversation child \
--parent CONV_ID \
--agent AGENT_ID \
[--title TITLE] \
[--prompt TEXT] \
[--hidden]--parent is the parent conversation ID. --agent is the agent for the child. --title and --prompt match npx vibex conversation create. --hidden marks the child invisible (visible=false). Enable Multi-agent collaboration under Settings → Plugins first; otherwise delegation is unavailable.
The response is the child conversation JSON. List relations later with npx vibex conversation relations --conversation CONV_ID.
npx vibex conversation show / npx vibex conversation output
Read the current output projection, including recent messages and turn.status. npx vibex conversation output matches npx vibex conversation show.
npx vibex conversation show --conversation CONV_ID
npx vibex conversation show --conversation CONV_ID --json--conversation is required. --json prints one line so scripts can read turn.status. Terminal statuses are completed, failed, cancelled, and interrupted.
npx vibex conversation relations
List parent-child relations (delegated children). Use the child IDs with npx vibex conversation show or npx vibex conversation cancel.
npx vibex conversation relations --conversation CONV_ID--conversation is required. With no children the response is an empty list.
npx vibex conversation wait
Poll the same read as npx vibex conversation show about once a second until turn.status is completed, failed, cancelled, or interrupted.
npx vibex conversation wait --conversation CONV_ID [--timeout 600]--conversation is required. --timeout is seconds, default 600. Timeout raises Timed out after Ns. The turn may still be running; inspect with npx vibex conversation show, or raise the timeout and wait again.
npx vibex conversation cancel
Cancel the in-flight turn. Timeline content and files already written stay.
npx vibex conversation cancel --conversation CONV_ID [--reason TEXT]--conversation is required. --reason is optional and stored as the cancel reason. To revert files, use Undo on that turn in the desktop session. With no in-flight turn, the Host returns an error.
Example sequence
export VIBEX_TOKEN='…'
export VIBEX_URL=http://127.0.0.1:17891
npx vibex conversation create \
--workspace "$WS" \
--agent claude_code \
--prompt "List the top-level directory" \
--json
# read id from the output into CONV_ID
npx vibex conversation wait --conversation "$CONV_ID"
npx vibex conversation show --conversation "$CONV_ID"
