The Git card
An agent that works unattended produces a diff you did not write. Reviewing that diff is the job, and it is the job you most want to do from the couch.
The Git card shows the workspace’s repository: changed files, the diff for the selected file, history and branches.
What you can do
Section titled “What you can do”| Review | per-file diff with additions and deletions highlighted |
| Stage / unstage | per file |
| Commit | with a message you type in the card |
| Push / pull | push to the tracked remote, pull fast-forward only |
| Undo last commit | soft reset, changes stay in your tree |
| Discard changes | restore a tracked file, or delete an untracked one |
| Branches | list and switch, including tracking a remote branch |
| History | recent commits |
Everything runs git on the host, in the repository, as you. There is no
Offsite-specific git state and nothing to clean up if you stop using the card.
Reading a diff on a phone
Section titled “Reading a diff on a phone”The card is built to be readable at phone width: file list first, then the diff for the file you pick, with line numbers and hunk headers in the muted colour and additions and deletions in their own palette.
If the workspace is not a repository
Section titled “If the workspace is not a repository”The card offers to run git init. A workspace does not
have to be a repository — if it is not, the card has nothing to show
until you initialise one.
Details
Section titled “Details”Actions map to exactly these commands, run in the repository root:
| Action | Command |
|---|---|
| stage | git add -- <paths> |
| unstage | git restore --staged -- <paths> |
| discard tracked | git restore --worktree -- <paths> |
| delete untracked | git clean -f -d -- <paths> |
| commit | git commit -m <message> |
| undo last commit | git reset --soft HEAD~1 |
| switch branch | git switch <branch>, or git switch --track origin/<branch> when only a remote exists |
| pull | git pull --ff-only |
| push | git push |
- Pull is fast-forward only: a merge that needs a decision should not happen behind a tap on a phone.
- Undo requires
HEADto have a parent; on a repository with a single commit it refuses rather than doing something surprising. - Branch names starting with
-are rejected, and every path is passed after--, so a filename can never be read as a flag. - The workspace root is resolved to the repository root, so a workspace pointing at a subfolder still shows the whole repository.
- Anything beyond review, stage, commit, push and switching branches is a sentence to the agent in the next card — it has the repository open anyway.