CodeVetter
← All unpacks
CodeVetter · Repo Unpack evidence

vercel/turborepo

Scanned commit 2540ee1d74 dated 2026-10-02 — last upstream commit. Generated by codevetter 1.15.0 on 2026-10-02.

github.com/vercel/turborepo ↗ · 4000 files · 12.4 MB · scan capped

Turborepo Turborepo is the build system for coding agents.

Deep analysis by cli:codex via the codex CLI on 2026-10-02 (409s) — every claim below links to its cited source files. Source inspection; upstream code and tests were not executed.

Overview

Turborepo is a Rust-based build orchestrator for developers and coding agents working across repository packages. It discovers packages, constructs task graphs, hashes inputs, executes native toolchain commands, and restores reusable outputs from local or authenticated remote caches. This commit also includes experimental Rust, Python, and Go workspace support, repository inspection tools, JavaScript scaffolding and migration packages, a documentation site, and an internal agent workspace application.

System map

The principal product is a native CLI organized into focused Rust crates. Startup, repository discovery, task scheduling, process execution, caching, and output rendering have separate owners. JavaScript packages and Next.js applications surround the CLI with distribution, onboarding, documentation, and internal operator tooling.

Feature catalog

The inspected command dispatcher exposes execution, watching, pruning, inspection, authentication, generation, and configuration features. Execution supports terminal, TUI, and machine-readable output, alongside graph and dry-run modes. Additional package and application surfaces support project creation, configuration migration, and durable agent workspaces; this catalog is bounded by the inspected files.

Data flow

CLI arguments and inferred repository state establish the execution boundary. Discovery and configuration become immutable repository and execution contexts, while file, dependency, and environment inputs feed task hashes. Task results flow through completion callbacks, output sinks, and caches; authentication has a separate user-level persistence path.

Behavior traces

Three concrete flows were followed: CLI startup, task execution with cache persistence, and standard login with credential persistence. The traces retain branches that change execution, including local-binary selection, graph-only runs, cache hits, cache failures, and existing-token reuse. These are source-derived execution sequences, not runtime observations.

Testing signals

Tests and CI were inspected, not executed; no passing result is asserted. The inspected coverage includes Rust integration behavior, executor policies, archive safety regressions, GraphQL host checks, and Jest package tests. CI spans multiple operating systems and Node versions, but exclusions, mocked boundaries, and release-PR skips limit what any individual job establishes.

Risk map

The following are security-sensitive boundaries and source-observed coupling points, not confirmed vulnerabilities. Native command execution, archive restoration, user-level credentials, remote cache authorization, and internal operator deployment protection deserve focused review. The bounded inspection does not establish whole-repository coverage or the absence of other risks.

Extension points

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.

Contributor handoff

This handoff is grounded in the pinned commit and a clean tracked working-tree comparison, with bounded inspection rather than exhaustive coverage. Tests and CI were inspected, not executed; commands below are documented future checks, not results. Begin at the owning crate and preserve discovery authority, hash inputs, output modes, credential routing, and completion semantics.

Languages

LanguageFilesShare of source
JSON2051docs/config
TypeScript92146%
Rust56728%
JavaScript37219%
Markdown371docs/config
YAML238docs/config
TOML1106%
CSS76docs/config

Start reading here

Probable source entrypoint: Cargo.toml — inferred from the directory tree and manifest, not the upstream docs.

Source roots

crates/ (658 files) packages/ (657 files)

Repository structure

Top-level pathFiles
examples/658
crates/658
lockfile-tests/657
turborepo-tests/657
packages/657
apps/628
.github/32
scripts/12

Docs found: AGENTS.mdCONTRIBUTING.mdREADME.mddocs/link-checker/README.MD

Package

Cargo.toml — turborepo-crates, 0 declared dependencies.

CI & config entrypoints

Structural health signals

Average score 5.4/10 across 96 analyzed source files; 89 hotspots surfaced.

These are deterministic review leads — size, churn, and structural signals — not proof of a bug in this project.

Recent history