Skip to content

CLI Commands

Complete reference for every ws command.

ws init

Initialize workstreams in the current git repository.

bash
ws init [options]
OptionDescription
-f, --forceReinitialize even if already set up

Creates .workstreams/ directory structure, workstream.yaml template, and updates .gitignore.


ws create <name>

Add a new workstream entry to workstream.yaml.

bash
ws create <name> [options]
ArgumentDescription
nameWorkstream name (becomes branch ws/<name>)
OptionDescription
-p, --prompt <text>Prompt for the agent

Creates the config entry only — does not run the agent or create a worktree. Omit -p to create a prompt-less workspace.


ws run [name]

Run workstreams.

bash
ws run [name] [options]
ArgumentDescription
nameRun only this workstream (omit to run all)
OptionDescription
-c, --config <path>Config file path (default: workstream.yaml)
-d, --dry-runShow what would run without executing
-p, --prompt <text>New instructions (auto-resumes if session exists)

Skips workstreams that have no prompt, are already running, or already have a session (unless -p is provided for resume).


ws list

Show status of all workstreams.

bash
ws list [options]
OptionDescription
-c, --config <path>Config file path (default: workstream.yaml)

Displays: status icon, name, sync status (ahead/behind), diff stats, duration, comment count, last commit, and prompt.


ws switch [name]

Open interactive dashboard or jump to a workstream in your editor.

bash
ws switch [name] [options]
ArgumentDescription
nameOpen this workstream directly (skip dashboard)
OptionDescription
-e, --editor <editor>Editor to use (code, cursor, zed, windsurf, webstorm)
--no-editorPrint worktree path instead of opening editor

Without a name, opens the interactive dashboard. See Dashboard for keyboard shortcuts.


ws diff [name]

View changes made by a workstream.

bash
ws diff [name] [options]
ArgumentDescription
nameShow diff for this workstream (omit for all)
OptionDescription
--rawPrint raw diff output instead of interactive viewer

Opens the interactive diff viewer for a single workstream. Shows raw diffs for multiple workstreams or when piped. See Reviewing Changes for viewer shortcuts.


ws merge [name]

Merge workstream changes into the current branch.

bash
ws merge [name] [into] [options]
ArgumentDescription
nameWorkstream to merge
intoTarget branch (default: current branch)
OptionDescription
--allMerge all successful workstreams
--no-cleanupKeep worktree and branch after merge

Performs squash merge. Single workstream: stages only. Batch (--all): auto-commits each.


ws resume <name>

Resume a workstream with new instructions.

bash
ws resume <name> [options]
ArgumentDescription
nameWorkstream to resume
OptionDescription
-p, --prompt <text>New instructions for the agent
--commentsInclude stored review comments

Combines comments + pending prompt + -p text. Clears comments and pending prompts on success.


ws destroy [name]

Remove a workstream completely.

bash
ws destroy [name] [options]
ArgumentDescription
nameWorkstream to destroy
OptionDescription
--allDestroy everything (all worktrees, config, state)
-y, --yesSkip confirmation prompt

Removes: worktree, branch, config entry, state, logs, and comments.


ws logs [name]

View agent logs for a workstream.

bash
ws logs [name] [options]
ArgumentDescription
nameWorkstream to view logs for (omit for interactive picker)
OptionDescription
--rawPrint raw log output

Opens an interactive log viewer with live tailing for running workstreams. Press f to toggle follow mode.


ws prompt <name>

Set or update the prompt for a workstream.

bash
ws prompt <name> [options]
ArgumentDescription
nameWorkstream to update
OptionDescription
-p, --prompt <text>Prompt text (omit for interactive input)

Updates the prompt in workstream.yaml.

Built with VitePress