Skip to content

WASM plugins

Plugins add tools and event hooks. A bundle contains plugin.toml and a compiled WASM module. Filesystem and network access require manifest capabilities.

Installing a plugin

gdc plugins install ./plugin --wasm ./plugin/module.wasm
gdc plugins install ./plugin --scope project --wasm ./plugin/module.wasm
Scope Installation directory
user (default) ~/.gdc/plugins/<name>/
project <project>/.gdc/plugins/<name>/

The source argument accepts a directory or manifest path. The manifest's source must be a bare filename. --force replaces the existing installation directory.

Managing plugins

gdc plugins list
gdc plugins list --json
gdc plugins remove <name> --scope user

Removal requires a scope and exits with code 1 if the plugin is absent.

Trust and limits

[plugin.plugins.my-plugin]
enabled = true
trusted = false
call_timeout_secs = 30

Untrusted plugin tools require approval. Plugin hooks execute as configured by the operator. See Hooks and configuration.

Plugins vs. MCP servers

Property WASM plugin MCP server
Execution Inside the plugin runtime Child process or remote HTTP service
Package Manifest and WASM module Command or URL
Access controls Manifest capabilities and tool permissions Server trust and tool permissions

Writing your own

Ask your gdc supplier for the plugin authoring guide and SDK. Plugin development requires a separate toolchain to compile a wasm32-wasip1 module. Bundle it with its manifest and install it using the commands above.