Athena is a second Shopify brand that runs Cyclone's CLI tools against its own credentials. This repo holds no CLI source code — only thin wrappers, config, and a credential checklist. The tools are built from the Cyclone clone on demand.
- Source of truth:
$CYCLONE_DIR/tools/*(default/Users/conrad/workspace/cyclone/cyclone). Nothing is forked. - Build on use: each wrapper in
bin/rebuilds its tool only when the Cyclone source is newer than the last build (fast no-op otherwise), intobin/.build/. The Cyclone worktree is never modified. - Auto-updates:
bin/refreshdoes a throttled (daily)git pullof the Cyclone clone before building, so upstream CLI changes flow in. Toggle withATHENA_AUTO_PULLin.env; force withbin/refresh --force. - Credential isolation: wrappers load Athena's
.envand run the binary under an isolatedHOME(.home/) so the Shopify OAuth token cache is Athena-only and never collides with Cyclone's. (macOS Go ignoresXDG_CONFIG_HOME, soHOMEis the lever.)
| Command | Upstream | Status |
|---|---|---|
shopify-admin |
tools/shopify-admin (Go) |
✅ env-driven, reusable |
gmail-admin |
tools/gmail-admin (Go) |
✅ env-driven, reusable |
shopify-theme |
official Shopify CLI | ✅ pulls/runs the Athena theme (independent of Cyclone) |
refresh |
— | pulls the Cyclone source |
Deferred (Cyclone content baked in — see docs/CREDENTIALS.md): generate_faqs.py, wayback-submit.sh. Skipped: walmart-admin.
cp .env.example .envand fill it in — seedocs/CREDENTIALS.mdfor every value.- Save Athena's GCP service-account key as
./gcs-service.json. - Load the environment:
- direnv:
direnv allow - otherwise:
source scripts/env.sh
- direnv:
- Verify the toolchain:
go version(Go 1.26+) must be on PATH. - For the SEO/GA/image MCP servers, start Claude Code from this workspace (with the env loaded) and approve the project MCP servers via
/mcp. Account-scoped servers (DataForSEO, nanobanana, lighthouse) are inherited from the global config.
- Build on use —
shopify-admin --versionbuilds intobin/.build/and runs. Re-run → no rebuild.touch $CYCLONE_DIR/tools/shopify-admin/main.go→ next run rebuilds. - Athena data, not Cyclone —
shopify-admin products listreturns Athena store products. - Token isolation — after
shopify-admin auth, confirm~/Library/Application Support/shopify-admin/token.json(Cyclone's) is unchanged; Athena's token is under.home/. - Gmail impersonation —
gmail-admin --dry-run ...shows the Athena mailbox, notconrad@cyclonepods.com. - GA4 —
mcp__ga4__run_reportwithATHENA_GA4_PROPERTYreturns Athena data. - SEO — a DataForSEO query for the Athena domain succeeds on the reused account.
- Image gen — a nanobanana generate call produces an image with the reused
GOOGLE_AI_API_KEY.
bin/ wrappers (shopify-admin, gmail-admin, shopify-theme, refresh) + _common.sh
theme/ Athena Shopify theme code (pulled via shopify-theme; committed)
scripts/env.sh PATH + env loader for non-direnv shells
.envrc direnv equivalent
.env.example credential schema (copy to .env)
.mcp.json Athena-scoped MCP servers (GSC, GA4)
docs/CREDENTIALS.md the credential checklist
docs/SETUP-PLAN.md ordered rollout plan