Plugins
Extend Hermes with tools, skills, and UI panels.
Plugins are TypeScript modules. There is no plugin DSL, no proprietary manifest format, no install step beyond putting a file in plugins/.
Plugin shape
import type { Plugin } from "@/lib/hermes/types";
export default {
name: "github",
version: "0.1.0",
tools: [
{
name: "github.search",
description: "Search public GitHub repos.",
args: { q: { type: "string" } },
run: async ({ q }) => {
const r = await fetch(`https://api.github.com/search/repositories?q=${encodeURIComponent(q)}`);
return r.json();
},
},
],
} satisfies Plugin;
Capabilities
A plugin can register:
- Tools — callable by the planner.
- Skills — composable, typed capabilities.
- Triggers — workflow inputs.
- Panels — optional UI surfaces under
/projects/:id.
Permissions
When a plugin requires sensitive permissions (wallet.sign, fs.write, terminal.exec), Hermes prompts the user on first use. Approvals are scoped per project.