Skip to main content
Devin Desktop is Cognition’s rebrand of Windsurf — the IDE built around the Devin local-agent harness.

Quick Install

zenable install devin-desktop
See the CLI command reference for more options.
That’s it! You’re all set. Restart Devin Desktop and start using Zenable’s conformance checking. This installs both the MCP server and Devin Desktop hooks for real-time code checking.
The below is a minimal example which may need to be merged with your existing configuration. Consider using the quick install command to handle this automatically.
Place the following in ~/.config/devin/config.json (global) or .devin/config.json (project) — paths documented at docs.devin.ai/cli/extensibility/mcp/configuration:
{
  "mcpServers": {
    "zenable": {
      "type": "http",
      "url": "https://mcp.zenable.app/"
    }
  }
}
On Windows the global path is %APPDATA%\devin\config.json.
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.
Hooks run automatically to check for conformance issues. The quick install command sets this up for you.
Devin Desktop hooks are Claude-Code-compatible (same event names + payload shape) per docs.devin.ai/cli/extensibility/hooks/overview. Place the following in .devin/hooks.v1.json (project scope) — the recommended standalone hook file:
{
  "PreToolUse": [
    {
      "matcher": "*",
      "hooks": [
        {
          "type": "command",
          "command": "zenable hook || true"
        }
      ]
    }
  ],
  "PostToolUse": [
    {
      "matcher": "Bash",
      "hooks": [
        {
          "type": "command",
          "command": "zenable hook"
        }
      ]
    }
  ],
  "UserPromptSubmit": [
    {
      "hooks": [
        {
          "type": "command",
          "command": "zenable hook"
        }
      ]
    }
  ],
  "Stop": [
    {
      "hooks": [
        {
          "type": "command",
          "command": "zenable hook"
        }
      ]
    }
  ]
}
For global scope, place the same hooks object under a "hooks" key in ~/.config/devin/config.json (or %APPDATA%\devin\config.json on Windows) — see docs.devin.ai/cli/extensibility/hooks/lifecycle-hooks for the full event catalog.