Automatic bug detection and fixes on every pull request
Macroscope automatically reviews every pull request for correctness. When it finds an issue, it leaves a comment on the PR describing the problem and suggesting a fix.You can also configure fully customizable AI agents that trigger on every pull request open, push, and manual check rerun by setting up Check Run Agents.You can reply to any comment, give 👍 or 👎 feedback to help Macroscope learn, or ask it to fix the issue for you.
Each comment displays a Source column indicating where the feedback originated (e.g. Correctness, Check Run Agent). Use the source filter to focus on comments from a specific review type.Filters persist in the URL, so you can bookmark or share filtered views. When exporting to CSV, the export respects your current filters.
Feedback metrics pages support filtering by review type. Select a specific type to see metrics for that review source, or view a cross-type overview to compare feedback across all review types.
You can tell Macroscope to skip specific files during code review by adding a .macroscope/ignore file to your repository. The file uses a simplified glob pattern syntax, one pattern per line. Lines starting with # are comments, blank lines are ignored.
Create a file named .macroscope/ignore in your repository.
Add one file path pattern per line.
Commit and push. Macroscope picks it up automatically on the next review.
The legacy path .macroscope-ignore at the repo root is still supported for backward compatibility, but .macroscope/ignore is the recommended location. This consolidates all Macroscope configuration into the .macroscope/ directory.
Use ** to match across directories, * to match within a single path segment, and ? to match a single character. Patterns without a / match at any depth. Maximum 1,000 patterns.
Macroscope ships with a built-in set of ignore patterns covering vendored dependencies, generated code, binary assets, and test files. These are applied automatically when no .macroscope/ignore file exists in your repo.
Creating your own .macroscope/ignorereplaces these defaults rather than extending them. To preserve the defaults, copy the patterns below into your .macroscope/ignore file and add your own on top.
Default base patterns (vendored, generated, binary, etc.)
Macroscope reviews every file in a PR. For supported languages, it uses deep AST-based analysis. For everything else, it uses an AI-powered agentic approach.
For supported languages, Macroscope’s code walkers parse the Abstract Syntax Tree to build a graph-based representation of your codebase. This enables deep, language-aware review with per-language model tuning and framework-specific handling (e.g. parsing .vue single-file components and Nuxt conventions).Supported languages: Go, Python, TypeScript, JavaScript, Vue.js (including Nuxt), Java, Rust, Kotlin, Swift, Ruby, Elixir, Starlark.
All other files (config, docs, scripts, other languages) are reviewed via an AI-powered agentic approach. Every file in a PR gets examined, just without language-specific AST parsing.Macroscope also uses web search during review to pull in up-to-date context, such as latest library documentation, API signatures, and deprecation notices.
Macroscope’s auto-tune system tests multiple model, prompt, and parameter combinations per language to find the best config. An LLM-driven curator analyzes failures and proposes improvements each iteration. Learn more about our auto-tune system.