Skip to main content

Command

Enum Command 

Source
pub enum Command {
Show 15 variants Start { cli: Option<String>, branches: Option<Vec<String>>, from_all_specs: bool, specs: Option<Vec<String>>, specs_format: Option<SpecsFormat>, dry_run: bool, preset: Option<String>, supervisor: bool, no_supervisor: bool, force: bool, no_rebase: bool, }, Add { branch: Option<String>, cli: Option<String>, from_spec: Option<String>, }, Remove { branch: String, keep_worktree: bool, force: bool, }, Pause, Stop { force: bool, }, Purge { force: bool, stale: bool, }, Status { json: bool, }, ListClis, AddCli { name: String, command: String, display_name: Option<String>, }, RemoveCli { name: String, }, Init, Dashboard, Replay { branch: Option<String>, list: bool, color: bool, session: Option<String>, }, Approvals { session: Option<String>, limit: Option<usize>, json: bool, }, Mcp { repo: Option<PathBuf>, log_file: Option<PathBuf>, },
}
Expand description

Available subcommands.

Variants§

§

Start

Launch a new session or reattach to an existing one

Fields

§cli: Option<String>

AI CLI to use (e.g., claude, codex, gemini). Skips CLI picker if provided.

§branches: Option<Vec<String>>

Comma-separated branch names. Skips branch picker if provided.

§from_all_specs: bool

Launch worktrees for every discovered spec across all configured formats.

§specs: Option<Vec<String>>

Narrow the session to named specs, or open the multi-select picker when given without values.

--specs add-auth,fix-session runs only those specs. Bare --specs opens a multi-select picker; an interactive terminal is required (otherwise the command exits with an actionable error pointing at --specs NAME[,NAME...] and --from-all-specs).

Mutually exclusive with --from-all-specs.

§specs_format: Option<SpecsFormat>

Override the spec format used for --from-all-specs / --specs scanning.

Accepted values: openspec, markdown, speckit. Overrides both the [specs] type setting in .git-paw/config.toml and the auto-detection of .specify/ at the repo root.

§dry_run: bool

Preview the session plan without executing.

§preset: Option<String>

Use a named preset from config.

§supervisor: bool

Enable supervisor mode for this session.

§no_supervisor: bool

Disable supervisor mode for this session, overriding any config setting.

§force: bool

Bypass uncommitted-spec validation warning.

§no_rebase: bool

Skip rebasing existing agent branches onto the default branch before opening their worktrees.

By default, git paw start rebases every existing agent branch onto the repository’s default branch (whatever origin/HEAD tracks, typically main) before opening or reopening its worktree, so agents always start from current main. Pass --no-rebase to skip the rebase step entirely and reproduce the pre-v0.6 behaviour. Newly created branches (no prior commits) are not rebased regardless of this flag.

§

Add

Attach a new worktree + agent pane to a running session

Fields

§branch: Option<String>

Branch to attach. Omit when using –from-spec (the branch is derived from the spec).

§cli: Option<String>

AI CLI to launch in the new pane (defaults to the session’s CLI).

§from_spec: Option<String>

Resolve the branch name and CLI from a discovered spec instead of a positional branch argument.

§

Remove

Detach a single agent from a running session

Fields

§branch: String

Branch of the agent to remove.

§keep_worktree: bool

Detach the pane + session entry but leave the worktree and branch on disk (skips the uncommitted-work safety check).

§force: bool

Remove the worktree even when it has uncommitted changes.

§

Pause

Pause the session (detaches client, stops broker, leaves CLIs running)

§

Stop

Stop the session (kills tmux, keeps worktrees and state)

Fields

§force: bool

Skip confirmation prompt.

§

Purge

Remove everything (tmux session, worktrees, and state)

Fields

§force: bool

Skip confirmation prompt.

§stale: bool

Purge only stale sessions (receipt claims active but tmux is gone).

§

Status

Show session state for the current repo

Fields

§json: bool

Emit machine-readable JSON instead of the human-readable display.

§

ListClis

List detected and custom AI CLIs

§

AddCli

Register a custom AI CLI

Fields

§name: String

Name to register the CLI as.

§command: String

Command or path to the CLI binary.

§display_name: Option<String>

Optional display name for the CLI.

§

RemoveCli

Unregister a custom AI CLI

Fields

§name: String

Name of the custom CLI to remove.

§

Init

Initialize .git-paw/ directory and configuration

§

Dashboard

Internal: run the broker and dashboard in pane 0

§

Replay

View captured session logs

Fields

§branch: Option<String>

Branch name to replay (fuzzy-matched against log filenames).

§list: bool

List available log sessions and branches.

§color: bool

Display with ANSI colors via less -R.

§session: Option<String>

Session name to replay from (defaults to most recent).

§

Approvals

Report manually-approved command patterns for a session

Fields

§session: Option<String>

Session to read approvals from (defaults to the active session).

§limit: Option<usize>

Cap the output to the top N patterns by count.

§json: bool

Emit machine-readable JSON instead of the text table.

§

Mcp

Run a read-only Model Context Protocol (MCP) server over stdio

Fields

§repo: Option<PathBuf>

Repository to operate against, overriding current-directory discovery. Required for clients that spawn from a fixed directory (notably Claude Desktop).

§log_file: Option<PathBuf>

Write tracing output to this file in addition to stderr (off by default). Stdout always stays reserved for the JSON-RPC stream.

Trait Implementations§

Source§

impl Debug for Command

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl FromArgMatches for Command

Source§

fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

Instantiate Self from ArgMatches, parsing the arguments as needed. Read more
Source§

fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>

Instantiate Self from ArgMatches, parsing the arguments as needed. Read more
Source§

fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>

Assign values from ArgMatches to self.
Source§

fn update_from_arg_matches_mut<'b>( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>

Assign values from ArgMatches to self.
Source§

impl Subcommand for Command

Source§

fn augment_subcommands<'b>(__clap_app: Command) -> Command

Append to Command so it can instantiate Self via FromArgMatches::from_arg_matches_mut Read more
Source§

fn augment_subcommands_for_update<'b>(__clap_app: Command) -> Command

Append to Command so it can instantiate self via FromArgMatches::update_from_arg_matches_mut Read more
Source§

fn has_subcommand(__clap_name: &str) -> bool

Test whether Self can parse a specific subcommand

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more