8 unstable releases (3 breaking)
| 0.6.1 | Jan 19, 2026 |
|---|---|
| 0.6.0 | Jan 16, 2026 |
| 0.4.1 | Dec 8, 2025 |
| 0.3.2 | Nov 27, 2025 |
| 0.2.1 | Nov 22, 2025 |
#802 in Command line utilities
59KB
1.5K
SLoC
Meta - Monorepo Task Orchestrator
One command to rule them all
Meta orchestrates Turborepo, Cargo, and Bacon in tmux for polyglot monorepos. Stop juggling multiple terminals - let meta manage your dev environment.
cargo install monorepo-meta
Why Meta?
Modern monorepos use multiple tools: Turborepo for TypeScript, Cargo for Rust, Bacon for hot-reload. Meta unifies them under one CLI with proper tmux orchestration.
Quick Start
# 1. Validate setup
meta doctor
# 2. Start all dev servers in tmux
meta dev
# 3. Navigate: Ctrl+B then arrows | Detach: Ctrl+B then D
Features
- Tmux Orchestration - Each project in its own pane with full TUI
- Smart Routing - Turborepo from root, Bacon/Cargo from project directory
- Per-Project Logging - Stdout captured to
.meta/logs/<project>.log - Multi-Workspace - Run meta in multiple directories without conflicts
- Claude Code Integration - AI skill for natural language control
- Zero Config - Auto-detects projects, generates
meta.toml
CLI Reference
| Command | Description |
|---|---|
meta dev |
Start all dev servers in tmux |
meta dev -p api web |
Start specific projects only |
meta dev:stop |
Stop all dev processes |
meta status |
Show running processes and logs |
meta logs <project> |
View project logs (-f to follow) |
meta sessions |
List all active meta sessions |
meta build [--prod] |
Build all projects |
meta test |
Run all tests |
meta run <task> |
Run any task (fmt, clippy, audit) |
meta doctor |
Validate configuration |
meta init |
Generate meta.toml |
Configuration
# meta.toml
version = "1"
[workspace]
name = "My Monorepo"
[tools.bacon]
enabled = true
command = "bacon"
for_languages = ["rust"]
[tools.turborepo]
enabled = true
command = "turbo"
for_languages = ["typescript"]
[projects.api]
type = "rust"
path = "apps/api"
[projects.api.tasks]
dev = { tool = "bacon", command = "run-long" }
build = { tool = "cargo", command = "build --release" }
[projects.web]
type = "next"
path = "apps/web"
[projects.web.tasks]
dev = { tool = "turborepo", command = "run dev --filter=@org/web" }
Bacon Logging
For bacon projects to write logs, configure your bacon.toml to tee output:
[jobs.run-long]
# Tee output to centralized log file
command = ["sh", "-c", "mkdir -p ../../.meta/logs && cargo run --color always 2>&1 | tee ../../.meta/logs/api.log"]
need_stdout = true
# Export errors/warnings to centralized location
[exports.meta-locations]
auto = true
path = "../../.meta/logs/api-locations"
line_format = "{kind}|{path}:{line}:{column}|{message}"
Documentation
- User Guide - Daily workflow, tmux navigation, troubleshooting
- Standalone Setup - Add meta to your own monorepo
- Contributing - Development setup and guidelines
Changelog
v0.6.1 (Current)
- Bacon logging fix - bacon jobs can now tee output to log files
- Meta skips outer tee for bacon (avoids TUI escape code capture)
- Centralized log location for multi-bacon monorepos
v0.6.0
- Claude Code skill with decision trees and output parsing
- Multi-instance support (directory-based session names)
meta sessionscommand- Fixed process detection via tmux pane queries
v0.5.0
- Per-project log capture to
.meta/logs/<project>.log meta logscommand with--followand--lines- Log rotation at 10MB
Earlier versions
v0.4.1
meta statuscommand for process monitoring- Lifecycle logging (START/EXIT/RESTART events)
- Binary staleness detection
v0.3.1
meta dev:stopcommand- Improved tmux navigation guide
v0.3.0
- Published to crates.io
- Custom pane titles
v0.2.1
- Tmux orchestration
- Multiple bacon instances with full TUI
meta doctorvalidation
Roadmap
v0.7.0 (Next)
- Session save/restore
- Environment support (dev, staging, prod)
- Project dependency ordering
Future
- Remote execution (SSH)
- Custom tool plugins
- CI/CD integration
Development
cd tooling/meta
cargo test # Run tests
cargo clippy # Lint
cargo build --release # Build
License
MIT
Built with Rust
Dependencies
~10–16MB
~200K SLoC