crates/but/skill/README.md
Agent skill for working with the GitButler CLI (but command) in workspace mode.
Install this skill using the GitButler CLI:
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, Windsurf, or Poolside) 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:
.agents/skills, Claude Code, OpenCode, Codex, GitHub Copilot, Cursor, Windsurf, or Poolsidebut setup; when experimental single-branch
mode is enabled, but registers the repository and infers its target on first use.Updating:
To update the skill to the latest version, use the --detect flag to automatically detect and update your existing installation:
but skill install --detect
Alternatively, re-run the install command and select the same location:
but skill install
This will overwrite the existing skill files with the latest version.
The skill directory contains both distributable skill files and development documentation:
crates/but/skill/
├── SKILL.md ← Skill entry point (INSTALLED)
├── AGENTS.md ← Rules for editing these files (NOT installed)
├── README.md ← This file - development docs (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 pointreferences/ - All reference documentation filesWhat stays in the repository: Development documentation remains in the source tree and is not installed:
AGENTS.md - Rules for anyone editing the skill files (symlinked as CLAUDE.md)README.md - This file (development and maintenance docs)Claude automatically invokes this skill when:
Claude loads files on-demand:
Files in references/ directory are only loaded when explicitly referenced, keeping context lean while providing comprehensive documentation when needed.
The YAML description field contains all triggering information so Claude knows when to use this skill before loading the body.
SKILL.md acts as a "table of contents" that points to detailed materials.
Separate files by domain (commands, concepts, examples) so Claude only loads relevant context.
Uses directive language ("do this") rather than passive ("this might happen").
but commandsTest that Claude:
but commands instead of git