How the meta plugin system intercepts and enhances commands.
Meta uses a plugin system to intercept commands and provide enhanced behavior.
When you run meta <command>, meta checks if a plugin handles that command pattern:
meta exec for arbitrary commands)Example:
meta git status → git plugin runs git status in all reposmeta git clone <url> → git plugin clones parent + all children from .metameta npm install → unrecognized, shows help; use meta exec npm installmeta-git)Handles all meta git * commands with special cases:
| Command | Behavior |
|---|---|
meta git clone <url> |
Clone parent, read .meta, clone all children |
meta git update |
Clone missing repos, pull existing ones |
meta git snapshot * |
Create/restore workspace state |
meta git setup-ssh |
Configure SSH multiplexing |
meta git <other> |
Pass through to all repos |
meta-project)Workspace management:
meta project list # List projects from .meta
meta project check # Verify all repos exist
meta project sync # Clone missing repos
meta-rust)Cargo workspace awareness:
meta rust build # Build with workspace detection
meta rust test # Test with proper ordering
Plugins are discovered from:
.meta-plugins/ in current directory~/.meta-plugins/ in home directorymeta-* in PATH# List installed plugins
meta plugin list
# Search registry for plugins
meta plugin search <query>
# Install from registry
meta plugin install <name>
# Uninstall
meta plugin uninstall <name>
meta git status
│
├─ Is there a 'git' plugin? Yes (meta-git)
│
├─ Plugin receives: command="git status", projects=[list]
│
├─ Plugin returns: ExecutionPlan with commands per repo
│
└─ Meta executes plan via loop engine
For commands with special handling (like clone), the plugin does the work directly instead of returning an execution plan.
Plugins let you:
git clone to add meta-aware logicmeta <plugin> --helpWhen you see a command behave "magically" (like meta git clone cloning multiple repos), a plugin is handling it.