What’s in the marketplace
registry.feral.sh hosts eight categories of content that plug into any FERAL brain. Install any of them withferal install <id>.
| Category | What it is | Install location |
|---|---|---|
| Skill | Python skill (manifest + impl.py) callable by the agent as a tool. | ~/.feral/skills/<id>/ |
| Daemon | HUP-speaking hardware daemon (one per device class: wristband, glasses, thermostat, …). | ~/.feral/daemons/<id>/ |
| MCP server | MCP spec (command + env). FERAL spawns + talks to it over stdio or SSE. | ~/.feral/mcp_servers.json |
| Channel | Messaging-channel plugin (WhatsApp, Signal, Matrix, custom Telegram/Discord bots). | ~/.feral/channels/<id>/ |
| Provider | Alternative LLM provider (Groq, Bedrock, Ollama, Together, etc.). | ~/.feral/providers/<id>/ |
| Memory backend | Replacement for the default numpy/sqlite-vec memory (Chroma, Qdrant, Honcho…). Exactly one active at a time. | ~/.feral/memory-backends/<id>/ |
| Workflow pack | Named multi-step TaskFlow template (PR triage, standup composer, research assistant). | ~/.feral/workflows/<id>/ |
| Agent persona | Specialist system prompt + narrow tool permission list the AgentMitosisEngine spawns on demand. | ~/.feral/agents/<id>/ |
Install flow
GET https://registry.feral.sh/api/v1/item/<id>returns the manifest, signed-tarball URL, SHA-256, Ed25519 signature, and the publisher’s public key.- The client recomputes SHA-256 locally and verifies the detached signature against the publisher’s public key.
- On success, the tarball extracts to the right
~/.feral/<kind>/<id>/directory and pings the running Brain’s hot-reload endpoint (/api/skills/reload,/api/channels/reload,/api/providers/reload, …). - The new capability is live before your next turn.
Publish flow
manifest.json at the root. The required
fields for each kind are listed in
feral-registry/feral_registry/schemas.py
— the registry rejects a publish that’s missing required keys with a
clear error.
Trust model
- Every bundle is Ed25519-signed with the publisher’s private key. The signature is stored alongside the blob so clients can re-verify on every install.
- Publishers verify with GitHub OAuth. Your registry handle is your GitHub login. Your public key is registered once and reused for all future publishes.
verifiedbadge is earned by being in theFEATURED_PUBLISHERSallowlist maintained by the FERAL team. Everything else is community.flagendpoint lets anyone report a malicious package. Flags surface in moderation; repeat offenders lose publisher status.
Self-hosting the registry
The whole service is open source at feral-registry/. To run your own:FERAL_REGISTRY_URL=https://my-registry.example.com.