Introduction
A CLI task runner for monorepo workspaces with task caching, dependency-aware scheduling, catalog management, and git hooks
Visulima Vis
One CLI for everything your monorepo needs — task running, caching, dependency management, releases, security audits, and AI-agent integration. Powered by @visulima/task-runner and @visulima/cerebro.
vis run build # Run a target across the workspace
vis affected test # Test only what changed
vis release ci release # Ship versions, changelogs, tags
vis ai heal # Let Claude / Cursor fix failing tasksDrop-in for Turbo and Vite Task; the breadth of Nx without the platform lock-in. See Why vis vs. the alternatives for the side-by-side capability matrix.
Key Features
Built for AI agents (unique vs. Turbo / Nx-without-Cloud / moon / Vite Task)
- MCP server —
@visulima/vis-mcpexposes 8 read-only introspection tools to Claude / Cursor / Copilot, plus a paired Claude Skill vis ai heal— propose-validate-comment loop on the failing task;/vis heal acceptlands the patch as a signed commit (GitHub Actions, GitLab CI, Buildkite)- Worktree-aware shared cache — N parallel agents in N sibling git worktrees share one cache automatically
Release management (matches changesets / semantic-release / release-please feature-for-feature)
vis release— change-file authoring, channel routing, version-PR mode, auto-publish for prereleases, snapshot previews, NAPI sidecar support- One-command migration —
vis release initdetects changesets / semantic-release / bumpy and migrates in place - CI drivers built-in —
vis release ci release / snapshot / check / planfor GitHub Actions and GitLab CI - See the release guide for the 5-minute quickstart
Production-grade caching
- REAPI gRPC + HTTP backends — drop-in support for bazel-remote, BuildBuddy, BuildBarn, EngFlow alongside Turbo-compatible HTTP;
vis cache doctorfor CI gating vis cache why <task>— diff hash buckets vs. the previous run to pinpoint what rotated- HMAC-SHA256 signed artifacts —
verifyOnDownloadlocks production caches against tampering - Cache restoration fidelity — preserves mtime + perms + colors;
vis cache verifyflags drift - Retention controls —
vis cache prune --keep-last/--max-age-days/--max-size
Cross-invocation devloop
vis service— long-lived DB / mock / devserver lifecycle that survives acrossvis runcalls; auto-attached when targets declareservice:vis run --watch— Vitest-style keybinds, Windows-clean SIGINTvis run --output-style=quiet— swallow stdout from successful tasks, keep failures visible
Workspace orchestration
- Workspace-aware (pnpm, npm, yarn, bun); topological scheduling with configurable parallelism
- Affected detection with
${affected.files}/$AFFECTED_FILEStoken forwarding - Conditional (
when:) and finally (always:) tasks - Per-package
vis.task.tsoverlay + rootextendschain - Inferred targets (Project Crystal-style) for 36 tools — opt-in via
inferTargets: true - Plugin / fingerprint hooks via
definePlugin - Strict env mode + lockfile preflight
- Project graph in ASCII / DOT / JSON / HTML
Adjacent tooling that ships in-box
vis catalog check / update— pnpm + bun catalog managementvis secrets— Rust-native secret scanning (gitleaks engine)vis audit— OSV.dev vulnerability scanningvis docker scaffold— lockfile pruning for pnpm / npm / yarn classic+berry / bunvis hook install / migrate— git hooks (husky migration supported)vis staged— built-inlint-stagedreplacementvis replay— re-render past run summaries without re-execution
Toolchain & runtime
- Pluggable installer (aube auto-detection or pinned PM)
- Cold-start one-liner (Linux/macOS/PowerShell)
vis toolchaindelegates to proto / mise / fnm / volta- Built on Cerebro for help / version / shell completion
A typical day with vis
# Morning: pull, install, see what changed
git pull
vis install
vis affected lint test --base=main
# Build only what's affected, watch tests
vis run build --watch
# Record a version bump for the change you just made
vis release add --packages '@scope/cerebro:minor' --message 'Add tab completion'
# Push — CI handles tagging, changelogs, npm publish
git push