Skip to content

v0.1.4

Choose a tag to compare

@joeinnes joeinnes released this 03 Mar 23:47
38c06b4

Scoped workspace names and better automation.

Workspace names are now scoped by source repository — feature-x becomes brightblur/feature-x automatically. cow list drops the SOURCE column (it's encoded in the name) and gets a cleaner layout. Adds flags for scripting and non-TTY use: --print-path on create, -y/--yes on remove, and -m/--message for jj.

Workspace naming

  • new Names are automatically scoped by source repository basename: cow create feature-x --source ~/repos/brightblur stores the workspace as brightblur/feature-x. Supply an explicit scope/name to override.
  • new Auto-generated names follow the same pattern: brightblur/agent-1, brightblur/agent-2, etc.
  • feat cow list redesigned — SOURCE column removed (source is now encoded in the scoped name). Branch column only appears when the branch differs from the workspace name suffix.

New flags

  • new cow create --print-path — suppress all output except the final workspace path, making it easy to capture in scripts: WS=$(cow create my-feature --print-path).
  • new cow create -m/--message <MSG> — set the initial jj change description immediately after workspace creation. Removes the separate jj describe step (jj repos only).
  • new cow remove -y/--yes — skip confirmation prompts without implying a safety override. Unlike --force (which bypasses dirty checks), --yes still shows dirty warnings — it just doesn't wait for input. Idiomatic for scripts and non-TTY contexts.

Improvements

  • feat cow list now shows a file count next to dirty workspaces (e.g. dirty (3)), giving a quick sense of change scope without running cow status.