# Running gstack on other agents The README has the host matrix: one row per agent with its tier, install command and first invocation. This page has the rest: agent harnesses (OpenClaw, Hermes, dots, QM, Muse Code, Grok and any other), how a checkout decides which agents it renders for, the per-host notes, outside-review providers, the Codex behavioral profile, model tiers, and the design binary's models. ## Agent harnesses Installing gstack inside an agent harness registers its skills the harness's own way, in the same `./setup` run. `bin/gstack-harness` does the work and `lib/harness-register.ts` holds one target per harness. **When it is automatic.** `./setup` with no `--host` (or `--host auto`) registers with the harness it runs inside: OpenClaw (its exec tool sets `OPENCLAW_SHELL=exec`), Hermes (`HERMES_AGENT=true`) or a Dot (`HOME=/home/dot` on a Dot's computer), or a harness found among setup's parent processes. It prints every path it wrote and the command that removes them. An explicit `--host claude` (or any other host) never writes under a harness folder, and neither does `./setup --local`. `./setup --no-harness-auto` or `GSTACK_HARNESS_AUTO=0` turns the automatic step off. **What it writes.** Copies in the harness's own skills folder, never edits to `openclaw.json`, Hermes's `config.yaml` or any context file you did not name. A context block is opt-in: `gstack-harness register openclaw|hermes|generic --context ` writes the marked block into that file only, after printing the file and its scope (`profile` inside the harness's own home, else `project`). Setup, upgrades and refresh never add one, a block you delete stays deleted, a second `--context` file keeps the first (the ledger keys blocks by file), and uninstall restores each file byte for byte. It refuses `SOUL.md`, and for Hermes a new file that would outrank rules Hermes loads now (`.hermes.md`/`HERMES.md` load before `AGENTS.md`): `HARNESS_CONTEXT_REFUSED`. Every file goes into a ledger, `$GSTACK_STATE_ROOT/harness/.ledger`, with its sha256. Registering again changes only what changed; a folder or skill name gstack did not write stops it (`HARNESS_UNOWNED_ENTRY`); `gstack-uninstall` and `gstack-harness unregister` remove exactly the ledger's files, never through a symlink, and rename any file you edited to `.edited-