
But
Teach your coding agent to drive the GitButler CLI (`but`) in workspace mode for branch stacks, installs, and repo-local skill deployment.
Overview
But is an agent skill most often used in Build (also Ship review prep) that instructs agents to use the GitButler CLI (`but`) including skill install paths and workspace-mode git workflows.
Install
npx skills add https://github.com/gitbutlerapp/gitbutler --skill butWhat is this skill?
- Documents `but skill install` with local vs global scope and format targets (Agent Skills, Claude Code, OpenCode, Codex,
- Supports `--path`, `--global`, and `--detect` for non-interactive updates to existing skill installs
- Requires GitButler CLI (`curl -sSL https://gitbutler.com/install.sh | sh`) and `but setup` for repository-local installs
- Covers workspace-mode GitButler CLI patterns for agents pairing with parallel branch workflows
- 7 assistant install format options listed (Agent Skills, Claude Code, OpenCode, Codex, Copilot, Cursor, Windsurf)
Adoption & trust: 724 installs on skills.sh; 21k GitHub stars; 2/3 security scanners passed (skills.sh audits); trending (+100% hot-view momentum).
What problem does it solve?
Your agent keeps using plain git while you work in GitButler workspace mode and you need correct install scope and CLI conventions.
Who is it for?
Solo developers who already use GitButler stacked branches and want their agent to respect workspace commands and skill placement.
Skip if: Teams on vanilla git with no GitButler setup, or users who only need generic `git commit` help without the `but` CLI.
When should I use this skill?
Working with the GitButler CLI in workspace mode or installing/updating the GitButler agent skill via `but skill install`.
What do I get? / Deliverables
The agent installs or updates the GitButler skill in the right assistant format and invokes `but` consistently with local or global scope rules.
- Correctly scoped skill install on disk
- Agent-ready GitButler CLI command patterns
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Canonical shelf is Build agent-tooling because the skill wires the agent into day-to-day implementation workflows alongside the editor. Agent-tooling captures CLI installation, scope selection, and GitButler workspace commands rather than a one-off ship checklist.
Where it fits
Run `but skill install` so Cursor picks up GitButler commands in the current repo.
Point an agent at workspace-mode flows instead of destructive plain-git branch switches.
Prepare stacked changes for review while the agent uses `but` conventions.
Refresh a global skill install with `--detect` after upgrading the GitButler CLI.
How it compares
GitButler-specific CLI integration—not a generic git cheat sheet or hosted PR MCP.
Common Questions / FAQ
Who is but for?
Builders using GitButler who want coding agents to install and run the official GitButler CLI skill with correct local/global scopes.
When should I use but?
Use it during Build while stacking features with GitButler, when onboarding an agent to your repo via `but skill install`, and during Ship review when managing parallel branches through workspace mode.
Is but safe to install?
It instructs shell installs and git mutations; review the Security Audits panel on this page and only run `but setup` and installs in repositories you trust.
SKILL.md
READMESKILL.md - But
# GitButler CLI Skill Agent skill for working with the GitButler CLI (`but` command) in workspace mode. ## Installation Install this skill using the GitButler CLI: ```bash but skill install # Prompts for scope and format ``` The command prompts you to choose local (repository) or global (home directory) scope first, then prompts you to select a skill format (Agent Skills / `.agents/skills`, Claude Code, OpenCode, Codex, GitHub Copilot, Cursor, or Windsurf) and installs to the appropriate location. When run outside a git repository, local scope is unavailable and the default install location is global (home directory), but you can still install to a custom location with `--path` using an absolute or `~` path. **Options:** - `--path <path>` - Install to a custom path (outside a repository, relative paths require `--global`) - `--global` - Install globally (in home directory) instead of current repository - `--detect` - Auto-detect installation location from existing installation (useful for updates) In non-interactive mode, use `--path` or `--detect`. **Requirements:** - **GitButler CLI** installed: `curl -sSL https://gitbutler.com/install.sh | sh` - **An AI assistant with skills support** such as Agent Skills / `.agents/skills`, Claude Code, OpenCode, Codex, GitHub Copilot, Cursor, or Windsurf - Repository initialized with GitButler: `but setup` (only for local installs) **Updating:** To update the skill to the latest version, use the `--detect` flag to automatically detect and update your existing installation: ```bash but skill install --detect ``` Alternatively, re-run the install command and select the same location: ```bash but skill install ``` This will overwrite the existing skill files with the latest version. ## Skill Structure The skill directory contains both distributable skill files and development documentation: ```text crates/but/skill/ ├── SKILL.md ← Skill entry point (INSTALLED) ├── README.md ← This file - development docs (NOT installed) ├── RESEARCH.md ← Tier 4 testing research and strategy (NOT installed) ├── eval/ ← Tier 4 integration eval harness (NOT installed) └── references/ ← Additional skill documentation (INSTALLED) ├── reference.md - Command reference ├── concepts.md - Deep concepts └── examples.md - Workflow examples ``` **What gets installed:** The `but skill install` command only copies the distributable files to the user's system: - `SKILL.md` - Main skill entry point - `references/` - All reference documentation files **What stays in the repository:** Development documentation remains in the source tree and is not installed: - `README.md` - This file (development and maintenance docs) - `RESEARCH.md` - Testing strategy and learnings - `eval/` - Tier 4 integration test harness and scenarios ## When This Skill Is Invoked Claude automatically invokes this skill when: - Checking version control state (status, diffs, commits) - Starting new work (should create branch/stack for each task) - After making code changes (should stage files to branches) - Committing work (when logical units complete) - Editing history (amend, squash, move changes) - Any git-like operation ## Progressive Disclosure Claude loads files on-demand: 1. **SKILL.md** - Always loaded when skill activates (lean overview) 2. **references/reference.md** - Loaded when detailed command syntax needed 3. **references/concepts.md** - Loaded when deeper understanding required 4. **references/examples.md** - Loaded when workflow examples needed Files in `references/` directory are only loaded when explicitly referenced, keeping context lean while providing comprehensive documentation when needed. ## Key Design Principles ### Trigger-Rich Description The YAML `description` field contains all triggering information so Claude knows when to use this skill before loading the body. ###