Skip to main content

Item Registry

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.

Item Types

genie install

Install a Genie item from a git repository.
The target is a git URL with an optional version tag:

What happens on install

  1. Clones the repository (shallow by default) to ~/.genie/items/<name>/
  2. Detects the manifest — genie.yaml, or inferred from AGENTS.md, manifest.ts, skill.md
  3. Validates the manifest against type-specific rules
  4. Registers the item in the app store (PostgreSQL)
  5. 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.

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

  1. A genie.yaml manifest (or detectable convention) in the current directory
  2. A git tag matching the manifest version (e.g., v1.0.0 for version 1.0.0)
  3. The tag must be pushed to the remote

What happens on publish

  1. Detects and validates the manifest in the current directory
  2. Verifies a git tag matching v<version> exists and is pushed to the remote
  3. Registers or updates the item in the app store
  4. Records the version in app_versions with git SHA
  5. Sets approval status to pending

Example

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.

genie item update

Update an installed item to the latest version or a specific tag.

genie item uninstall

Remove an installed item.

Manifest Format

Every item is described by a genie.yaml manifest:

Required Fields

Type-Specific Sections

Each type has its own section with type-specific fields: agent
skill
board
workflow
stack

Manifest Detection

If no genie.yaml exists, Genie infers the manifest from conventions:

See also

Directory

Register and edit agents in the local directory.

Boards

Boards are one of the item types you can publish and install.

Scheduling

Workflow items create schedules on install.

Database

Inspect the app store tables that back the registry.