By brunomilani
Pick and enforce the correct GitHub, Bitbucket or GitLab account per repository. For teams where each developer has multiple accounts on one machine.
Change which GitHub account this repository uses. Lists the available GitHub CLI accounts and saves the new choice locally. Use when the user wants to switch the repo to a different GitHub account.
Apply the saved account's git user.name and user.email to this repository's local git config (git config --local). Prompts before overwriting. Use when the local git email is wrong for the chosen account.
Set up guise for this repository — detect the repo and provider, read any project policy, and choose the account this repo should use. GitHub lists the available 'gh' accounts; Bitbucket and GitLab ask for username/email and auto-detect the SSH key from ~/.ssh/config. Use on first setup or when no account is configured yet.
Install a native git pre-push hook that enforces this repo's account in every terminal — not just inside a Claude session. The hook runs 'guise use' and 'guise validate' before each push and aborts on mismatch. Use when the user wants pushes to always go through the correct account even from a plain shell, or after another terminal ran 'gh auth switch'.
Remove the locally-saved GitHub account choice for this repository. Does not log out of gh, delete credentials, or change git config. Use when the user wants to clear or redo the repo's account mapping.
Executes bash commands
Hook triggers when Bash tool is used
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Pick and enforce the right GitHub, Bitbucket or GitLab account per repository.
For teams where every developer has more than one account on the same
machine (personal + company, multiple orgs, client accounts…). guise
remembers which account this repo should use, activates it before any
gh / push / PR operation, and warns when your git email is wrong — all without
ever storing a token.
gh auth switch.core.sshCommand) + git identity. That key
is the account that pushes.It ships as both a standalone CLI and a Claude Code plugin (skills, hooks, and a status line that shows the active account).
[github account: john-work · [email protected]]
You clone acme/web-app. Your machine has two GitHub accounts logged in
to gh: john-personal (default) and john-work. You open Claude Code,
ask it to create a PR — and it uses the wrong account, or your commit lands with
your personal @gmail.com email. guise fixes the account per repo, so
the right identity is always used and verified before GitHub work.
macOS / Linux / WSL:
curl -fsSL https://raw.githubusercontent.com/brunomilani/guise/main/install.sh | bash
Windows PowerShell:
irm https://raw.githubusercontent.com/brunomilani/guise/main/install.ps1 | iex
git clone https://github.com/brunomilani/guise
cd guise
npm install
npm run build
npm test
npm link # makes `guise` available globally
/plugin marketplace add brunomilani/guise
/plugin install guise@guise
This adds the /guise command (plus the /guise:* skills), the
SessionStart / pre-Bash hooks, and
makes the bundled CLI available to those hooks. (Installing the plugin and
npm link are independent — do either or both.)
cd /path/to/repo
guise init # detect repo, list gh accounts, pick one (saved locally)
guise status # full report
guise use # activate the chosen account via `gh auth switch`
guise validate # exit non-zero if anything is wrong
guise git-sync # apply user.name / user.email locally (asks first)
guise install-hook # enforce the account on every push, from any terminal
guise reset # forget the choice for this repo
| Command | What it does |
|---|---|
init | Auto-detects the right account (matches repo owner → account, or picks the only one) and saves it. Prompts only when genuinely ambiguous. Flags: --user, --email, --ssh-key, --auto, --yes, --force. |
set | Non-interactive: guise set --user X [--email E] [--ssh-key path]. Ideal for scripts/CI and for Claude to run inside a session. |
status | Repo + remote + configured account + active gh account + git identity + policy + validation. |
choose | Change the chosen account for this repo. |
use | Activate the configured account. GitHub: gh auth switch. Bitbucket/GitLab: pin the repo-local SSH key. |
validate | Runs every check. Non-zero exit on error (CI-friendly). |
git-sync | Sets git config --local user.name/email from the saved choice (after confirmation). |
install-hook | Installs a native git pre-push hook that runs use + validate before every push — so the account is enforced in any terminal, not only inside a Claude session. Never clobbers an existing non-guise hook. |
uninstall-hook | Removes the guise pre-push hook (only when guise owns it). |
reset | Removes the local mapping for this repo. |
statusline | Prints [github account: …] for the Claude Code status line. |
Inside Claude Code, use the /guise command with any subcommand as an
argument — e.g. /guise status, /guise use, /guise validate,
/guise choose (no argument defaults to status). The individual skills are
also available namespaced: /guise:init, /guise:status, /guise:use,
/guise:validate, /guise:choose, /guise:git-sync, /guise:install-hook,
/guise:reset.
guise actively manages three providers, each with the mechanism that fits it:
| Provider | How "use" activates the account | Account discovery |
|---|---|---|
| GitHub | gh auth switch to the chosen account | Automatic via gh auth status |
| Bitbucket | Pins the repo-local SSH key (core.sshCommand) + git identity | Manual / auto-detected from ~/.ssh/config |
| GitLab | Same SSH model as Bitbucket | Manual / auto-detected from ~/.ssh/config |
npx claudepluginhub brunomilani/guise --plugin guiseComprehensive skill pack with 66 specialized skills for full-stack developers: 12 language experts (Python, TypeScript, Go, Rust, C++, Swift, Kotlin, C#, PHP, Java, SQL, JavaScript), 10 backend frameworks, 6 frontend/mobile, plus infrastructure, DevOps, security, and testing. Features progressive disclosure architecture for 50% faster loading.
Harness-native ECC operator layer - 67 agents, 271 skills, 92 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses
Feature development with code-architect/explorer/reviewer agents, CLAUDE.md audit and session learnings, and Agent Skills creation with eval benchmarking from Anthropic.
Production-grade engineering skills for AI coding agents — covering the full software development lifecycle from spec to ship.
Access thousands of AI prompts and skills directly in your AI coding assistant. Search prompts, discover skills, save your own, and improve prompts with AI.
Complete developer toolkit for Claude Code