---
title: vcs
description: Inspect and act on a git or jj working tree.
---

`vcs` is a small dispatcher workflow over a git or jj working tree. Status and log
are deterministic (no agent); commit messages and rebase plans are written by an
agent from the real diff and history. The Smithers UI launches it with an `action`,
but it runs from the CLI too.

```bash
bunx smithers-orchestrator workflow run vcs --input '{"action":"status","vcs":"jj"}'
```

<Frame caption="The vcs UI shows the working tree for the run and dispatches git or jj actions like status, log, commit, and rebase.">
  <img src="/images/workflow-ui/vcs.png" alt="vcs workflow UI showing a git working tree and action controls" />
</Frame>

## Actions

- **status** (default): deterministic working-tree summary, including tool, branch, head, clean flag, and the list of changes.
- **log**: deterministic recent-history summary (commit ids + subjects).
- **commit**: read the diff, then an agent writes a commit message plus the command to apply it.
- **rebase-plan**: read status and log, then an agent proposes an ordered rebase plan.

## Inputs

| Input | Type | Default |
| --- | --- | --- |
| `action` | `status` \| `log` \| `commit` \| `rebase-plan` | `status` |
| `vcs` | `git` \| `jj` | `git` |

Smithers prefers `.jj` over `.git` in colocated repos; pure Git repos work without
JJ installed. See [Recipes](/recipes#vcs-revert--per-attempt-snapshots) for how
`vcs` relates to per-attempt snapshots and `revert`.
