genie binary carries its own runtime, so the CLI needs nothing else to run. The install and the skills need a few tools:| Tool | What needs it |
| curl and tar | install.sh downloads and unpacks the release with them |
| Git | Genie keeps its state per repository and works in git worktrees |
Node.js with npx on your PATH | The skills step runs the pinned skills.sh CLI through npx |
| A coding agent | Claude Code runs the skills and the saved workflows; Codex and the other agents skills.sh supports run the skills |
GitHub CLI (gh), signed in | /wish opens its pull requests with it |
1curl -fsSL https://raw.githubusercontent.com/automagik-dev/genie/main/install.sh | bash
123curl -fsSL https://raw.githubusercontent.com/automagik-dev/genie/main/install.sh > install.sh less install.sh bash install.sh
~/.genie and links genie into ~/.local/bin. When that directory is not on your PATH yet, it adds one line to your shell's startup file and tells you to open a new shell.genie install delivers the skills through skills.sh into every agent skills home it detects, copies the saved workflows into ~/.claude/workflows, and records what landed in ~/.genie/skills-install.json.~/.claude or ~/.codex, already exists. Genie never creates one. Each detected agent gets the skills in its own skills home: ~/.claude/skills for Claude Code, and the shared ~/.agents/skills for Codex and the other agents that read it.genie install. Its --integrations option is your consent for the skills step: any value other than none installs the skills to every detected agent. To install only the binary:1curl -fsSL https://raw.githubusercontent.com/automagik-dev/genie/main/install.sh | bash -s -- --integrations none
--skip-integrations does the same. genie install then writes no install record and reports skills: skipped (consent: none).install.sh finds one of those installs, it prints the exact command that removes it, because the older genie would otherwise keep running ahead of the new one on your PATH. The release notes list what v6 removed and what to do instead.1npx skills add automagik-dev/genie -g
-g installs for your user, under your home directory. Without it the command is project scoped: it writes the skills into the current directory and nothing machine wide.--agent and --skill answer those questions on the command line.--all answers both with everything: every skill, and every agent skills.sh knows, which creates a skills home for agents you do not use. Name your agents with --agent instead.--copy writes plain files instead of symlinks, for an agent or sandbox that does not follow links.main, not a releasenpx skills add automagik-dev/genie installs the skills on the repository's default branch, main, whatever @<ref> suffix you add: the skills CLI treats that suffix as a skill filter, so the command still resolves to main. main can be ahead of or behind any release.genie install and genie update point the same CLI at the skill tree inside the signed release you are running. Use them when you need the skills that match your binary.1genie doctor
genie doctor checks the binary, your repository and the skills channel, and suggests a remedy for every line that needs one. An excerpt from a healthy install of v6.261003.1, with the home directory shortened to ~:12345678✔ genie version — 6.261003.1 ✔ genie on PATH — ~/.local/bin/genie ✔ git present — /usr/local/bin/git ✔ skills: claude — 18/18 @ v6.261003.1 ✔ skills: agents — 18/18 @ v6.261003.1 ✔ skills: goose — not detected ✔ skills: windsurf — not detected ✔ workflows: catalog — 12/12 in ~/.claude/workflows @ v6.261003.1
genie doctor is a read-only observer of the skills channel. It compares the install record Genie wrote at ~/.genie/skills-install.json against what is actually on disk under each agent's skill home, and reports the drift. It never installs, retires, or repairs anything, not even under --fix. genie update owns every mutation on this surface.| Line | Meaning | What to do |
skills: <agent> — <n>/<n> @ v<version> | Every recorded skill is present in that agent's home, installed from release v<version> | Nothing |
skills: <agent> — not detected | That agent's config home does not exist on this machine. That is a healthy state, reported as a pass | Nothing |
skills: <agent> — <n>/<m> @ v<version> (warn) | Skills are missing from that home | genie update |
skills: <agent> — <n>/<n> @ v<version> (stale, binary is v<newer>) (warn) | The skills on disk came from an older release than the binary you are running | genie update |
skills: <agent> — <n>/<n> @ v<version> (unrecorded) (warn) | Skills are on disk but no install record exists, so Genie cannot say which release put them there | genie update |
skills: channel — no install record (warn) | Genie has never installed the skills channel on this host | genie update |
workflows: catalog line reads the same record for the saved workflows. It names any recorded workflow file that was edited by hand, deleted, or left by another release, and it repairs nothing either.| Variable | Default | Description |
GENIE_HOME | ~/.genie | Relocates all of Genie's global state: config, install record, backups and worktrees |
GENIE_AGENT_NAME | none | Worker identity for task claims and stage log entries |
GENIE_AGENT_ID | none | Worker identity when GENIE_AGENT_NAME is unset; with neither set, the identity is cli |
GENIE_WORKTREES_DIR | <GENIE_HOME>/worktrees | Moves the worktrees directory out of GENIE_HOME |
GENIE_CHANNEL | stable | Read by install.sh: set it to dev to install the latest dev build |
123genie update # update on your current channel genie update --dev # switch to the dev channel genie update --stable # switch back to the stable channel
genie update verifies the signed release offline, swaps the binary and then reinstalls the skills and the saved workflows from the tree that shipped inside that release, so what is on disk always matches the binary. A failed skills install never rolls the binary back: the command prints the exact remedy, exits non-zero, and stays retryable. Run genie doctor afterwards to confirm the skills lines are green.1genie uninstall
~/.genie/skills-install.json and, for each agent skill home that record names, deletes only the skill directories that record named and whose content still hashes to the digest recorded at install time. The saved workflows get the same treatment in ~/.claude/workflows. Then it removes the install record, the ~/.local/bin links and the ~/.genie directory, keeping ~/.genie/state-backups.genie uninstall reports it. Data safety beats cleanliness.--copy overwrote at install time is not restored. The install snapshots and backs up any foreign same-named skill directory before overwriting it, and tells you where the backup went; uninstall does not put it back. Restoring it is a manual step.~/.genie and the install record so the whole operation stays retryable..genie/ state directory is preserved.