shithub — the command-line client for shithub.sh.
A 1:1 reverse engineering of GitHub's gh CLI,
targeting shithub as the
backend. AGPLv3, no Copilot, no AI features.
Status: pre-1.0. Sprint roadmap drives feature delivery; see commits tagged
C00..C28. Until v1.0.0, flags and output shapes may change between minor releases — wire the response shapes you depend on under explicit--json <fields>rather than relying on the human formatter.
git clone https://github.com/tenseleyFlow/shithub-cli.git
cd shithub-cli
make build
./bin/shithub --versionOr, from any Go toolchain:
go install github.com/tenseleyFlow/shithub-cli/cmd/shithub@latest
shithub --versionRequires Go 1.26+. The go install path recovers the module version
and VCS metadata from Go's build info, so shithub --version reports
the tagged version even without the Makefile.
# macOS / Linux
brew install tenseleyFlow/tap/shithub
# Windows
scoop bucket add tenseleyFlow https://github.com/tenseleyFlow/scoop-bucket
scoop install shithub
# Debian / Ubuntu
# (apt repo + .deb release artifact, coming in C25)# Authenticate. Use the browser flow (recommended)…
shithub auth login --hostname shithub.sh --web
# …or paste a PAT minted at https://shithub.sh/settings/tokens.
shithub auth login --hostname shithub.sh --with-token < token.txt
# Verify.
shithub auth status
# Create a repo + clone it.
shithub repo create my-project --public --add-readme --license MIT
shithub repo clone mfwolffe/my-project
cd my-project
# Open a PR.
git checkout -b feat/something
# ...edit...
git commit -am "feat: something"
git push -u origin feat/something
shithub pr create --fill
# Daily-driver verbs.
shithub pr list --state open
shithub pr view 1
shithub pr checkout 1
shithub issue create --title "bug: …" --body "…"
shithub repo view --webshithub <command> --help shows every flag and example. Verbs broadly
mirror gh's — a script that worked against gh should mostly work
against shithub with the binary name swapped.
- Backend: targets
shithub.shby default, notgithub.com. The hostname can be overridden per-invocation with--hostnameor globally viaSHITHUB_HOST. - Auth tokens:
SHITHUB_TOKEN/SHITHUB_ENTERPRISE_TOKEN/ optionallyGITHUB_TOKEN(opt in withSHITHUB_ACCEPT_GITHUB_TOKEN=1). Seeshithub help environmentfor the full precedence chain. - Deferred verbs: a handful of
ghcommands (gists, releases, rulesets, projects, mention-based search) aren't yet wired server-side and surface as friendly "not yet supported" deferred stubs.shithub <verb> --helpdocuments which features ship today. - AGPLv3 vs gh's MIT — server, CLI, and any extensions are AGPL-licensed.
- CLI bugs / feature requests: this repo's issues.
- Server bugs: tenseleyFlow/shithub issues.
gh-compat divergences (somethingghdoes thatshithubdoesn't, or vice versa): either repo — we'll move it.
AGPL-3.0-or-later. Matches the shithub server license.
See CONTRIBUTING.md. The sprint plans in
.docs/sprints/ (gitignored locally, mirrored to the public spec
repo) are the source of truth for in-flight work.