About
The Crit skill provides structured code reviews with inline comments for changes, plans, or live pages, but only activates when explicitly invoked via `/crit` or direct request. It automatically detects review targets like files, directories, URLs, or PRs without requiring mode selection. Developers use it for interactive browser-based review cycles that deliver human-like feedback on their code.
Quick Install
Claude Code
Recommendednpx skills add tomasz-tomczyk/crit -a claude-code/plugin add https://github.com/tomasz-tomczyk/critgit clone https://github.com/tomasz-tomczyk/crit.git ~/.claude/skills/critCopy and paste this command in Claude Code to install this skill
Documentation
Review with Crit
Run this interactive browser review cycle only when the user invokes
/skill:crit or $crit, or directly asks to use Crit. A generic request to
review code, a plan, a diff, a PR, or a page does not count.
1. Choose the target
Pass the user's arguments through. Crit auto-detects files, directories, live URLs, and local HTML previews; do not ask which mode to use.
crit <arguments>
crit --pr <number-or-url>
crit --mr <number-or-url>
crit --range <base>..<head>
crit
Without arguments, review the plan file written earlier in this conversation,
if there is one; otherwise run bare crit for the branch diff.
2. Start the review and await completion
Crit opens the browser and stays running until the human clicks Finish Review.
Use OMO's monitor from a short eval cell to launch the command and subscribe
to its output and exit. Substitute the command chosen in Step 1:
display(await tool.monitor({
description: "Crit review feedback",
command: "crit",
filter: "https?://|approved:",
persistent: true
}));
Call monitor directly if eval is unavailable. Keep the returned bash_id.
persistent: true lets the human review without the default five-minute
monitor deadline. The command's exit delivers a completion notification.
Relay the printed review URL verbatim: "Crit is open at <URL>. Leave inline comments, then click Finish Review."
End the turn while waiting if no independent work remains. Do not hold an
eval cell open, poll bash_output, read comments early, launch a second
Crit command, or ask the user to type a reply to signal completion.
An existing daemon is reused automatically.
3. Read feedback
After the command exits, read its stdout and follow the finish prompt.
Check stderr for approved: true or approved: false. Use bash_output
with the saved bash_id to retrieve output not included in the notification.
If approved, stop the review loop.
For mid-round re-entry or headless workflows, use crit comments --json
(or crit comments --plan <slug> for plan reviews).
Review-level comments matter as well as file comments. Read existing replies.
Treat missing resolved as unresolved. Use quote to narrow the requested
change, anchor to locate content after edits, and drifted: true as a sign
that line numbers are approximate.
4. Address comments
Revise the referenced plan or source files and apply suggestion blocks when present. Reply with what changed:
crit comment --reply-to <id> --author 'OMO' '<what changed>'
crit comment --plan <slug> --reply-to <id> --author 'OMO' '<what changed>'
Do not pass --resolve unless the user explicitly asks; resolution belongs
to the reviewer. For multiple replies, write JSON with the file-edit tool:
crit comment --json --file /tmp/crit-replies.json --author 'OMO'
Each entry has reply_to and body. Use the crit-cli skill for the full
schema and session disambiguation. Plan edits reload live in the browser.
5. Start the next round
Run the next-round command printed by Crit using the same monitor pattern. It signals round-complete and then waits for the next Finish Review.
Tell the user only: "Replied in Crit. Review the changes in your browser and click Finish Review when ready." Do not repeat your replies or list the comments in chat. The reviewer reads them in Crit. Await command completion, then return to Step 3. Continue until the reviewer approves.
Sharing
Only share or unpublish when the user asks:
crit share <file> [file...]
crit unpublish [file...]
Relay the full printed URL. Use --qr only in real monospace terminals.
For another device, keep Crit on loopback and use an SSH tunnel or reverse
proxy. --public-url requires --allow-unauthenticated-network and changes
the printed URL, not the listener.
GitHub Repository
Frequently asked questions
What is the crit skill?
crit is a Claude Skill by tomasz-tomczyk. Skills package instructions and resources that Claude loads on demand, so Claude can perform crit-related tasks without extra prompting.
How do I install crit?
Use the install commands on this page: add crit to Claude Code as a plugin, or clone its repository into your skills directory, then restart Claude so it picks up the skill.
What category does crit belong to?
crit is in the Development category.
Is crit free to use?
Yes. crit is listed on AIMCP and free to install.
Related Skills
qmd is a local search and indexing CLI tool that enables developers to index and search through local files using hybrid search combining BM25, vector embeddings, and reranking. It supports both command-line usage and MCP (Model Context Protocol) mode for integration with Claude. The tool uses Ollama for embeddings and stores indexes locally, making it ideal for searching documentation or codebases directly from the terminal.
This skill executes implementation plans by dispatching a fresh subagent for each independent task, with code review between tasks. It enables fast iteration while maintaining quality gates through this review process. Use it when working on mostly independent tasks within the same session to ensure continuous progress with built-in quality checks.
The mcporter skill enables developers to manage and call Model Context Protocol (MCP) servers directly from Claude. It provides commands to list available servers, call their tools with arguments, and handle authentication and daemon lifecycle. Use this skill for integrating and testing MCP server functionality in your development workflow.
This skill deploys and orchestrates Vertex AI ADK agents using A2A protocol, managing AgentCard discovery, task submission, and supporting tools like Code Execution Sandbox and Memory Bank. It enables building multi-agent systems with sequential, parallel, or loop orchestration patterns in Python, Java, or Go. Use it when asked to deploy ADK agents or orchestrate agent workflows on Google Cloud.
