Skip to content

Git and worktrees

Each chat row shows:

  • The branch, worktree or detached name. Names over 22 characters are shortened in the middle; hover for the full name.
  • How many files changed.
  • Ahead and behind counts.
  • A dimmed “removed” note if its worktree no longer exists.

Click a row’s Git status to select that chat and open its Changes panel.

A worktree is a nested group under its project. It holds every chat whose folder is inside it. Chats in the main checkout stay at the project’s top level. Empty worktrees are hidden.

Arm New worktree in the composer before you send. On the first send Aether:

  1. Creates a branch named aether/<slug>, with the slug taken from your prompt (up to 48 characters).
  2. Creates the worktree folder from the base you picked.
  3. Starts the chat’s CLI there.

It never reuses an existing branch or folder. If creation fails, the error stays above the composer until you dismiss it, and cancelling leaves no stray branch behind.

The same toggle lists existing worktrees. Pick one to run a second chat in it. Agents and worktrees are not forced one to one.

Removing a worktree offers to delete its folder and, optionally, its branch. Aether refuses if the worktree has uncommitted changes, unmerged work or a lock, and says when a forced removal is needed. It never prunes other worktrees. Worktrees are never deleted automatically.

⌘⇧G on macOS, CtrlShiftG on Linux.

  • Stage and unstage files.
  • Read the diff.
  • Write a commit message (each folder keeps its own draft) and commit with ⌘Enter.
  • Push.

The branch and worktree selector switches a chat’s branch or worktree with the keyboard: arrows to move, Enter to pick, Esc to close.