Skip to content

v0.1.5

Choose a tag to compare

@joeinnes joeinnes released this 05 Mar 00:00
27f3137

Isolated run environment, worktree mode, and smarter dep dirs.

Five new commands, per-package dependency symlinks, git linked worktree support, and full MCP coverage for agent-driven workflows.

New commands

  • new cow run <name> <cmd> — runs a command inside a pasture's working directory. Auto-detects the package manager from lockfiles and injects shims so install subcommands write to the pasture-local node_modules rather than the shared source. Sets COW_PASTURE, COW_SOURCE, and COW_PASTURE_PATH env vars for the subprocess.
  • new cow materialise <name> — replaces symlinked dependency directories in a pasture with real APFS clonefiles, making the pasture fully independent of the source.
  • new cow fetch-from <from> — fetches all refs from another pasture into this one, enabling cross-pasture rebase without touching any remote.
  • new cow recreate <name> — removes a pasture and re-creates it from the same source, optionally on a different branch.
  • new cow install — sets up the cowcd shell function and tab completion in ~/.zshrc (zsh) or ~/.bashrc (bash) automatically. Idempotent.

cow create

  • new --worktree flag — creates a git linked worktree instead of an APFS clone. All worktree pastures share the same .git/objects/ pack store, so cross-pasture rebase works without any remote dance.
  • improved Dependency directories (node_modules, vendor, .venv, Pods, etc.) are now handled with per-package symlinks: each top-level entry is symlinked individually so existing packages are instantly available and new installs write locally to the pasture.
  • new --no-symlink flag — skips large-directory detection and always performs a full clone.

jj

  • improved cow status and cow list now show changed instead of dirty for jj pastures, reflecting jj semantics where the working copy is always materialised as a commit.

MCP

  • new cow_migrate, cow_materialise, cow_fetch_from, and cow_run tools added to the MCP server, completing full command coverage for agent-driven workflows.