Anthracite
A CLI for stacked Git branches and GitHub pull requests. Use an or anthracite.
Anthracite builds on Charcoal and the formerly open-source Graphite CLI. See credits and provenance. It supports local stacks and GitHub PRs through gh; it does not implement every current Graphite feature or require a Graphite subscription.
See the 0.4.0 Graphite parity register for shipped work, remaining interfaces, deliberate differences and evidence limits.
Install
Install the npm package with Node.js 24 or newer:
npm install --global @danielbaars/anthracite
an --version
Git is required; GitHub workflows also require an installed, authenticated GitHub CLI. npm installs both an and anthracite. It does not modify shell configuration. See beta/latest and exact-version installation, completion and migration.
Standalone binaries for macOS ARM64, macOS x64 and Linux x64 are also available from GitHub Releases. They do not require Node.js or Bun. From a clone, run sh scripts/install.sh 0.1.1 to install that standalone release with checksum verification and zsh completion.
an --version
an auth
an init --trunk main
an create my-change --message "Add my change"
an modify --commit --message "Extend my change"
an log short --stack
an submit --stack --draft
Use an sync for repository-wide existing-feature refresh and default maintenance; --delete-all supplies cleanup-only consent. Read sync scope, changed automation defaults and recovery. Historical source-candidate acceptance after public 0.5.1 preceded the npm releases that shipped these updates.
For a shared prerequisite below selected branches, see targeted insertion.
Stage changes with Git before create or modify, or choose the command's staging options deliberately. Use an <command> --help for details.
The short log (an ls or an log short) draws vertical stems between consecutive parents and children in a linear stack, including within parallel arms. Existing fork connectors remain visible; --steps 0 shows only the current branch.
Use an split --by-file 'path/**' or an sp -f path to extract selected committed files into a prerequisite while retaining the original branch. See file splitting, history and recovery.
Use an submit --reviewers alice --assignees @me --roles-branch my-change to add roles only to one selected PR while retaining the usual submission scope. See reviewers, assignees and submission scope.
Use an pr [branch] for fresh GitHub PR information, --stack for its connected stack, or --web to explicitly open the selected PR. See PR inspection and preserved local state.
Use an review [branch] to inspect its diff or submit one explicit review bound to --head; see review actions and uncertain responses.
Use an land [branch] --dry-run to preview scoped bottom-up rebase landing, mandatory surviving-branch maintenance and readiness blockers. Apply the selected trunk-to-target chain with --yes; necessary surviving arms are replayed and their existing heads/PRs maintained. Conflicts continue locally with an continue, then require explicit an land resumption for remote work. See scoped landing.
To uninstall an npm installation, run npm uninstall --global @danielbaars/anthracite. For a standalone installation, remove the command links and managed completion block using sh scripts/uninstall.sh from a clone. Version directories and preferences are retained for rollback. See installation and upgrades, the command reference, and compatibility.
MCP
Coding agents can use an mcp or anthracite mcp as a local stdio server. See MCP configuration, tools and recovery for a generic client configuration, explicit request arguments, execution limits and interruption behavior.
Development
See CONTRIBUTING.md for pinned build tools, tests and release preparation. Source code, documentation, commit messages, issues and pull requests in this repository are written in English.
Licensed under the GNU Affero General Public License version 3; see LICENSE and CREDITS.md.