# But

Use only in the Anarlog repository when the active checkout branch is exactly...

- Repository: https://github.com/fastrepl/anarlog (9738 stars)
- Category: Git and review
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add fastrepl/anarlog --skill but -g -a claude-code -y`
Codex: `npx skills add fastrepl/anarlog --skill but -g -a codex -y`
Cursor: `npx skills add fastrepl/anarlog --skill but -g -a cursor -y`
Gemini CLI: `npx skills add fastrepl/anarlog --skill but -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add fastrepl/anarlog`

## Description

Use only in the Anarlog repository when the active checkout branch is exactly gitbutler/workspace. Commit, push, branch, and manage version control with GitButler. Use for commits, selective dirty-file or hunk commits, branches, diffs, PRs, history edits, squashes, amends, undo, merge, apply, and unapply. For selected dirty files or hunks, inspect with `but diff`; use compact `but status` for commit order, branch/stack placement, or conflict overview; use `but status -fv` when file/hunk IDs or per-commit file details matter. Replaces git write commands.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# GitButler CLI Skill

## Applicability

Use only in the Anarlog repository or its checkouts/worktrees when the active
checkout branch is exactly `gitbutler/workspace`. Before running this workflow,
check with `git symbolic-ref --quiet --short HEAD` (a read-only branch check).
On any other branch or detached HEAD, skip this skill and use the normal Git
workflow. Do not initialize GitButler or switch branches to activate the skill.
Use this checkout's skills, not a global copy or another checkout's skills.

Use GitButler CLI (`but`) as the default version-control interface.

## External waits

When version-control work reaches a wait for CI, review, an asynchronous merge,
or another external process, finish independent actionable work, schedule a
Codex follow-up, and end the turn. Do not sleep, run watch commands, or repeatedly
poll. Use a thread heartbeat for the current task (10-minute default), reusing
its matching automation; use standalone cron only for explicitly separate runs.
Carry pending operations and blockers into the prompt, recheck live state on
resumption, stay quiet when unchanged, and pause when complete or waiting only
on user input. A scheduled run never substitutes for a missing user decision.
See the sweep-workspace skill for the full continuation procedure.

## Start Here

Choose the narrowest first command by task; avoid ritual status checks:

```bash
# Selected dirty files/hunks:
but diff

# Commit order, branch/stack placement, conflict overview:
but status

# File/hunk IDs, per-commit files, amend/split details:
but status -fv

# Details for one known branch or commit:
but show <id>
```

Do not run plain `but status` and then `but status -fv` unless the compact output lacks file/hunk details needed for the task.

For "commit just/only/specific changes on a new branch", use the fast path:

```bash
but diff
but commit -b <branch> -m "<msg>" <id> <id>
```

The rest: https://github.com/fastrepl/anarlog/blob/HEAD/.agents/skills/gitbutler/SKILL.md
