← Journal
10 min readAI Dev Review

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.

MonoreposBenchmarksTooling

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 replies

Join the conversation

Sign in to leave a comment on "Which AI tools actually handle monorepos well?".

Loading comments…