← HamsterCONTENT HISTORY
WHAT CHANGED
Update to Hamster
Snapshot Nov 3, 2026 · 00:14 UTC · version 3.5.0
Collection source: downloaded plugin package.
First saved snapshot
No earlier snapshot is available to establish a change.
Save Hamster and check future changes in Following.
Up to 10 plugins free · no card required.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"description": "Install the Hamster CLI if missing, sign in, and sync the plan into this repo. Use when the user says Install Hamster, requests first-run setup, or when ship, plan-hamster, or resume-hamster reports SETUP_NEEDED.",
"included_files": [
{
"relative_path": "scripts/ensure-ready.ps1",
"size_in_bytes": 929
},
{
"relative_path": "scripts/ensure-ready.sh",
"size_in_bytes": 666
}
],
"name": "setup",
"skill_md_contents": "---\nname: setup\ndescription: Install the Hamster CLI if missing, sign in, and sync the plan into this repo. Use when the user says Install Hamster, requests first-run setup, or when ship, plan-hamster, or resume-hamster reports SETUP_NEEDED.\n---\n\n# Setup\n\nMake this workspace ready: Hamster CLI on PATH, user signed in, plan on disk in this repo's `.hamster/`.\n\nTalking to Hamster uses the Hamster MCP tools when the client has them; `hamster chat` is the same ask path over the CLI. This skill is only for installing the CLI and getting the local plan.\n\n## Readiness check\n\nRun the bundled gate. Set `SKILL_DIR` to the absolute path of the directory holding the SKILL.md you just read — the shell's working directory is the user's project, not this skill — and keep the whole command on one line with its statements `;`-separated, because some clients flatten a fenced block into a single line before running it. The `else` branch is the same gate inline, for clients that expose no readable path to the installed package. Neither branch installs, opens a browser, or calls curl.\n\nUnix:\n\n```bash\nSKILL_DIR=\"<absolute path of the directory containing this SKILL.md>\"; if [ -f \"$SKILL_DIR/scripts/ensure-ready.sh\" ]; then bash \"$SKILL_DIR/scripts/ensure-ready.sh\"; else export PATH=\"$HOME/.hamster/bin:$PATH\"; if command -v hamster >/dev/null 2>&1 && { status_err=\"$(hamster --no-tui status 2>&1)\"; printf '%s' \"$status_err\" | grep -q \"Logged in\" || { printf '%s\\n' \"$status_err\" >&2; false; }; } && sync_err=\"$(hamster sync 2>&1)\"; then echo READY; else [ -n \"${sync_err:-}\" ] && printf '%s\\n' \"$sync_err\" >&2; echo SETUP_NEEDED; exit 1; fi; fi\n```\n\nWindows:\n\n```powershell\n$SkillDir = \"<absolute path of the directory containing this SKILL.md>\"; if (Test-Path \"$SkillDir\\scripts\\ensure-ready.ps1\") { pwsh \"$SkillDir\\scripts\\ensure-ready.ps1\" } else { $env:PATH = \"$env:USERPROFILE\\.hamster\\bin;\" + $env:PATH; if (Get-Command hamster -ErrorAction SilentlyContinue) { $status = & hamster --no-tui status 2>&1 | Out-String; if ($LASTEXITCODE -eq 0 -and $status -cmatch \"Logged in\") { $syncOut = & hamster sync 2>&1; if ($LASTEXITCODE -eq 0) { \"READY\" } else { [Console]::Error.WriteLine(($syncOut | Out-String).TrimEnd()); \"SETUP_NEEDED\"; exit 1 } } else { [Console]::Error.WriteLine($status.TrimEnd()); \"SETUP_NEEDED\"; exit 1 } } else { \"SETUP_NEEDED\"; exit 1 } }\n```\n\n- Prints `READY` — the CLI is installed, you are signed in, and `hamster sync` succeeded. Stop.\n- Prints `SETUP_NEEDED` — if this is Codex on macOS and `hamster` is already on `PATH`, re-run only this readiness command with elevated permission. The default workspace sandbox cannot read Keychain credentials, and an extra directory grant does not change that. If the elevated check prints `READY`, stop. Only if it still prints `SETUP_NEEDED`, continue below.\n\n## Install the CLI\n\nIf `hamster` is not on PATH (also look in `~/.hamster/bin`), the user installs the Hamster CLI themselves. Do not download, fetch, or run an installer, and do not run the install commands on the user's behalf.\n\nTell the user that setup needs the Hamster CLI, and ask them to install it in their own terminal by following https://github.com/gethamster/plugin#advanced-cli-binary. Then wait until they say it is installed.\n\nWhen they do, check that `hamster` is now on PATH (also look in `~/.hamster/bin`). If it is still missing, tell the user and stop. Otherwise put `~/.hamster/bin` on PATH for this session.\n\n## Sign in\n\n```bash\nhamster auth login\n```\n\nThis opens a browser. Wait until it finishes. Do not paste tokens into chat.\n\n## Init and sync\n\n```bash\nhamster init\n```\n\n`init` may ask the user to pick an account and runs the first sync.\n\nRe-run the readiness check — it runs the sync that pulls the plan. If it still prints `SETUP_NEEDED`, report what failed and stop.\n\n## Finish\n\nWhen the check prints `READY`, confirm this repo now has `.hamster/`. If the client has the Hamster MCP server and the user has not signed in to it yet, point them to their client's sign-in; the client owns it, never handle their credentials:\n\n- Claude Code: open `/mcp` and select `plugin:hamster:hamster`.\n- Codex: run `codex mcp login hamster` in a terminal.\n- Copilot CLI: `/mcp auth hamster`.\n- Grok Build: open `/mcps`, select `hamster`, and press `i`.\n- Cursor: follow Cursor's Hamster sign-in prompt.\n- Antigravity: in the CLI, open `/mcp`, select `hamster_hamster`, then Authenticate; in the app, select Authenticate on `hamster_hamster` under Settings → Customizations → Installed MCP Servers.\n- Pi: run `pi mcp login hamster` in a terminal.\n\nIf the client has no Hamster MCP server, `ask-hamster` still works through the CLI. To add the Hamster tools, tell the user to add `https://tryhamster.com/mcp` as a remote MCP connector and sign in through OAuth; in Codex that is `codex mcp add hamster --url https://tryhamster.com/mcp`, then `codex mcp login hamster`, and in Pi `pi mcp add hamster --url https://tryhamster.com/mcp`, then `pi mcp login hamster`.\n\nThen tell the user they can ask Hamster about this repo with the `ask-hamster` skill and ship a brief with `ship`.\n"
}SHA-256 of public snapshot: 284b74bbb1d20e7251bd3eebc812dac56973bc68b084e8c174acbf6314335cf8