# Extension points — vercel/turborepo

> Canonical page: https://codevetter.com/unpack/turborepo/extension-points

# Extension points — vercel/turborepo

Scanned commit 2540ee1d740bb96bf249459a7957ef4b380c9e43 (2026-10-02). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

The core extends through explicit traits, typed configuration, and centralized command dispatch. Repository contributors supply ecosystem knowledge, command providers supply executable specifications, and query interfaces keep GraphQL implementation outside the CLI dependency boundary. Companion packages add filesystem-discovered transformations, while output changes follow a shared logging architecture.
- New ecosystem integrations implement RepositoryContributor::id, discover_packages, and discover_package_scopes; conservative static dependencies are an optional separate hook. — [crates/turborepo-repository/src/toolchain.rs#L535-581](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo-repository/src/toolchain.rs#L535-L581)
- CommandFactory::add_provider registers ordered CommandProvider implementations; the first Some command wins and any provider error immediately propagates. — [crates/turborepo-task-executor/src/command.rs#L42-52](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo-task-executor/src/command.rs#L42-L52) [crates/turborepo-task-executor/src/command.rs#L76-99](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo-task-executor/src/command.rs#L76-L99)
- EngineProvider exposes tasks, definitions, and dependencies, while EngineExecutor accepts concurrency and a message sender, permitting execution support to depend on interfaces. — [crates/turborepo-task-executor/src/visitor.rs#L12-46](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo-task-executor/src/visitor.rs#L12-L46)
- QueryServer injection enables alternate query implementations or CLI builds without queries; the binary's adapter delegates execute_query and run_query_server to turborepo-query. — [crates/turborepo-cli/src/lib.rs#L48-54](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo-cli/src/lib.rs#L48-L54) [crates/turborepo/src/main.rs#L40-69](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo/src/main.rs#L40-L69)
- CLI dispatch is centralized in the Command match; additions must connect parsed commands to their command adapters, telemetry events, and CommandBase requirements. — [crates/turborepo-cli/src/cli/mod.rs#L462-488](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo-cli/src/cli/mod.rs#L462-L488) [crates/turborepo-cli/src/cli/mod.rs#L519-549](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/crates/turborepo-cli/src/cli/mod.rs#L519-L549)
- The public TypeScript schema maps task names to Pipeline definitions and exposes workspace extends, tags, and boundaries configuration. — [packages/turbo-types/src/types/config-v2.ts#L15-62](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/packages/turbo-types/src/types/config-v2.ts#L15-L62)
- Codemods plug in as default-exported Transformer modules discovered from the transforms directory; loadTransformers ignores loading errors and filters empty results. — [packages/turbo-codemod/src/utils/load-transformers.ts#L5-28](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/packages/turbo-codemod/src/utils/load-transformers.ts#L5-L28)
- New logging areas add Subsystem variants; user-facing events and task bytes pass through GroupingLayer and Logger to terminal, TUI, and file/collector sinks. — [CONTRIBUTING.md#L169-181](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/CONTRIBUTING.md#L169-L181) [CONTRIBUTING.md#L185-200](https://github.com/vercel/turborepo/blob/2540ee1d740bb96bf249459a7957ef4b380c9e43/CONTRIBUTING.md#L185-L200)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
