| Crates.io | monorepo-meta |
| lib.rs | monorepo-meta |
| version | 0.6.1 |
| created_at | 2025-11-22 16:02:09.943524+00 |
| updated_at | 2026-01-19 07:16:27.844974+00 |
| description | Unified CLI for polyglot monorepos - orchestrates Turborepo, Cargo, and Bacon in tmux |
| homepage | https://github.com/wolven-tech/rust-v1 |
| repository | https://github.com/wolven-tech/rust-v1 |
| max_upload_size | |
| id | 1945455 |
| size | 95,771 |
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
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.
# 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
.meta/logs/<project>.logmeta.toml| 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 |
# 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" }
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}"
meta sessions command.meta/logs/<project>.logmeta logs command with --follow and --linesmeta status command for process monitoringmeta dev:stop commandmeta doctor validationcd tooling/meta
cargo test # Run tests
cargo clippy # Lint
cargo build --release # Build
MIT
Built with Rust