Re-add Crush models with --thinking and subscribe hooks to session, turn, and permission events
Crush v0.99.0 speaks Catwalk v3, auto-migrates provider types, and lets hooks follow the whole run. Re-add models with --thinking and --max-attachments, subscribe hooks to session/turn/permission/compaction plus PostToolUse events, and use piped permissions with SIGHUP reload if you host Crush.Why this loop
Provider type now names the API format (completions, responses, messages), not the vendor; existing openai, openai-compat, and anthropic configs keep working because they migrate on load. New models must use --thinking always|never|toggleable instead of --can-reason, and can set --max-attachments. Hooks are no longer tool-only: they can follow sessions, turns, permissions, compaction, PostToolUse, and PostToolUseFailure, and unknown event names are rejected against the known list, with docs mapping each event to Claude Code. Hosts can theme the TUI, inject open-file context into completions, append text to the next prompt, see which session other clients view, and set CRUSH_PERMISSIONS_PIPED=1 so permission prompts are not asked twice. SIGHUP reloads config instead of stopping the server, http:// aliases tcp://, and shutdown now saves in-progress work. Acting on the new flags and lifecycle hooks is the workflow change; Catwalk v3 itself needs no extra config.
Proposed actions
- For each custom Crush model, stop passing --can-reason and re-run: crush model add <provider>/<model> --thinking toggleable --max-attachments 5 (use always or never if you do not want a picker toggle; reasoning levels now show names like X-High)
- Add providers by API format, not vendor. OpenAI-compatible: crush provider add <name> --type completions --base-url "<url>" --api-key "$API_KEY" Use --type responses for OpenAI or anything routed through it, and --type messages for Anthropic-compatible APIs. Existing openai/openai-compat/anthropic entries migrate on load.
- Update Crush hooks from tools-only to the documented lifecycle events: sessions, turns, permissions, compaction, PostToolUse, and PostToolUseFailure. Match the Claude Code event mapping in the Crush docs exactly—unknown event names are now rejected at load.
- If an editor or service hosts Crush, export CRUSH_PERMISSIONS_PIPED=1 so the host answers permission prompts once, push open files as host context so they appear in completions, and append text to the next prompt over the server API instead of starting a run or cluttering chat.
- After editing Crush config on a running server, reload without dropping work: kill -HUP <crush-pid> SIGHUP reloads config instead of stopping; http:// is accepted as a tcp:// alias when starting the server.
Agent prompt
Paste into your agent or query via MCP (get_agent_prompt) — free, no extra AI costAGENTS.md / CLAUDE.md / GEMINI.md rule update
DevAgentRadar → Repo Harness Rule Patch
Goal: update our repository's permanent harness instructions based on this release.
Update the file that tool actually reads. Do not dump everything into one file.
- Claude Code → CLAUDE.md plus
.claude/(skills, hooks, settings, agents, commands). It does not read AGENTS.md natively; start CLAUDE.md with@AGENTS.md. - Codex, Copilot, Cursor, Factory Droid, Grok Build, Roo Code, Goose, OpenCode, Amp, Zed, Aider → AGENTS.md.
- Gemini CLI / Antigravity → GEMINI.md. AGENTS.md only if
context.fileNameis set. - Cursor glob-scoped rules →
.cursor/rules/*.mdc(plain.mdis ignored), not a second constitution. - Codex MCP →
.codex/config.toml, not.mcp.json. - Copilot extra instructions →
.github/copilot-instructions.md; custom agents →.github/agents/. - Windsurf →
.windsurf/rules(do not assume AGENTS.md). - Cline →
.clinerules. - Procedures → a skill (
SKILL.md). Enforcement the model must not skip → a hook. Isolated roles → subagents. - Do not fork the same rule into three tool files.
Context
Assistant: Crush Proposal: Re-add Crush models with --thinking and subscribe hooks to session, turn, and permission events Summary: Crush v0.99.0 speaks Catwalk v3, auto-migrates provider types, and lets hooks follow the whole run. Re-add models with --thinking and --max-attachments, subscribe hooks to session/turn/permission/compaction plus PostToolUse events, and use piped permissions with SIGHUP reload if you host Crush. Primary source: https://github.com/charmbracelet/crush/releases/tag/v0.99.0
Why it matters
Provider type now names the API format (completions, responses, messages), not the vendor; existing openai, openai-compat, and anthropic configs keep working because they migrate on load. New models must use --thinking always|never|toggleable instead of --can-reason, and can set --max-attachments. Hooks are no longer tool-only: they can follow sessions, turns, permissions, compaction, PostToolUse, and PostToolUseFailure, and unknown event names are rejected against the known list, with docs mapping each event to Claude Code. Hosts can theme the TUI, inject open-file context into completions, append text to the next prompt, see which session other clients view, and set CRUSH_PERMISSIONS_PIPED=1 so permission prompts are not asked twice. SIGHUP reloads config instead of stopping the server, http:// aliases tcp://, and shutdown now saves in-progress work. Acting on the new flags and lifecycle hooks is the workflow change; Catwalk v3 itself needs no extra config.
Suggested actions
- For each custom Crush model, stop passing --can-reason and re-run: crush model add <provider>/<model> --thinking toggleable --max-attachments 5 (use always or never if you do not want a picker toggle; reasoning levels now show names like X-High)
- Add providers by API format, not vendor. OpenAI-compatible: crush provider add <name> --type completions --base-url "<url>" --api-key "$API_KEY" Use --type responses for OpenAI or anything routed through it, and --type messages for Anthropic-compatible APIs. Existing openai/openai-compat/anthropic entries migrate on load.
- Update Crush hooks from tools-only to the documented lifecycle events: sessions, turns, permissions, compaction, PostToolUse, and PostToolUseFailure. Match the Claude Code event mapping in the Crush docs exactly—unknown event names are now rejected at load.
- If an editor or service hosts Crush, export CRUSH_PERMISSIONS_PIPED=1 so the host answers permission prompts once, push open files as host context so they appear in completions, and append text to the next prompt over the server API instead of starting a run or cluttering chat.
- After editing Crush config on a running server, reload without dropping work: kill -HUP <crush-pid> SIGHUP reloads config instead of stopping; http:// is accepted as a tcp:// alias when starting the server.
Config surfaces this release may change
- permission rules — check your repo before applying
After you finish
Do not report this as applied to DevAgentRadar. You cannot write the visitor's loop.
Tell the human: open https://devagentradar.com/proposals/crush-v0-99-0-re-add-crush-models-with-thinking-and-subscribe-hooks-to-s and mark Applied, Skipped, or Failed. Proposal id: a9f95e24-9ee6-4673-a8c7-3976851218b1
Instructions:
- Read the existing context files and settings for the tools in this repo.
- Draft an explicit Git diff. Update ONLY agent harness rules or tool configuration.
- Call out deprecated flags, obsolete habits, or changed permission boundaries.
- Do not touch application logic.
Start with the proposed diff and say which layer and which tool's file it belongs in.
Your loop
This browser · no sign-in · not shared as “you”After you run the prompt
Only you can mark this. Agents cannot write your loop.
Your decision stays on this device. A public tally appears after a few votes.