Extension System
The Radium extension system allows you to package and share reusable agent configurations, MCP servers, custom commands, and hooks. Extensions enable the community to share workflows, tools, and configurations.
Quick Startβ
Installing an Extensionβ
Install an extension from a local directory:
rad extension install ./my-extension
Install from a URL:
rad extension install https://example.com/extensions/my-extension.tar.gz
Install from an archive file:
rad extension install ./my-extension.tar.gz
Listing Installed Extensionsβ
rad extension list
Getting Extension Informationβ
rad extension info my-extension
Searching Extensionsβ
Search locally installed extensions:
rad extension search "github"
Search marketplace extensions:
rad extension search "github" --marketplace-only
Search both local and marketplace:
rad extension search "github"
Browsing Marketplaceβ
Browse popular extensions from the marketplace:
rad extension browse
Creating a New Extensionβ
rad extension create my-extension --author "Your Name" --description "My extension description"
Uninstalling an Extensionβ
rad extension uninstall my-extension
Installing from Marketplaceβ
Install an extension directly from the marketplace by name:
rad extension install marketplace-extension-name
Signing and Verifying Extensionsβ
Sign an extension:
rad extension sign ./my-extension --generate-key
Verify an extension signature:
rad extension verify my-extension
Publishing to Marketplaceβ
Publish your extension to the marketplace:
rad extension publish ./my-extension --api-key YOUR_API_KEY
Advanced Installation Optionsβ
Install with automatic dependency resolution:
rad extension install ./my-extension --install-deps
Overwrite an existing extension:
rad extension install ./my-extension --overwrite
JSON Outputβ
All commands support JSON output for scripting:
rad extension list --json
rad extension info my-extension --json
rad extension search "query" --json
Verbose Listingβ
Get detailed information about all extensions:
rad extension list --verbose
What are Extensions?β
Extensions are packages that can contain:
- Prompts: Agent prompt templates that can be used by the agent system
- MCP Servers: Model Context Protocol server configurations
- Commands: Custom CLI commands that extend Radium functionality
- Hooks: Native libraries or WASM modules that customize agent behavior
Extension Structureβ
Extensions follow a standard directory structure:
my-extension/
βββ radium-extension.json # Extension manifest (required)
βββ prompts/ # Agent prompt templates (optional)
β βββ *.md
βββ mcp/ # MCP server configurations (optional)
β βββ *.json
βββ commands/ # Custom commands (optional)
β βββ *.toml
βββ hooks/ # Hook configurations (optional)
β βββ *.toml
βββ README.md # Extension documentation (recommended)
Installation Locationsβ
Extensions can be installed in two locations:
- User-level:
~/.radium/extensions/- Available to all projects - Project-level:
.radium/extensions/- Specific to the current workspace
Project-level extensions take precedence over user-level extensions.
Documentationβ
- User Guide - Complete guide to using extensions
- Quickstart Guide - Get started in 10 minutes
- Creating Extensions - Guide for extension authors
- Publishing Guide - How to publish to the marketplace
- Marketplace Guide - Discover and use marketplace features
- API Reference - Complete API documentation for developers
- Integration Guide - How to integrate the extension system
- Architecture - Technical architecture documentation
Examplesβ
See the examples directory for sample extensions demonstrating different use cases.
Troubleshootingβ
Extension Not Foundβ
If an extension isn't being discovered:
- Verify the extension is installed:
rad extension list - Check the manifest file exists:
radium-extension.json - Ensure the extension name matches exactly (case-sensitive)
Installation Errorsβ
Common installation issues:
- Invalid manifest: Check that
radium-extension.jsonis valid JSON and contains all required fields - Version format: Version must follow semantic versioning (e.g.,
1.0.0) - Name format: Extension names must be alphanumeric with dashes/underscores only, and start with a letter
- Path conflicts: Use
--overwriteflag if installing over an existing extension
Component Not Loadingβ
If extension components aren't being discovered:
- Verify component directories exist and contain files
- Check glob patterns in manifest match actual file paths
- Ensure file formats are correct:
- Prompts:
.mdfiles - MCP servers:
.jsonfiles - Commands:
.tomlfiles - Hooks:
.tomlfiles
- Prompts:
For more help, see the troubleshooting section in the creating extensions guide.