Skip to content

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.

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.

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.

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.

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 HEAD to 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.