Item Registry
Thegenie 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.
Item Types
| Type | Description |
|---|---|
agent | Autonomous agent with model config, roles, and entrypoint |
skill | Reusable skill with triggers and entrypoint |
app | Application with runtime, NATS prefix, and entrypoint |
board | Board definition with stage pipeline and gate configs |
workflow | Scheduled workflow with cron expression and command |
stack | Bundle of multiple items installed together |
template | Project template for scaffolding |
hook | Hook script triggered by lifecycle events |
genie install
Install a Genie item from a git repository.
| Option | Description |
|---|---|
--force | Override existing item with same name |
--full | Full git clone instead of shallow |
What happens on install
- Clones the repository (shallow by default) to
~/.genie/items/<name>/ - Detects the manifest —
genie.yaml, or inferred fromAGENTS.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
Examples
genie publish
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.
Prerequisites
- A
genie.yamlmanifest (or detectable convention) in the current directory - A git tag matching the manifest version (e.g.,
v1.0.0for version1.0.0) - The tag must be pushed to the remote
What happens on publish
- Detects and validates the manifest in the current directory
- Verifies a git tag matching
v<version>exists and is pushed to the remote - Registers or updates the item in the app store
- Records the version in
app_versionswith git SHA - Sets approval status to
pending
Example
genie item update
Update an installed item to the latest version or a specific tag.
| Option | Description |
|---|---|
--all | Update all git-installed items |
genie item uninstall
Remove an installed item.
Manifest Format
Every item is described by agenie.yaml manifest:
Required Fields
| Field | Description |
|---|---|
name | Item name (used as identifier) |
type | One of: agent, skill, app, board, workflow, stack, template, hook |
version | Semantic version string |
Type-Specific Sections
Each type has its own section with type-specific fields: agentManifest Detection
If nogenie.yaml exists, Genie infers the manifest from conventions:
| File | Inferred type |
|---|---|
genie.yaml | Explicit manifest (first priority) |
AGENTS.md | agent — reads name, model, roles from YAML frontmatter |
manifest.ts | app |
skill.md | skill |