shtool
One CLI for Shopify theme agents.
Storefront verification, local Liquid, and Admin GraphQL behind one binary. JSON out. Failures carry a hint.
curl -fsSL https://shtool.gghub.space/install.sh | sh
01 / Kit
shtool kit resolves control-shopify, theme-tester, Shopify CLI, npm, and node. It does not merge those programs. It is the front door.
shtool kit
shtool --dry-run storefront doctor
shtool --dry-run render serve
02 / Storefront
Live Chromium and JSON specs. Passes through to control-shopify on PATH, or SHTOOL_STOREFRONT.
shtool storefront setup --store SHOP.myshopify.com
shtool storefront dev start
shtool storefront verify pdp --screenshot
shtool storefront verify --all
03 / Render
Local Liquid via theme-tester (SHTOOL_RENDER). Dawn 2.0 is a gitignored fixture. render serve prints argv. It does not daemonize.
shtool render test
shtool render dawn
shtool render kit
04 / Admin
One hundred leaves. API version 2026-07. Never stores tokens. Writes need --yes. Mutations also need --allow-mutations.
shtool orders list --store SHOP.myshopify.com --first 10
shtool inventory reconcile --store SHOP.myshopify.com --input desired.json
shtool theme schema-lint --root .
shtool verify feature-map-build --root . --routes / --output map.json --yes
05 / Loop
Prove Liquid on disk, then Admin fixtures, then the live page. A DOM pass does not prove it looks right. Read the screenshot.
-
Render first.
shtool render test shtool render dawn -
Inspect the theme and the shop.
shtool verify feature-map-build --root . --routes / --output map.json --yes shtool verify routes-smoke --base-url http://127.0.0.1:4325 --routes /api/health,/api/kit -
Assert the storefront.
shtool storefront verify pdp --screenshot shtool storefront verify pdp --viewport 390x844 --screenshot
On this VPS the script is shtool-site/scripts/loop.sh.
06 / Install
Linux and macOS, amd64 and arm64. The script writes ~/.local/bin/shtool.
curl -fsSL https://shtool.gghub.space/install.sh | sh
Direct binary, if you do not want to pipe a script:
curl -fsSL https://shtool.gghub.space/dist/shtool-linux-amd64 -o ~/.local/bin/shtool
chmod +x ~/.local/bin/shtool
Companions still need a clone. Auth stays in Shopify CLI.
npm i -g @shopify/cli agent-browser
agent-browser install
git clone https://github.com/aimen08/verify-shopify-skill.git ~/.agents/skills/verify-shopify
ln -s ~/.agents/skills/verify-shopify/bin/control-shopify ~/.local/bin/control-shopify
git clone https://github.com/elixir-theme/theme-tester.git
cd theme-tester && npm ci
export SHTOOL_RENDER="$PWD"
07 / Safety
- Writes need
--yes. - GraphQL mutations also need
--allow-mutations. --dry-runprints argv and does not run it.- shtool rejects
--live. A published theme push stays onshtool storefrontand still needs--live --yesthere. - After a mutation loses its response, inspect store state before retrying.
08 / Measured
Do not quote these as Shopify's numbers. Do not invent a live store result.
- shtool: 100 Admin/local leaves,
go test ./...green - theme-tester: 468/468 scored Liquid cases
- Dawn v2.0.0: 38/38 sections, 12/12 JSON templates
- control-shopify: 18/18 offline tests