Agent package manager for .agents/ directories
Project description
mars
Mars is a package manager for .agents/ directories. It installs agent profiles and skills from git and local sources into one managed root, records managed ownership in mars.lock, and links that managed content into tool-specific directories like .claude/ or .cursor/.
Quick Start
# Initialize and link to Claude
mars init --link .claude
# Add sources
mars add haowjy/meridian-base
mars add haowjy/meridian-dev-workflow
# See what's installed
mars list
# Explain why an item is present
mars why reviewer
Why Mars
- Install agents and skills from multiple sources into one managed
.agents/tree - Resolve versions and transitive source dependencies before installation
- Keep syncs safe: resolve the full desired state before mutating files
- Track ownership and checksums in
mars.lockso managed and unmanaged files coexist safely - Support day-to-day maintenance with upgrades, outdated checks, local overrides, rename rules, conflict resolution, and repair flows
- Link managed
agents/andskills/into tool directories instead of copying them around
Where Mars Fits
Mars is not an agent runtime. It sits underneath tools like Claude Code, Cursor, and Codex and manages the agent assets they read.
| Alternative | What Mars adds |
|---|---|
Native .claude/agents |
Multi-source installs, versioning, lockfile-backed ownership, safer syncs, recovery |
| Skill installers | Both agents and skills, explicit desired state in config, conflict handling, repair |
| Git submodules / vendored folders | Real resolution, diff, plan, and apply pipeline |
Install
| Method | Command |
|---|---|
| Cargo (crate) | cargo install mars-agents |
| Cargo (latest main) | cargo install --git https://github.com/haowjy/mars-agents |
| Python (pipx) | pipx install mars-agents |
| Python (uv tool) | uv tool install mars-agents |
| Python (pip) | pip install mars-agents |
| npm | npm install -g @haowjy/mars-agents |
| From source | cargo install --path . |
Prebuilt binaries: https://github.com/haowjy/mars-agents/releases
Platforms: macOS arm64/x64, Linux arm64/x64 (glibc). Others: build from source.
Source Inputs
| Form | Example |
|---|---|
| GitHub shorthand | owner/repo or owner/repo@^1.0 |
| HTTPS URL | https://github.com/owner/repo |
| SSH URL | git@github.com:owner/repo.git |
| Local path | ../my-agents or /absolute/path |
Commands
| Area | Commands |
|---|---|
| Source management | add, remove, upgrade, outdated, override |
| Resolution | Semver constraints, transitive deps, lockfile-backed replay |
| Install & reconcile | sync, rename, resolve |
| Inspection | list, why |
| Linking | init --link, link |
| Validation & recovery | check, doctor, repair |
| Cache | cache info, cache clean |
Global flags: --root <PATH>, --json.
Managed Layout
project/
mars.toml # Dependency config (committed)
mars.lock # Ownership registry (committed)
mars.local.toml # Dev overrides (gitignored)
.mars/ # Internal state (gitignored)
.agents/
agents/
skills/
.claude/
agents -> ../.agents/agents
skills -> ../.agents/skills
mars.toml Example
[dependencies.base]
url = "https://github.com/haowjy/meridian-base"
version = "^1.0"
[dependencies.dev]
path = "../my-dev-agents"
[dependencies.ops]
url = "https://github.com/acme/ops-agents"
only_skills = true
[settings]
links = [".claude"]
After editing mars.toml, run mars sync to apply changes.
Documentation
Detailed documentation is in docs/:
- Overview — Core concepts and quick start
- Configuration —
mars.tomlreference: all fields, filter modes, settings - CLI Reference — Every subcommand with flags, examples, and behavior
- Sync Pipeline — How sync works: resolve → target → diff → apply
- Conflicts — Collision handling, merge, conflict resolution
- Lock File — Lock file format and semantics
- Local Development — Overrides, local paths, submodules
- Troubleshooting —
mars doctor,mars repair, common problems
Design Constraints
- Resolve first, then act. If resolution fails, nothing is mutated.
- Config, lock, and installed files use atomic writes.
mars.lockis the authority for what Mars manages.- User intent comes from explicit flags and arguments, not heuristics.
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 Distributions
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 mars_agents-0.0.6.tar.gz.
File metadata
- Download URL: mars_agents-0.0.6.tar.gz
- Upload date:
- Size: 185.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5846d4779e9b4be365613958b4d19b97ae02e3b8ccef48e3fe6ee896ff5247d
|
|
| MD5 |
677958e01cc74376b5980a5badd9e93f
|
|
| BLAKE2b-256 |
485891cc37fb7660daeef6f744d3e1d28e6f97bf4862d1f1ff20d94cf67f34d7
|
Provenance
The following attestation bundles were made for mars_agents-0.0.6.tar.gz:
Publisher:
release.yml on haowjy/mars-agents
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mars_agents-0.0.6.tar.gz -
Subject digest:
f5846d4779e9b4be365613958b4d19b97ae02e3b8ccef48e3fe6ee896ff5247d - Sigstore transparency entry: 1237916613
- Sigstore integration time:
-
Permalink:
haowjy/mars-agents@2986a3394ba11ff067a409dbcae663e89e66eb6d -
Branch / Tag:
refs/tags/v0.0.6 - Owner: https://github.com/haowjy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2986a3394ba11ff067a409dbcae663e89e66eb6d -
Trigger Event:
push
-
Statement type:
File details
Details for the file mars_agents-0.0.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: mars_agents-0.0.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.4 MB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af3a56b4d3d483bba6b21b30b4a17131b2f767c80da39ad6eb633a92f55f7e22
|
|
| MD5 |
08cd6116d7f32705d19a6268eeddf3f6
|
|
| BLAKE2b-256 |
ec9884d2a60b2c53a1db42beb51d80b8ec8817192362ab5d3fe24d98e5292365
|
Provenance
The following attestation bundles were made for mars_agents-0.0.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on haowjy/mars-agents
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mars_agents-0.0.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
af3a56b4d3d483bba6b21b30b4a17131b2f767c80da39ad6eb633a92f55f7e22 - Sigstore transparency entry: 1237916636
- Sigstore integration time:
-
Permalink:
haowjy/mars-agents@2986a3394ba11ff067a409dbcae663e89e66eb6d -
Branch / Tag:
refs/tags/v0.0.6 - Owner: https://github.com/haowjy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2986a3394ba11ff067a409dbcae663e89e66eb6d -
Trigger Event:
push
-
Statement type:
File details
Details for the file mars_agents-0.0.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: mars_agents-0.0.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.3 MB
- Tags: Python 3, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c3a661569603d7aa91f88e30ac94c801e7d984b7c3341685d3164df168f1297
|
|
| MD5 |
41eba53d9ea674ce17431ef5574806d8
|
|
| BLAKE2b-256 |
a79391437ea037955d10661ff5760d4f00e80b338b84d94d2b5d2b1ded97d43c
|
Provenance
The following attestation bundles were made for mars_agents-0.0.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
release.yml on haowjy/mars-agents
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mars_agents-0.0.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
0c3a661569603d7aa91f88e30ac94c801e7d984b7c3341685d3164df168f1297 - Sigstore transparency entry: 1237916619
- Sigstore integration time:
-
Permalink:
haowjy/mars-agents@2986a3394ba11ff067a409dbcae663e89e66eb6d -
Branch / Tag:
refs/tags/v0.0.6 - Owner: https://github.com/haowjy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2986a3394ba11ff067a409dbcae663e89e66eb6d -
Trigger Event:
push
-
Statement type:
File details
Details for the file mars_agents-0.0.6-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: mars_agents-0.0.6-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.2 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1cab6e82902e78f4ca74a35fafa1688821043385e94270f001f4d00bca21ab95
|
|
| MD5 |
f46cc2e0b1e9d0ed334a0a479fbb44d2
|
|
| BLAKE2b-256 |
d73a326231341a8589d7fa591c45b9084bb7ce32029fe7ef8de9c1e61ea8df19
|
Provenance
The following attestation bundles were made for mars_agents-0.0.6-py3-none-macosx_11_0_arm64.whl:
Publisher:
release.yml on haowjy/mars-agents
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mars_agents-0.0.6-py3-none-macosx_11_0_arm64.whl -
Subject digest:
1cab6e82902e78f4ca74a35fafa1688821043385e94270f001f4d00bca21ab95 - Sigstore transparency entry: 1237916622
- Sigstore integration time:
-
Permalink:
haowjy/mars-agents@2986a3394ba11ff067a409dbcae663e89e66eb6d -
Branch / Tag:
refs/tags/v0.0.6 - Owner: https://github.com/haowjy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2986a3394ba11ff067a409dbcae663e89e66eb6d -
Trigger Event:
push
-
Statement type:
File details
Details for the file mars_agents-0.0.6-py3-none-macosx_10_12_x86_64.whl.
File metadata
- Download URL: mars_agents-0.0.6-py3-none-macosx_10_12_x86_64.whl
- Upload date:
- Size: 2.3 MB
- Tags: Python 3, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd668a45de340689c3fc40df7398bddfd0776f4acd0e3582fcf786190fea9ead
|
|
| MD5 |
c1c5f89c47fa91a38b29b2c92498e7b7
|
|
| BLAKE2b-256 |
42d6c5553e82416e96f0c618f15ea9262765c7b3e4780aa3f0c7e8336ea4ffd5
|
Provenance
The following attestation bundles were made for mars_agents-0.0.6-py3-none-macosx_10_12_x86_64.whl:
Publisher:
release.yml on haowjy/mars-agents
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mars_agents-0.0.6-py3-none-macosx_10_12_x86_64.whl -
Subject digest:
bd668a45de340689c3fc40df7398bddfd0776f4acd0e3582fcf786190fea9ead - Sigstore transparency entry: 1237916625
- Sigstore integration time:
-
Permalink:
haowjy/mars-agents@2986a3394ba11ff067a409dbcae663e89e66eb6d -
Branch / Tag:
refs/tags/v0.0.6 - Owner: https://github.com/haowjy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2986a3394ba11ff067a409dbcae663e89e66eb6d -
Trigger Event:
push
-
Statement type: