Claude Code
Claude Code gets a skill, five hooks and three allow rules. The skill makes Jevlin the default search; the hooks thread each search into the session's trajectory and allow exactly the command the skill renders, so a search runs without an approval prompt.
Install
Setup finds Claude Code when claude is on PATH and sets it up when you say yes to Set up the coding agents found on this machine now? The plan is shown first, with what made each agent count as present. Nothing is run to find out.
jevlin setup # sets up every agent it finds
jevlin setup -with claude # found or not
jevlin agents install -client claude # later, without the rest of setup
Restart any Claude Code session that was already open.
What is written
| path | what |
|---|---|
~/.claude/skills/jevlin/ | The skill: how to build the request, read the envelope, and what /jevlin does. Rendered for your OS and shell, with your paths filled in. |
~/.claude/settings.json | Five hooks: PreToolUse on the Bash and PowerShell tools threads each search into the turn, three track the context window, Stop flushes. Three permissions.allow rules, the single-quoted, quoted and bare spellings of the search command. Reinstalling replaces those rules rather than adding more. |
A hook of yours in the same group as Jevlin's stays where it is. Only Jevlin's handler is touched by agents install, uninstall and an upgrade's re-render.
Use it
Ask Claude Code anything that needs the web. The skill tells it to prefer this search over its built-in one, and it sends one JSON request on stdin:
/jevlin what changed in Vite 7's rollup migration
The slash commands the skill teaches:
| command | what it does |
|---|---|
/jevlin <question> | One search. Naming jevlin in an ordinary request does the same. |
/jevlin off, /jevlin on, /jevlin status | Whether this search or Claude Code's own is the default. |
/jevlin tier fast|balanced|max|default | The band every search carries unless a request names one. |
Claude Code runs Bash on macOS and Linux. On Windows the model picks Git Bash or PowerShell per call, so the skill teaches both forms. See Search from your agent and Choosing a band.
What to know
No approval prompt for the search. The hook prefixes the search with the trace, which an allow rule matched on how a command begins no longer matches, so the hook answers allow itself for exactly the search the skill renders. Any other spelling waits for approval, and a headless session refuses it.
The trace. Each search carries hashed session, turn and call ids, the context window after compactions, and the assistant text before the search, scrubbed. A subagent's search carries its parent's session id too. See Trajectory observability.
The turn end. With [miner] turn_end = true in your config, the Stop hook reports a turn in which a search was served: what you asked, the final message, each tool by name, duration and outcome, the model and the token counts. Never a tool's input or output. A turn Claude Code started itself, such as a loop tick or a compaction summary, is reported with its searches and no user text. See The turn end.
Known limits
- The turn end needs Claude Code 2.1.196 or later. Earlier versions give the hook no prompt id, so with
turn_endon they send no final answer. Searches are unaffected. - The sentence written just before a search does not travel. Claude Code records a message after the hook runs, so narration in the same message as the search is not in the trace. An earlier message of the turn does travel, and the ids are correct either way.
- On Windows, a search through the PowerShell tool asks for approval each time. It runs. What a PowerShell permission rule looks like is not established, so none is written. Searches through the Bash tool, with Git for Windows, are covered.
Remove
jevlin agents uninstall -client claude
Removes the skill, Jevlin's hooks and allow rules. A hook of yours in the same group stays. Your config, key and wallet are untouched; see Removing and coming back.