The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Hamster listing page.
Install Hamster. One plugin. Talk through hosted MCP or the CLI. Keep the plan on disk, then ship from it.
This is the Hamster product: Agent Plugins skills on every supported client, hosted MCP on every client that supports MCP and installs from GitHub or a marketplace, plus generated native execution workers on Claude Code, GitHub Copilot CLI, and Grok Build. The CLI is how the plan stays in this repo. It is not a second install.
Installation differs by client. If you use more than one, install Hamster separately for each one.
https://github.com/gethamster/plugin at User scope and select Import.On Enterprise, an admin must allow marketplace imports. Once Hamster is on the Cursor marketplace, /add-plugin hamster works too:
Grok Bot is not a separate Hamster package. It uses the same Cursor account and plugin library, so the Cursor install above is the Grok Bot install. Do not run /add-plugin in the Grok Bot chat. If Grok Bot shows "Complete GitHub auth to sync installed plugins", complete GitHub auth when Grok Bot asks.
You can also launch codex, run /plugins, and install hamster@hamster-plugins.
The Hamster listing in Codex's Plugins Directory is a skills-only build of this same skills tree, produced by node scripts/build-codex-skills-bundle.mjs. A directory install carries the skills and nothing else, so it does not register the hosted MCP connector: Ask Hamster answers through hamster chat there unless you add the connector yourself, as described in Advanced: hosted MCP without the plugin. The GitHub and marketplace installs above are unaffected and keep the connector.
From this repository:
Or from GitHub:
If Hamster 3.2 is already installed, uninstall it before you install 3.4. An in-place Antigravity install retains the four skill directories renamed in 3.4.
In the Antigravity app (2.15 or newer), authenticate hamster_hamster under Settings → Customizations → Installed MCP Servers. The plugin registers that server itself, so a manual hamster entry in mcp_config.json would add a second copy of every tool.
Using GitHub Copilot CLI, Grok Build, or Pi? See More install options.
To sign in to the hosted MCP server, run /mcp auth hamster.
To sign in to the hosted MCP server, open /mcps, select hamster, and press i.
Pi has no MCP support, so Hamster runs through the CLI. Run /skill:setup to install it and sign in.
https://tryhamster.com/mcp, or hamster chat when MCP tools are unavailable and the CLI is signed in. Your client owns the Hamster sign-in.hamster auth login, and syncs the plan.Claude Code and Copilot CLI list these as /hamster:<skill>. Cursor and Grok Build list them as /<skill>, and Pi as /skill:<skill>. The table uses the Claude form.
| Skill | Persona | Description |
|---|---|---|
/hamster:setup | — | Install the CLI, sign in, and sync the plan into this repo |
/hamster:ask-hamster [request] | Workspace Copilot | Connect current code with workspace priorities, blockers, blueprints, or related work (hosted MCP when the client has it; hamster chat otherwise) |
/hamster:ship [slug-or-url] | Release Engineer | Ship a brief: merge base, implement in parallel, test, review, bisectable commits, PR |
/hamster:plan-hamster [slug-or-url] | Tech Lead + CEO/Eng modes | Analyze brief with optional founder or architecture review |
/hamster:resume-hamster [slug] | — | Resume interrupted execution from where you left off |
/hamster:review-hamster | Staff Engineer | Paranoid two-pass code review (CRITICAL then INFORMATIONAL) |
/hamster:qa [mode] | QA Lead | Systematic testing: diff-aware, full, quick, regression |
/hamster:retro [days] | Eng Manager | Engineering retrospective with metrics, trends, team analysis |
Four skills carry a -hamster suffix because Cursor invokes plugin skills as a bare /skill-name, and ask, plan, and resume are Cursor's own concepts — cursor-agent --mode takes plan and ask, --resume selects a session — so short names compete with them there. review is renamed with that family so Cursor's command list stays one convention. Claude Code namespaces plugin skills as /<plugin>:<skill> and they cannot conflict, so on Claude the suffix is redundant and you type /hamster:ask-hamster. One skills tree serves every client, so that is the cost of being unambiguous on Cursor. ship, qa, retro, and setup shadow nothing and stay short.
/hamster:setupThe readiness path. Noninteractive check first (ensure-ready). If the CLI is installed and you are signed in, it runs hamster sync to refresh the plan. Otherwise it installs the CLI, opens login, and inits/syncs — only when you asked.
/hamster:ask-hamsterThe direct gateway to Hamster's connected workspace context. Uses the Hamster MCP tools when the client has them; otherwise hamster chat is the same ask path over the CLI. Explicit requests can also perform supported workspace actions:
Follow-up questions continue the same Hamster conversation when they depend on the previous response.
/hamster:shipThe main orchestrator. Accepts a brief slug, UUID, or Hamster Studio URL:
If no argument is given, presents an interactive picker of actionable briefs.
Flow: Readiness (setup/ensure-ready) → Setup (prereqs + live sync) → Brief selection → Inline wave scheduling (one confirmation) → Branch + merge base → Parallel wave execution (implement → validate + test → wave review → bisectable commits) → Final validation → Ask about PR creation
No plan generation or task elaboration occurs at any step — scheduling only organizes the pre-generated tasks into parallel waves.
/hamster:plan-hamsterRead-only analysis with optional deep review. Produces the execution plan without making changes.
After analysis, choose a review mode:
/hamster:resume-hamsterResumes an interrupted execution. Auto-detects the brief from the git branch name (feature/{key}-{id}-{slug}), in-progress tasks, or a provided argument.
/hamster:review-hamsterParanoid two-pass code review for the current feature branch:
/hamster:qaSystematic testing with 4 modes:
Includes issue taxonomy (functional/type-safety/integration/performance/coverage-gap) and optional fix loop.
/hamster:retroEngineering retrospective from git history:
Produces: metrics table, hourly distribution, session analysis, hotspots, PR sizes, per-contributor deep dive with praise and growth suggestions, trends vs last retro, and a narrative summary.
| Worker | Persona | Purpose |
|---|---|---|
| task-executor | Senior Engineer | Implements one parent task + subtasks; loads project skills, blueprints, and methods |
| wave-reviewer | Staff Engineer | Reviews a whole wave's diff (per-parent verdicts + cross-parent integration checks), then simplifies |
Canonical worker protocols live in skills/ship/references/agents/. Root agents/task-executor.md and agents/wave-reviewer.md are generated Claude Code native adapters (registration + model metadata) over those bodies — run node scripts/sync-adapters.mjs after editing the canonical files; CI checks drift. com.github.copilot/agents links to agents/ so Copilot CLI registers them too. Ship prefers the registered native agent when the client exposes it (Claude Code, Copilot CLI, and Grok Build do), otherwise launches a generic subagent and injects the matching canonical body, otherwise runs the same protocol inline. On the generic path, prefer the strongest available coding model for task-executor and a mid-tier model for wave-reviewer when the client can pin one; otherwise inherit. Wave scheduling, branch creation, commits, and PR creation stay inline.
Every skill directory is self-contained: no SKILL.md reads a sibling skill's files, because clients are free to install or load one skill on its own. Each skill is SKILL.md plus optional scripts/ and references/; longer procedures live in references/ so the skill body stays within client size limits (Codex reads the first 8,000 bytes). Shared material — readiness scripts under each skill's scripts/, and protocols under references/ that plan-hamster and resume-hamster re-enter — is duplicated into every skill that needs it, and scripts/validate-plugin.mjs hashes every copy and fails the build if they drift apart. Root scripts/ is maintainer tooling (sync-adapters.mjs, validate-plugin.mjs); it is not part of the installed skill surface.
Editing shared material is a multi-file edit. The first path in each group below is the source of truth; the rest are copies that must stay byte-identical. Change the source, copy it over the others, then run the validator — it names the exact cp commands when a group has drifted.
| Source of truth | Copies |
|---|---|
skills/setup/scripts/ensure-ready.sh | ship, plan-hamster, resume-hamster |
skills/setup/scripts/ensure-ready.ps1 | ship, plan-hamster, resume-hamster |
skills/ship/references/brief-selection.md | plan-hamster, resume-hamster |
skills/ship/references/execution-loop.md | resume-hamster |
skills/ship/references/agents/task-executor.md | resume-hamster |
skills/ship/references/agents/wave-reviewer.md | resume-hamster |
For each wave of independent parent tasks (executed in parallel):
feature/{key}-{lowest-id}-{brief-slug}, where {key} is the task display ID's key, lowercased (HAM-42 → feature/ham-42-…, ACME-7 → feature/acme-7-…)feat({key}-123): concise description (split by concern for bisectability)refactor({key}-123): simplify descriptionfix({key}-123): address review findingsfix(qa): test-file — descriptionUse this only when you want the hamster binary without a plugin client.
Or download a binary from the latest release.
Supported platforms: macOS (amd64, arm64), Linux (amd64, arm64), Windows (amd64).
The plugin package and source files in this repository are licensed under MIT. Prebuilt hamster binaries distributed through GitHub Releases are provided under Hamster's Commercial Terms.
| Command | Description |
|---|---|
hamster auth login | Authenticate via browser (OAuth 2.1 + PKCE) |
hamster auth logout | Log out and clear stored credentials |
hamster init | Initialize Hamster data and run first sync |
hamster sync | One-time sync from Hamster Studio |
hamster sync --watch | Continuous real-time sync via WebSocket |
hamster chat "<request>" | Ask Hamster from the terminal (--continue for follow-ups); same ask path as hosted MCP when plugin tools are unavailable |
hamster status | Show sync status and statistics (hamster --no-tui status for plain output, which is what the skills' readiness gate runs) |
hamster task status <id> <status> | Update task status (todo, in_progress, done) |
hamster brief status <slug> <status> | Update brief status |
Skills read .hamster/ in the current repo:
Skills take the account directory name from account_slug in .state.json. HAMSTER_ACCOUNT_ID holds an account UUID, so when it is set the skills check it against account_id and stop rather than guess.
The hosted MCP tools work on one active team per user, which isn't tied to any repo. So before its first Hamster MCP call, and before each ask or change, ask-hamster calls switch_account with this repo's account_slug (your CLI team as of the last hamster sync here) and checks that the team it lands on has the same account_id. Otherwise a user in more than one team can get "not found" for tasks that exist. The server stores that choice per user, so switching also changes the team your other Hamster MCP clients use until they switch again. If the switch fails or lands on a different team, the skill stops and points you at hamster init --force or the right MCP sign-in. The other skills use the CLI, not Hamster MCP, so they don't switch.
Use this only when you want the hosted MCP tools in a client without installing the plugin. Add https://tryhamster.com/mcp as a remote MCP connector and sign in through OAuth; see the MCP server docs for setup, the tool list, and client registration. Skills, slash commands, the CLI, and /ship come with the plugin.
MIT. Copyright Hamster Studio. The MIT grant covers the plugin package and source files in this repository; prebuilt hamster binaries distributed through GitHub Releases are provided under Hamster's Commercial Terms.