Metagit-ai multi-repo management tool
Project description
Metagit
Metagit gives you situational awareness across Git repositories. It helps multi-repo projects feel manageable by keeping stack details, generated artifacts, dependencies, and related metadata in one place.
For AI agents
See For AI agents for install, session workflow (context pack tiers 0–2), CLI vs MCP, and skills.
uv tool install metagit-cli && export METAGIT_AGENT_MODE=true
metagit context pack --tier 2 --json
About
This tool works well for scenarios like:
- At-a-glance view of a project's technical stacks, languages, external dependencies, and generated artifacts.
- Switching between many Git projects during the day without losing context.
- Isolating outside dependencies that weaken the security and dependability of your software delivery pipelines.
- Automated documentation of a code's provenance.
- Helping new contributors get from onboarding to first commit faster.
Metagit is designed for developers, SREs, and AI agents who work across connected repositories. It tracks the dependencies and project relationships that are easy to miss when you only look at one repo at a time.
Quick start
uv tool install metagit-cli
uv tool install -U metagit-cli # upgrade later
metagit version
Use the PyPI package name
metagit-cli. Themetagitpackage on PyPI is a different project.
Install bundled agent skills (OpenClaw, Hermes, Claude Code, and others):
metagit skills list
metagit skills install --scope user --target openclaw --target hermes
Use --scope project when installing into a specific umbrella repository checkout. See Skills for targets, MCP install, and the project-management skill for agents.
Audience
This tool targets:
- DevOps Engineers
- Polyglot developers
- New team members
- Project Managers
- SREs
- Solution Engineers
- AI Agents (more to come!)
Metagit is NOT...
...an SBOM tool
SBOM output is often thousands of lines and includes full transitive dependency trees. That level of detail is usually too heavy for day-to-day situational awareness and agent context. Metagit may read SBOM manifests as an input in the future, but it is not trying to replace SBOM tooling.
Metagit uses common project files (for example go.mod, package.json, and requirements.txt) for detection and validation boundaries. These are used to identify stack composition, not to provide exhaustive version intelligence.
...a Git client
Despite the name, this still relies on Git and your existing hosting platform.
...a full project packer
Metagit intentionally focuses on the highest-value project signals. It does not package full repositories. If you need full-project packing, use repomix.
Why brevity?
One of the core goals is reducing cognitive load when understanding project relationships. A practical side effect is lower token usage for automated AI workflows.
How It Works
Metagit stores project configuration metadata in .metagit.yml inside the repository. That file follows a schema that the CLI can validate and read.
If you use Metagit for dozens of repositories (an umbrella workspace), you can edit the config manually or refresh it with heuristics and AI-assisted workflows.
Modes
Metagit supports several operating modes:
Workspace Mode
This is the first planned open-source CLI mode.
In this mode, you group related repositories into one workspace that you can open in VS Code or access individually from the terminal.
AKA Multi-repo as Monorepo
You use one top-level umbrella project with a single metagit definition file that tracks related repositories and local target folders. You can then sync that workspace locally.
The metagit configuration file is committed to version control as its own project artifact.
Managed repo lookup: Use metagit search / metagit find for quick CLI lookup of repos declared in .metagit.yml (with optional tags and JSON output). MCP clients can call metagit_repo_search, and metagit api serve exposes the same search and resolve behavior over a small local JSON HTTP API for agents and scripts.
This mode is useful for:
- Creating umbrella projects for new team members of a multi-repo project
- Individual power users that need to quickly pivot between several project repositories that comprise a larger team effort
- Keeping loosely coupled Git projects grouped without relying on submodules
Metadata Mode
This mode uses the same config file as workspace mode, with additional metadata such as primary language, frameworks, and other context you want available when entering a repo.
Configuring this by hand for one project is simple. Doing it across dozens or thousands of repos is not. Metagit uses detection heuristics to automate as much as possible and can use AI workflows where deterministic code is not enough.
Note: AI-assisted detection should be monitored and converted into deterministic logic over time.
In this mode, Metagit helps answer questions like:
- What other projects are related to this project?
- What application and development stacks does this project use?
- What external dependencies exist for this project?
- What artifacts does this project create?
- What branch strategy is employed?
- What version strategy is employed?
External dependencies are a common source of pipeline instability.
Install
Global install and skill setup are covered in Quick start above.
Local first-run
Inside any Git repository:
metagit init
That creates .metagit.yml and updates .gitignore.
Skills
Bundled skills ship with the package and install via metagit skills install (see skills.md). For development in this repository, skills/ is the source tree; run task skills:sync to mirror into .cursor/skills/.
Agent guides
- Hermes agents and organization-wide IaC — illustrated workflow for using Metagit as a control plane across Terraform, policy, and module repositories (controller + subagents, layered
agent_instructions, MCP tools).
Documentation
For installation guidance, detailed usage, including full CLI command surface, local MCP runtime setup, API-oriented flows, and advanced examples, use the documentation site:
License
This project is licensed under the MIT License. See the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file metagit_cli-0.5.2.tar.gz.
File metadata
- Download URL: metagit_cli-0.5.2.tar.gz
- Upload date:
- Size: 2.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f46601cdff668f2a6cff0d14ab115bc689d70f5737b2b8f57fc8e247e9883a24
|
|
| MD5 |
3ad6ee59a5d6299cbbe2c93cb0e1736e
|
|
| BLAKE2b-256 |
dcaf1314e8dfd6a17cc75a0277cf3b28a51a77c5959c8ef412117b374d5219e8
|
Provenance
The following attestation bundles were made for metagit_cli-0.5.2.tar.gz:
Publisher:
release.yaml on metagit-ai/metagit-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
metagit_cli-0.5.2.tar.gz -
Subject digest:
f46601cdff668f2a6cff0d14ab115bc689d70f5737b2b8f57fc8e247e9883a24 - Sigstore transparency entry: 1608375057
- Sigstore integration time:
-
Permalink:
metagit-ai/metagit-cli@9d7da379e72b5e2324f949cfd57367320fdb9ddd -
Branch / Tag:
refs/tags/0.5.2 - Owner: https://github.com/metagit-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@9d7da379e72b5e2324f949cfd57367320fdb9ddd -
Trigger Event:
push
-
Statement type:
File details
Details for the file metagit_cli-0.5.2-py3-none-any.whl.
File metadata
- Download URL: metagit_cli-0.5.2-py3-none-any.whl
- Upload date:
- Size: 793.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
59ccb32d0e3b4f97339cb1f384024a45f3c74a31d9fb41ca9d7a716e9ed25168
|
|
| MD5 |
91aa51c561152c86ca2e24d2fb33e31f
|
|
| BLAKE2b-256 |
efa5d17306b77a940d36b415a77a28f0e3b9636bff6366db9048be5f749f42fe
|
Provenance
The following attestation bundles were made for metagit_cli-0.5.2-py3-none-any.whl:
Publisher:
release.yaml on metagit-ai/metagit-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
metagit_cli-0.5.2-py3-none-any.whl -
Subject digest:
59ccb32d0e3b4f97339cb1f384024a45f3c74a31d9fb41ca9d7a716e9ed25168 - Sigstore transparency entry: 1608375244
- Sigstore integration time:
-
Permalink:
metagit-ai/metagit-cli@9d7da379e72b5e2324f949cfd57367320fdb9ddd -
Branch / Tag:
refs/tags/0.5.2 - Owner: https://github.com/metagit-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@9d7da379e72b5e2324f949cfd57367320fdb9ddd -
Trigger Event:
push
-
Statement type: