Extending
Crystal Code is built to be changed in code. This section documents the extension points that exist today, the references a plugin or tool set may use, and the boundaries the host keeps.
Plugins
Plugins
One directory, one plugin.json, one assembly in its own load context.
ContractPlugin contract
IPlugin, PluginContribution, attach phases, and the interfaces a plugin may implement.
HooksHooks, raw hooks, and loading
Tool pipelines, privileged raw hooks, and load-context rules.
Tool setsExternal tools
One directory, one tools.json, one runner, and the Plan and Work catalogs.
ExecExec tool sets
Stdin JSON, argv, content output, and the process contract.
.NETDotnet tool sets
Native text and multimodal tools loaded in an isolated context.
PromptsPrompts and instructions
Prompt slots, prompt sets, attachments, and workspace instructions.
SkillsSkills
OpenCode-compatible instruction folders loaded on demand.