> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zenable.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Goose

> Set up the Zenable integration in Goose — MCP server plus hooks — to enforce AI coding guardrails and conformance checks as the agent writes code.

## Quick Install

```bash theme={null}
zenable install goose
```

<Note>See the [CLI command reference](/integrations/zenable/commands#install) for more options.</Note>

**That's it! You're all set.** Start using Zenable's conformance checking in Goose.

Goose is an open-source AI agent (CLI + desktop), an [Agentic AI Foundation (AAIF) project](https://aaif.io/projects/goose/). `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.

***

<Accordion title="Advanced: Manual MCP Configuration" icon="wrench">
  <Note>The below is a minimal example. Consider using the quick install command to handle this automatically.</Note>

  Goose stores MCP servers under the top-level `extensions` key, using `type: streamable_http` for streamable-HTTP servers. Goose's MCP config is global. See [Goose's extensions docs](https://goose-docs.ai/docs/getting-started/using-extensions/?utm_source=zenable_docs\&utm_medium=web) for the full schema.

  Place the following in `~/.config/goose/config.yaml`:

  ```yaml theme={null}
  extensions:
    zenable:
      type: streamable_http
      name: zenable
      uri: https://mcp.zenable.app/
      description: Zenable governance, guardrails, and conformance checks
      enabled: true
  ```

  <Note>Goose requires `name` and `description` on a `streamable_http` extension — without them Goose silently skips the entry.</Note>

  <Warning>We only recommend this manual approach if you can't use `zenable install`. Otherwise, `zenable install` is much safer and can handle configuration upgrades over time, handles merges with existing configs, performs backups and logging in case of issues, and more.</Warning>
</Accordion>

<Accordion title="How the hooks work" icon="bolt">
  Goose's documented hooks surface is the [Open-Plugin-Spec](https://goose-docs.ai/blog/2026/05/14/goose-hooks/?utm_source=zenable_docs\&utm_medium=web) plugin format. `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 the message back to the agent — findings to fix, or a prompt to sign in when the review could not run — instead of ending the turn.

  <Note>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 message to the agent is silently dropped, so `zenable install goose` enforces this minimum.</Note>

  The plugin file is fully managed — every `zenable install` / `zenable sync` rewrites it. If you want to add your own Goose plugins, drop a separate plugin alongside it under `~/.agents/plugins/`.
</Accordion>
