The genie install, genie publish, and genie item commands manage the Genie item registry. Items are reusable components distributed via git repositories and described by a genie.yaml manifest.
Clones the repository (shallow by default) to ~/.genie/items/<name>/
Detects the manifest — genie.yaml, or inferred from AGENTS.md, manifest.ts, skill.md
Validates the manifest against type-specific rules
Registers the item in the app store (PostgreSQL)
Runs type-specific setup:
agent — regenerates agent cache
board — creates task type with stage pipeline
workflow — registers schedule with cron expression
stack — recursively installs all bundled items
--force overwrites an existing item with the same name. If you made local edits inside ~/.genie/items/<name>/, they’re discarded — use --full during development so the clone is a full git checkout you can work from.
Install a stack to bootstrap an entire workspace in one command — stack items recursively install every agent, skill, board, and workflow they bundle.
# Install an agentgenie install github.com/automagik-dev/agent-reviewer# Install a specific versiongenie install github.com/automagik-dev/board-software@v1.2.0# Force reinstallgenie install github.com/automagik-dev/agent-reviewer --force# Full clone (for development)genie install github.com/automagik-dev/my-stack --full
Publish the current directory as a Genie item. Must be run from a directory containing a valid manifest. Requires a pushed git tag matching the manifest version.
# Tag and publishgit tag v1.0.0git push origin v1.0.0genie publish
genie publish records the version in app_versions against a specific git SHA — once registered, that (name, version) pair cannot be quietly replaced. If you pushed a broken tag, bump the version and publish again rather than trying to rewrite history.