o_(◉) monocle TUI to Review your AI agent’s code as it writes it. I’ve been using Claude Code a lot lately, and the more I let it drive, the more I noticed a gap in my workflow: there’s no seamless way to actually review what it’s writing while it’s writing it. The options right now aren’t amazing. You can just rubber-stamp the diffs at the end (not great, definitely leads to issues), try and reference files and line numbers manually in the chat window (tedious), or just trust that the agent got it right. If you want to say “these three specific things are wrong, fix them and show me again,” you’re basically doing it manually. So I built Monocle : a terminal UI that gives you a proper review loop with Claude Code. You see diffs in real-time, leave file-level or line-level comments (issues, suggestions, notes, praise), submit your review, and the agent gets your feedback immediately. Then you see the updated diffs, review again, iterate. Like doing PR reviews, but live, while the code is being written. You can even ask the agent to pause its work and wait for you to finish your review before proceeding. Abusing newly announced MCP channels Anthropic just shipped Claude Code Channels a couple days ago. The headline feature is Telegram and Discord integration, so you can message your agent from your phone, get results back. That’s cool and all for the OpenClaw crowd, but it’s not what caught my attention. What’s interesting about channels is the underlying primitive: a channel is an MCP server that can push events into a running Claude Code session. Normal MCP servers are passive, they sit there until Claude calls a tool on them. Channels invert that. They can fire events and make tool calls into Claude’s context whenever they want, without Claude having to ask. Everyone will end up using this to build chat bridges to messaging apps. But the moment I read the spec, I knew I could solve on of the frustrating parts of my workflow with Claude. I’m using it to push structured code review feedback directly into the agent’s context, without any tmux hackery. The MCP channel server sits between Claude Code and the Monocle TUI, connected via a Unix socket. When you submit a review in Monocle, it pushes a structured notification through the channel directly into Claude Code’s context. Claude doesn’t have to poll for it. This is the key thing that makes the review loop feel natural. The agent keeps working while you review at your own pace. When you submit, it gets your comments immediately and starts addressing them. And if you want it to stop and wait, press P — it receives a pause notification and blocks until your review is ready. Not just diffs (still a bit WIP, the flow isn’t as smooth) One thing I added that I’ve found really useful: Claude Code can submit plans and architecture decisions to Monocle for review before writing code. These show up in the sidebar alongside file diffs, rendered as markdown, and you can leave line-level comments on them the same way. It even uses a custom markdown parser and renderer so your markdown plans look stylish and easy on the eyes as you review. So the workflow becomes: ask Claude Code to plan first, review the plan in Monocle, leave feedback on the parts you disagree with, and only then let it start implementing. Reviewing the thinking, not just the output. What it looks like in practice The TUI gives you a file tree, unified or split diffs with syntax highlighting, vim-style navigation, visual line selection for comments, and all the stuff you’d expect from a diff viewer. Comments are structured — you tag each one as an issue, suggestion, note, or praise, and they get formatted into a review that Claude can parse cleanly. There’s also session persistence (SQLite), configurable keybindings, a ref picker to change your comparison base, comment resolution, submission history, and responsive layout that stacks panes vertically when your terminal is narrow. Getting started Install with Homebrew: brew install josephschmitt/tap/monocle Or go install: go install github.com/josephschmitt/monocle/cmd/monocle@latest Then register it as a channel: monocle install And start Claude Code with the development channels flag (needed during the research preview): claude --dangerously-load-development-channels server:monocle Run monocle in another terminal and you’re reviewing. The whole thing is written in Go, MIT licensed, and the source is at github.com/josephschmitt/monocle . If you’re using Claude Code for anything non-trivial and want more control over what it produces without slowing it down, give it a shot. Feedback and issues welcome. I’ll be interested to hear if anyone else finds this workflow as smooth and useful as I do. submitted by /u/josephschmitt
Originally posted by u/josephschmitt on r/ClaudeCode
