Documentation
Everything you need to run Gitset
One reference for the whole ecosystem — the web app and the CLI. No marketing copy here, just what exists, why, and how to use it.
01 What is Gitset
Gitset is an open-source toolkit for everything around your code on GitHub: commit messages, issues, pull requests, release notes, READMEs, labels, and repository upkeep. Every tool drafts from your repository's real context, and you refine the draft in plain language until it ships. Nothing is published without your explicit confirmation.
Gitset is BYOAI — bring your own AI key. Anthropic, OpenAI, Gemini, OpenRouter, or any OpenAI-compatible endpoint. There are no subscriptions, no seats, and no token metering: you pay your provider directly, at their price, and Gitset adds nothing on top.
02 Ecosystem
Gitset runs in two places, sharing the same drafting engine and the same templates:
The web app
Sign in with GitHub, connect a repository, and every tool publishes what you approve in one click. Keeps a version history per draft.
The CLI
Runs entirely on your machine. No account, no login. Your code and your key go directly to your AI provider — never to a Gitset server.
A private API handles generation and storage for the web app — the provider abstraction and prompt layer are shared with the CLI's source, so both stay behaviorally identical. The web app and the CLI are open source (MPL-2.0); that internal API is not.
03 Installation
Web
Nothing to install. Go to gitset.dev and sign in with GitHub.
CLI
npm install -g @gitset-dev/cli Requires Node.js 18+. Publishing commands (--create, --apply) use the GitHub CLI (gh) with your existing login.
04 Authentication
The web app uses GitHub OAuth — one sign-in, three scopes
(user:email, repo,
read:org), each used only for what it
says. Revoke it anytime from GitHub's own settings.
The CLI has no login at all. There's no account to create and no session to expire — you configure a provider key once (see below) and every command runs locally from there.
05 Configuration
Everything lives locally in ~/.gitset.
Start with the interactive setup — it's the same entry point
whether you're configuring your first provider or your fifth:
gitset config It walks you through picking a provider, pasting a key (masked as you type), and choosing a model — the recommended one is pre-selected. Run it again later to add a provider, change the default, or switch color themes for a light or dark terminal. Prefer flags for scripts or CI?
gitset config set anthropic --key sk-... --default
Templates work the same way on both surfaces: define your commit
style, issue structure, PR format, README skeleton, or
release-notes layout once, and every draft follows it. On the
CLI, gitset init scaffolds editable
files in ~/.gitset/templates, and
gitset template edit <tool>
opens one in your editor. On the web, each tool has a template
manager with a curated library you can try without ever
overwriting your own saved template.
Label Pack follows the
same pattern for GitHub labels: define a reusable set once
(locally via gitset labelspack, or
on the web from Issue Crafter or PR Maker) and apply it to any
repository, replacing GitHub's defaults.
06 CLI commands
Drafting (uses your provider key)
gitset commit Draft a commit message from staged changes, refine it, commit.
gitset pr Draft a pull-request description from the branch diff. --create opens it via gh.
gitset issue -m "..." Draft a GitHub issue from one sentence plus local repo context.
gitset readme Draft a README from your tracked files. --template uses your own file as the base.
gitset release Draft release notes from a commit range — by default, since your last tag.
gitset gitignore Detect your stack and generate a matching .gitignore.
gitset repo about Draft a repository description and topics, applied via gh.
Local (no AI)
gitset config Interactive provider setup — the entry point for everything below.
gitset labelspack Apply your reusable label set, replacing GitHub's defaults.
gitset repo backup Write a scheduled mirror-backup GitHub Actions workflow.
gitset repo license Generate a LICENSE file (MIT, ISC, BSD, Apache-2.0, Unlicense). Offline.
gitset template edit <tool> Open (or create) a template in $EDITOR.
gitset dependabot List and resolve open Dependabot alerts.
gitset tree · status · init Repository structure · git + provider status · scaffold templates.
Common flags on drafting commands: --provider,
--model, --yes,
--json, --print.
Run gitset help <command> for the full
list on any command.
07 Tools
Every tool exists on the web; most exist as a CLI command too (see above). Same drafting logic, same templates, either surface.
README Generator
Repo-aware READMEs from your actual code and structure.
Issue Crafter
One sentence in — a complete, labeled GitHub issue out.
PR Maker
Pull-request descriptions built from your branch diff.
Release Manager
Release notes from your commit range, in your format.
Commit Generator
Conventional commits from any diff — web or terminal.
Gitignore Builder
Stack-aware ignore files, generated in seconds.
Repo Profiler
Descriptions and topics that make your repo discoverable.
Backup Automator
Scheduled mirror backups that run inside your GitHub.
08 Examples
A refinement instruction is just a plain-language sentence — no special syntax:
Scripting or CI can skip the interactive loop entirely:
gitset commit --yes --print 09 Typical workflow
- Make changes, stage them, and run
gitset committo draft the message. - Push the branch, then
gitset pr --createto draft and open the pull request. - Reviewers ask for changes on the web app, where you can see version history side by side.
- Merged and ready to ship?
gitset releasedrafts the notes from the commit range since your last tag.
10 Best practices
- Run
gitset initonce per machine and adjust the scaffolded templates — the defaults are a reasonable starting point, not a house style. - Prefer
gitset config's wizard over hand-typing keys; it validates the model choice for you. - Use
--printto preview a draft without writing or publishing anything, especially the first few times with a new template. - Rotate provider keys the same way you'd rotate any API key —
gitset configlets you replace one without touching anything else. - In CI, always pass
--yes(or read--jsonoutput) — interactive prompts will otherwise hang a non-interactive shell.
11 Troubleshooting
✗ No AI provider configured
Run gitset config — the interactive wizard sets one up in under a minute. Scripts and CI should use gitset config set <provider> --key <key> --default directly.
✗ Nothing staged
gitset commit only looks at what git diff --cached shows. Run git add first, or pass --all to stage everything before generating.
gh issue create / gh pr create fails
The --create and --apply flags shell out to the GitHub CLI. Install gh and run gh auth login once; Gitset never asks for a separate token.
A model id is rejected
A small set of models are excluded from Gitset regardless of provider. Pick a different model — gitset config shows a curated, working list per provider.
Templates don't seem to apply
Run gitset init once to scaffold ~/.gitset/templates, then gitset template edit <tool> to customize. Templates are picked up automatically on the next draft — no flag needed.
Something else? Check the FAQ, reach out, or read the source — Gitset is open source end to end (except the private API).