Marketplace
The IronShell Marketplace is a registry for sharing and discovering pre-built AI agents.
Browsing
Search
# Search for agents
marketplace_search "code review"
# [
# { name: "code-reviewer", author: "ironshell", version: "1.0.0", downloads: 500 },
# { name: "pr-analyzer", author: "community", version: "0.8.0", downloads: 120 },
# ...
# ]
The web dashboard provides a visual marketplace browser at the Marketplace tab with filtering, sorting, and one-click installation.
API Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/marketplace/search?q=... | Search agents |
| GET | /api/v1/marketplace/agents | List all agents |
| POST | /api/v1/marketplace/install | Install an agent |
| POST | /api/v1/marketplace/uninstall | Uninstall an agent |
| POST | /api/v1/marketplace/publish | Publish an agent |
Installing Agents
marketplace_install "code-reviewer"
marketplace_install "code-reviewer" "1.0.0" # Specific version
marketplace_install downloads the package’s archive from the registry into
the package cache and unpacks it. Nothing in the package is run, and links
inside the archive are refused. A package the registry does not hold is
E_NOT_FOUND; there is no fallback to the local catalogue, which holds
records but no archives.
Integrity: the archive must match the registry’s SHA-256 digest (64 hex digits) before anything is written. A package with no digest, or a digest of any other shape, MD5 included, is refused with a coded error. The digest comes from the same registry as the archive, so it detects corruption and truncation in transit only. It does not detect a compromised registry. Packages are not signed and no publisher keys are checked; there is no signing scheme yet.
Names: an agent name and version are one path segment: ASCII letters, digits,
-, _ and ., not starting with . or -. A / is refused, so scoped
names are not supported. A refused name is E_BAD_ARG; through the API it is
HTTP 400.
Via the API:
curl -X POST http://localhost:3000/api/v1/marketplace/install \
-H "Content-Type: application/json" \
-d '{"name": "code-reviewer", "version": "1.0.0"}'
Uninstalling
marketplace_uninstall "code-reviewer"
Publishing
Share your agents with the community:
marketplace_publish {
name: "my-agent",
description: "Analyzes Rust code for common patterns",
system_prompt: "You are an expert Rust developer...",
tools: ["cat", "grep", "ls"],
model: "openai:gpt-4o-mini",
tags: ["rust", "code-analysis"]
}
Via the Dashboard
- Open the Marketplace tab
- Click Publish Agent
- Fill in the form: name, description, system prompt, tools, model
- Click Publish
Agent Structure
Marketplace agents include:
| Field | Description |
|---|---|
name | Unique agent identifier |
description | What the agent does |
author | Publisher name |
version | Semantic version |
system_prompt | Agent’s system instructions |
tools | Allowed builtin tools |
model | Recommended model URI |
tags | Category tags for discovery |
downloads | Download count |
stars | Community rating |
Local Registry
The RegistryClient manages local state:
- Search: Full-text search against the registry (local fallback when offline)
- Install: Downloads agent config and registers locally
- Cache: Installed agents stored in
~/.ironshell/marketplace/
Dashboard Integration
The web dashboard’s Marketplace page provides:
- Search bar with real-time results
- Category filtering and sorting
- Install/Uninstall buttons with loading states
- Publish dialog with form validation
- Agent cards showing name, description, version, downloads, and verified badges