Which AI tools actually handle monorepos well?
Monorepos break a lot of AI tooling. We tested the major options against a real 200k-line workspace.
Marketing pages claim every assistant 'understands your whole codebase'. In a real monorepo with shared packages, generated types, and per-app tsconfigs, that claim breaks down fast. Here is how the major tools held up.
The test bed
A 200k-line TypeScript monorepo with three apps and eight shared packages, generated GraphQL types, and a custom build orchestrator. The tasks: cross-package refactors, bug fixes that span apps, and new features that touch shared types.
Results in one paragraph each
- Claude Code: handled cross-package work best. Respected boundaries and only occasionally needed nudging on generated files.
- Cursor: strong on single-app tasks; needed explicit context for cross-package work.
- Windsurf: surprisingly capable here — its indexer is fast and accurate.
- Copilot in VS Code: best when scoped to one workspace folder; struggled when asked to reason across packages.
What helped every tool
A README at the repo root describing the package graph in plain prose. A short 'do not edit' list pointing at generated files. Project-level instructions pinned to the assistant.
These are the same things that help human onboarding, which is not a coincidence.
What broke every tool
Implicit conventions held only in senior engineers' heads. Generated files mixed with hand-written code in the same directory. Build setups that require running a custom script before TypeScript will resolve.
Recommendation
If you maintain a serious monorepo, invest one afternoon in repo-level documentation aimed at AI assistants. The return is immediate and applies to every tool you try.
Comments
0 repliesJoin the conversation
Sign in to leave a comment on "Which AI tools actually handle monorepos well?".
Loading comments…