- Category
- Developer Tools
- Rank
- No. 489Tools index
Previous survey · No. 502 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- GitHub
- 6.4k stars
- Date
About
Google's tool that upgrades npm/pnpm/yarn scripts to be smarter and more efficient — incremental builds, cross-package dependencies, watch mode.
What it does
Wireit turns existing project commands into a declared execution graph. You describe commands, their prerequisites, input files, and outputs in project configuration. It validates that graph, schedules safe work concurrently, restores reusable results from cache, and reruns affected work when watched files change.
Why it's ranked here
Wireit offers substantial build orchestration without forcing teams to abandon familiar package commands. Its dependency analysis, safe concurrency, caching, services, and editor diagnostics form a coherent system. The cost is explicit file metadata and configuration, which teams must maintain accurately to receive the largest speed gains.
What's good
Adoption can be gradual because configured tasks may depend on ordinary package scripts. Dependency edges can cross packages, and independent work runs concurrently. Simultaneous invocations of the same task are locked to prevent conflicting output. Local and GitHub Actions caches can restore outputs, while editor support provides diagnostics, completion, navigation, and corrective edits.
Tradeoffs
Incremental execution and caching require declared inputs and outputs. Without either list, a task always runs because Wireit cannot prove freshness. Local caches have no automatic size limit. Default concurrency can also starve resources in large builds, so teams may need to lower it. The configuration layer adds metadata that must stay aligned with command behavior.
How to use it well
Use Wireit for JavaScript or TypeScript projects whose build, test, lint, and service commands already live behind package scripts. Introduce it task by task, then add precise input and output globs where repeated work justifies caching. Keep ordinary scripts when optimization adds little. It orchestrates existing tools, but does not replace compilers, test runners, bundlers, or deployment systems.
Technical notes+
package.json defines an ES module npm package, a wireit CLI entry, Node.js 18 or newer, an Apache-2.0 license, and a workspace for the VS Code extension. src/cli.ts selects local, GitHub Actions, or disabled caching, dynamically loads watch support, constructs a worker pool, and routes validated graphs into Executor. src/analyzer.ts loads transitive configuration, builds placeholders concurrently, validates dependencies, and performs a separate deterministic cycle check. src/executor.ts maps no-command, standard, and service configurations to execution classes while enforcing failure modes and service lifecycles. src/watcher.ts watches configuration and declared inputs, queues changes during active runs, and reuses persistent services. src/ide.ts exposes diagnostics, code actions, completions, and definition navigation over in-memory editor buffers.
Observed
- License
- Apache-2.0
- Primary language
- TypeScript
- Packaging
- ES module package published through npm
- Install surface
- Development dependency installed with npm
- Interface
- Command-line tool invoked through package scripts
- Runtime requirement
- Node.js 18 or newer
- Package manager support
- Works with npm, pnpm, Yarn, and Node run commands
- Editor integration
- VS Code extension with diagnostics, completion, documentation, navigation, and code actions
Read from README.md, package.json, src/cli.ts, src/ide.ts, src/error.ts, src/event.ts, src/config.ts, src/watcher.ts, src/analyzer.ts, src/executor.ts.
What it can do
Run incremental builds
npm/pnpm/yarn scripts with dependency graph → Optimized build execution skipping unchanged components
Manage cross-package dependencies
Multiple packages with interdependencies → Coordinated execution order respecting package relationships
Watch files for changes
Source files and directories → Automatic re-execution of affected scripts when files change
Cache build outputs
Script execution results and file fingerprints → Cached artifacts for faster subsequent builds
Parallelize script execution
Independent scripts across packages → Concurrent execution of non-dependent tasks
Validate dependency graphs
Package scripts with declared dependencies → Error detection for circular or invalid dependencies
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
