Expand description
Plugins, compatible with hob’s: a folder with a hob-plugin.json (or
byob-plugin.json) that adds any mix of
- skills (
skills/<name>/SKILL.md, the Agent Skills format) →skills,UseSkillTool,skills_prompt; - Python tools (
tools[].run) →python::PythonTool; - subagents (
agents/*.md, Claude Code’s format) →agents; - connectors (
mcpServers, MCP) →connectors::ConnectorToolAdapterover theconnectors::Connectortrait, whichbyob-mcp’s client implements.
Typical use by the agent:
- [
discover] the plugin folders; showerrorsand each plugin’sproblems. - Reserve the built-in tool names in a
ToolNames, then add each active plugin’spython_toolsand, permcpServersentry,connector_tools. - Add
UseSkillTooloverDiscovery::skillsand putskills_promptandDiscovery::promptin the system prompt.
Re-exports§
pub use agents::AgentDef;pub use agents::load_agents_dir;pub use agents::merge_agents;pub use agents::parse_agent;pub use connectors::Connector;pub use connectors::ConnectorContent;pub use connectors::ConnectorDraft;pub use connectors::ConnectorResult;pub use connectors::ConnectorTool;pub use connectors::ConnectorToolAdapter;pub use connectors::connector_tools;pub use connectors::parse_connector;pub use discover::Discovery;pub use discover::Plugin;pub use discover::PluginSources;pub use discover::discover;pub use discover::load_plugin;pub use manifest::MANIFEST;pub use manifest::MANIFEST_ALIAS;pub use manifest::Manifest;pub use manifest::ManifestError;pub use manifest::McpServerConfig;pub use manifest::parse_manifest;pub use names::ToolNames;pub use python::PythonTool;pub use python::default_python;pub use python::python_tools;pub use python::python_tools_in;pub use python::run_script_sandboxed;pub use python::run_script_unsandboxed;pub use skills::SaveSkillTool;pub use skills::Skill;pub use skills::UseSkillTool;pub use skills::load_skills_dir;pub use skills::skills_prompt;
Modules§
- agents
- Subagent definitions: Markdown files with YAML frontmatter, compatible with Claude Code’s
.claude/agents/*.md. The frontmatter hasname,description, optionaltools(a comma list or a YAML list) and optionalmodel; the body is the subagent’s system prompt. Unknown keys (color,permissionMode, …) are kept inAgentDef::metaand otherwise ignored, so files written for Claude Code load unchanged. - connectors
- Connectors: MCP servers a plugin declares (or the user pastes), adapted into
byob_tools::Tools. - discover
- Finding plugins on disk: folders with a
hob-plugin.json(orbyob-plugin.json), theirskills/*/SKILL.md, and checks that declared scripts exist. Nothing here is fatal: a broken plugin becomes aLoadErrorand the rest still load. - manifest
hob-plugin.json(aliasbyob-plugin.json): the plugin manifest.- mcp
Connectorbacked by thebyob-mcpclient: how pluginmcpServersbecome live tools.- names
- Tool names every OpenAI-compatible server accepts:
[a-zA-Z0-9_-]{1,64}, unique. - python
- A plugin’s declared Python tools (
tools[].run): the model’s arguments go to the script as JSON on stdin; what it prints (plain text, or{"text": …, "files": […]}) goes back. Settings arrive as environment variables, plusHOB_CHAT_DIRandHOB_PLUGIN_DIR(andBYOB_*aliases). - skills
- Agent Skills (
skills/<name>/SKILL.md): frontmatter + Markdown steps, as in hob, Claude and Codex. Only names and one-line descriptions go in the system prompt (skills_prompt); the model loads the full text with theUseSkillTool.