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
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.