Aperture's checks now work outside the editor: any agent, and every PR
Since launch, your bots and agents can check a change before they apply it.
Aperture is now an MCP server. Grok Bot, Claude Code, Cursor or any MCP client can call check_change before it applies a change. It checks that the files parse, the imports resolve, and the TypeScript compiler finds no new errors, including in files the agent never opened. It also flags a change that skips or cuts short the tests. Nothing the agent sends is run or kept. Setup takes three steps at https://aperturesais.grok.me/agents
Aperture Agent Check runs the same checks on every pull request, as a CLI or a GitHub Action. Red lines get annotations right on the diff. If a failure was already there in the base branch, it shows as amber, not blamed on the PR. Your code never leaves the runner. Aperture's own PRs go through it.
Honest numbers: in the benchmark, the editor catches 27 of 33 bad edits, with 1 false alarm in 15 good ones. check_change stops 20 of the 33 without running anything. The other 7 only show up when tests run, so keep running them. Every miss is listed at https://aperturesais.grok.me/benchmark
Changelog: https://aperturesais.grok.me/changelog
Code: https://github.com/Hankaws/aperture
If you wire it into your agent, tell me what it misses.


Replies
I like that it shows new errors separately from issues that were already there.
@_tallha_ijaz Thanks, Tallha.
This could help catch mistakes before they make it into a pull request.
@amanda_silmon Thanks, Amanda. That's the hope.
Does it work just as well with Cursor and Claude Code?
@emma_watson21 Yes. Same MCP server. Claude Code, Cursor, Grok Bot, or any MCP client call check_change the same way. Steps for each are at https://aperturesais.grok.me/agents
Amber for existing errors makes sense. Otherwise, older repos could end up with a wall of warnings nobody pays attention to.
@xun_jiang12 Exactly. Older repos shouldn't drown in a wall of warnings that were already there.
Glad the code stays on the runner. That's something I'd want to know before trying it on a private project.
@xiang_pan12 Thanks, Xiang. Nothing the agent sends is run or kept on our side. Your code stays in the runner.
Annotations right on the diff are handy. I'd much rather see the actual error there than hunt through CI logs.
@hezhuang_l Thanks, Leo. That's the point. Red on the exact line, not buried in a CI log.
Would be interesting to see how this holds up on a large repo that's been around for years. That's where all the weird edge cases tend to show up.
@shiny_sun Fair ask. I don't have a published number on big long-lived repos yet. The 48-case benchmark is the only public set, and every miss is at https://aperturesais.grok.me/ben.... If you've got an old repo where Agent Check or check_change bites in a weird way, send it. That's the best way to harden it.
How do you match existing TypeScript errors when a PR moves the code to different lines?
An unchanged error should stay amber but a new error with the same diagnostic code should still block the change
@al_kub Matching is by file, diagnostic code, and message, not by line. If the same TS error moves with the code, it stays amber. A new error with the same code elsewhere still blocks. If a move also changes the message, it can look new. That's a known rough edge.
Setup in three stepds is nice. Is there anything extra needed for Cursor or does it work with the standard MCP config?
@bastienrenard Standard MCP config is enough. Add the Aperture MCP URL and your token from Settings → Agents → Connect an agent. No Cursor-specific plugin. Steps are on https://aperturesais.grok.me/agents
The 1 false alarm in 15 good edits is the number I'd watch. How does that look on bigger real world repos and not just the benchmark set?
@jeankang Honest answer: I don't have a published number on big real-world repos yet. The 1-in-15 figure is from the 48-case benchmark, and every miss is listed at https://aperturesais.grok.me/ben.... If you've got a repo where the false alarm bites, I'd like to see it. That's the best way to harden it.