Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Native pre-tool-use hooks spread: gemini, windsurf, vscode, copilot now qualify -- probe and raise

Open
#48 0 comments 0 reactions 0 assignees View on GitHub

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

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

roadmap

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, including pre_mcp_tool_use.
  • VS Code (agent mode) -- Agent Hooks (Preview), permissionDecision: allow/deny/ask, discovered from .github/hooks/*.json and from Claude-format hook config.
  • Copilot CLI -- preToolUse hooks in .github/hooks/*.json with 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

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from open-coder-ai/chock

All issues in open-coder-ai/chock

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.