# Devin

Devin and chock: install methods and steps, what it can enforce, and the evidence behind it.

Install methods: plugin, sync. Agentseam tier block+rewrite, grade best-effort before a tool runs.

> Ask the user before running any command on this page: each one changes how their agent or repository behaves.

## Install methods

- Plugin: `chock install --client devin` (ask the user before running it)
- Repo hooks: `chock sync --repo . --agents devin` writes `.devin/hooks.v1.json` (ask the user before running it)

## Install steps

### Devin (devin)

State: tested.

The command (ask the user before running it: it builds a plugin of hooks that change how their agent behaves):

    chock install --selection <code> --client devin --apply

With --apply, chock runs these steps for Devin:

On Windows, `devin plugins install --local` creates a symbolic link, so it needs Developer Mode (Settings > System > For developers) or an elevated shell; otherwise it fails with "os error 1314: A required privilege is not held by the client".

    devin plugins install --local ~/.chock/marketplace/devin/chock-guardrails

The plugin is linked in place: a rebuild applies from the next Devin session.

## What it can enforce

- Tier: block+rewrite
- Grade before a tool runs: best-effort
- Fail mode before a tool runs: open
- Basis: vendor-docs
- Recorded: 2026-08-26

## Events

| Event | Can block | Can rewrite | Fail mode |
| --- | --- | --- | --- |
| pre_tool | yes | yes | open |
| post_tool | no | no | open |
| prompt_submit | yes | no | open |
| session_start | no | no | open |
| session_end | no | no | open |
| stop | yes | no | open |

## Ask support

Answers an ask with: block. Honours ask: no. Evidence: tested (tests/test_guard_fail_to_ask.py::test_a_crashed_guard_asks_rather_than_allowing).

## Hook timeout

Default 600 seconds, set by the timeout field in s.

Vendor source: https://docs.devin.ai/cli/extensibility/hooks/overview

## Test status

- Plugin (devin): tested.
- Repo hooks: untested. A test of the plugin says nothing about repo hooks.
- Through the plugin install, at hook point plugin-hook: Devin CLI 3000.11.3 (local session), Windows, 2026-10-08. live probe of a chock plugin installed with `devin plugins install --local`. `block-no-verify` and `chock-guardrails-protect` refused a shell command before it ran. `pin-github-actions` did not refuse the write itself. It refused only at turn end (stop). Chock's protection of its own files held (org-plan witness/results/witness-devin-2026-10-08.md, 0f06113)

## Known limits

Speaks Claude Code's hook format almost exactly, and reads .claude/settings.json for hooks by default -- so a repo with Claude Code hooks is already running them under Devin. A block is top-level {"decision": "block"}, not permissionDecision. There is no ask in the vocabulary. Non-zero exit codes other than 2 are logged without blocking, so this fails OPEN. A SessionStart payload is indistinguishable from Claude Code's, and detect() refuses to guess between them.


---

Built from engine [5a4b6287a46e](https://github.com/open-coder-ai/chock/commit/5a4b6287a46e07f9f856d9bbe10622bd1ff2e021) and catalog [1e60d211c1bb](https://github.com/open-coder-ai/chock-catalog/commit/1e60d211c1bb767152c6ab0167932da06ab3a10f).
