# 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. 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-