Native pre-tool-use hooks spread: gemini, windsurf, vscode, copilot now qualify -- probe and raise
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 44/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- python
- Domain
- ai-infra-agents, security
Research direction
Start with src/chock/compile/surfaces.py and the coverage-honesty rules referenced in the issue. Probe each named client hands-on: install the hook, verify a matched command is blocked, an unmatched command passes, and record the observed fail posture. Only after verification, add the PRE_TOOL_USE entry, emitter or reuse, and per-client caveat; done means each claimed matrix row has probe evidence.
Written by the indexing model from the issue text.
Description
P3a research for #32 (2026-08-22) found that four more agents now ship native pre-tool-use hooks with deny capability, so SURFACE_AGENTS in src/chock/compile/surfaces.py understates what is reachable:
- Gemini CLI -- hooks system with
BeforeTool/BeforeToolSelection(block capable), enabled by default since v0.26.0. - Windsurf -- Cascade Hooks, workspace
.windsurf/hooks.json, exit-2 deny, includingpre_mcp_tool_use. - VS Code (agent mode) -- Agent Hooks (Preview),
permissionDecision: allow/deny/ask, discovered from.github/hooks/*.jsonand from Claude-format hook config. - Copilot CLI --
preToolUsehooks in.github/hooks/*.jsonwith structured deny. - Codex -- experimental, deny-only, shell-only, not available on Windows (track, do not claim).
Two of these (VS Code, Copilot CLI) read the Claude hook format directly, so the existing emitter output may already be consumable with little adapter work.
Acceptance path, per the coverage-honesty rules: no matrix row changes until each hook is witnessed working -- a hands-on probe per client (install, matched command blocked, unmatched command passes, fail posture observed and documented). Each verified client then gets its PRE_TOOL_USE entry, an emitter (or reuse), and the per-client caveat paragraph.
Sequencing relative to #32: probing these is cheaper and stronger than the MCP gateway for these four clients (native hooks see native tools; the gateway sees only MCP traffic). The gateway's unique slice narrows to agents without hooks (grok, tabnine, codex-on-Windows, kimi) plus gateway-first gate kinds (egress).
- Dominant language
- Python
- Stars
- 8
- Forks
- 1
- Avg merge
- 2h 48m
- Merged PRs (30d)
- 121
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from open-coder-ai/chock
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
open-coder-ai/chock#238 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
open-coder-ai/chock#231 ·
Maintainers usually reply within 1 day
-
good first issue help wanted
Difficulty 2/5 Half a day Newbie friendliness 85/100
open-coder-ai/chock#133 ·
Maintainers usually reply within 1 day
-
good first issue
Difficulty 3/5 Half a day Newbie friendliness 68/100
open-coder-ai/chock#132 ·
Maintainers usually reply within 1 day
-
good first issue
Difficulty 5/5 Over a week Newbie friendliness 45/100
open-coder-ai/chock#131 ·
Maintainers usually reply within 1 day
All issues in open-coder-ai/chock
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
PolicyEngine/policyengine-us#10262 ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
kellyjonbrazil/jc#788 ·
Maintainers usually reply within 2 days
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
`/search.json` ignores the documented `editions.sort` parameterPossibly taken @PranavD2905 claimed this today. OpenAffects: Server Good First Issue Module: Solr Needs: Triage Theme: Public APIs Theme: Search
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
internetarchive/openlibrary#13989 · 1 comment ·
Maintainers usually reply within 1 day
-
bug P2: misleading query
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
jeffknupp/association#478 ·