Marketplace
Workflows and plugins are distributed through marketplace repositories — GitHub repos with catalog files that Athena uses for resolution. The primary marketplace is lespaceman/athena-workflow-marketplace.
Installing a Workflow
athena workflow install e2e-test-builder@lespaceman/athena-workflow-marketplace --name e2e-test-builderThis:
- Clones the marketplace repo to
~/.config/athena/marketplaces/lespaceman/athena-workflow-marketplace/(cached after first use) - Reads
.athena-workflow/marketplace.jsonto find the workflow - Copies the definition to
~/.config/athena/workflows/e2e-test-builder/workflow.json
Then activate it:
athena-flow --workflow=e2e-test-builderPlugin Resolution
Plugins are resolved at runtime (not pre-installed). A marketplace ref like e2e-test-builder@lespaceman/athena-workflow-marketplace in your config causes Athena to:
- Clone/update the marketplace repo
- Read
.claude-plugin/marketplace.json - Resolve the plugin from the
sourcepath (relative topluginRoot) - Load the plugin directory
Marketplace Repository Structure
athena-workflow-marketplace/
.claude-plugin/
marketplace.json # Plugin catalog
.athena-workflow/
marketplace.json # Workflow catalog
.workflows/
e2e-test-builder/
workflow.json
system-prompt.md
plugins/
e2e-test-builder/
.claude-plugin/plugin.json
skills/
add-e2e-tests/SKILL.md
site-knowledge/
.claude-plugin/plugin.json
skills/...
The Two Catalogs
Plugin catalog: .claude-plugin/marketplace.json
{
"name": "athena-workflow-marketplace",
"owner": { "name": "lespaceman" },
"metadata": { "pluginRoot": "./plugins" },
"plugins": [
{ "name": "e2e-test-builder", "source": "e2e-test-builder", "description": "..." }
]
}With pluginRoot: "./plugins", the source is a subdirectory name. Without it, use a relative path.
Workflow catalog: .athena-workflow/marketplace.json
{
"workflows": [
{ "name": "e2e-test-builder", "source": "./.workflows/e2e-test-builder/workflow.json", "description": "..." }
]
}Caching
Marketplace repos are cloned to ~/.config/athena/marketplaces/<owner>/<repo>/. Athena pulls latest on each use. If offline, the cached version is used.
Hosting a Private Marketplace
Any GitHub repo with the correct structure acts as a marketplace:
your-marketplace/
.claude-plugin/marketplace.json
.athena-workflow/marketplace.json # optional
plugins/my-plugin/...
.workflows/my-workflow/... # optional
Reference as plugin-name@your-org/your-marketplace.