Quick Install
See the CLI command reference for more options.
zenable install goose installs both the MCP server (in your Goose config.yaml) and a managed Open-Plugin-Spec plugin that runs Zenable’s conformance checks throughout your coding session.
Advanced: Manual MCP Configuration
Advanced: Manual MCP Configuration
The below is a minimal example. Consider using the quick install command to handle this automatically.
extensions key, using type: streamable_http for streamable-HTTP servers. Goose’s MCP config is global. See Goose’s extensions docs for the full schema.Place the following in ~/.config/goose/config.yaml:Goose requires
name and description on a streamable_http extension — without them Goose silently skips the entry.How the hooks work
How the hooks work
Goose’s documented hooks surface is the Open-Plugin-Spec plugin format. The plugin file is fully managed — every
zenable install goose writes a managed plugin (at ~/.agents/plugins/zenable/hooks/hooks.json, with a .plugin/plugin.json manifest) that integrates Zenable’s governance, guardrails, and observability across your coding sessions. The plugin can live globally (~/.agents/plugins/) or project-scoped (<repo>/.agents/plugins/).The plugin subscribes to the UserPromptSubmit, PreToolUse, PostToolUse, and Stop events — checkpointing your work as you go and running a Zenable conformance review when the agent finishes a turn. On the Stop event, Zenable returns a blocking decision so Goose feeds any findings back to the agent (so it can fix them) instead of ending the turn.Hooks require Goose v1.37.0 or newer — that’s the release that honors blocking
Stop hook decisions. On older Goose the review still runs but its findings are silently dropped, so zenable install goose enforces this minimum.zenable install / zenable sync rewrites it. If you want to add your own Goose plugins, drop a separate plugin alongside it under ~/.agents/plugins/.