Skip to main content
Marshal logo

Marshal — an agent ledger

A vendor-neutral, open-source ledger for enterprise AI agents. Any format in, any format out, with versions, diffs, portability and audit across every platform.

Marshal reads the agent definitions teams already produce: Databricks bundles, Copilot Studio agents, Bedrock templates, Agentforce metadata, agent code and the open standards. It builds a normalized, versioned record of every agent: what model it asks for, what tools and data it can reach, and who it acts as. Every field says where its value came from, and nothing is guessed.

Status: pre-alpha.

What it does

  • Inventory of every agent across platforms, with versions, deployments, and each record's completeness.
  • Risk-ranked review: pull requests that change an agent get a comment that lists permission escalations, new write tools and model changes first.
  • Drift and freshness: compares what is live with what was shipped, and shows how recently each record was confirmed and by which channel.
  • Dependencies: "who uses this tool, this knowledge source, this permission?" across every platform.
  • Translation between formats, with a fidelity report computed by reading the result back.
  • Portability scores for moving an agent to another platform, from a community-maintained capability matrix.
  • No shared secrets: pipelines push records authenticated by their CI provider's OIDC token. Marshal never connects to agent platforms.

Formats

Source Read Write
Databricks Asset Bundles (Genie spaces, agent apps) ✓
AWS CloudFormation and CDK (Bedrock Agents, AgentCore) ✓ Bedrock Agents
Microsoft Copilot Studio (agent workspaces, solutions) ✓ ✓
Salesforce Agentforce (Agent Script, legacy metadata) ✓ Agent Script
Google ADK Agent Config ✓ ✓
Vertex AI Agent Engine (saved API responses) inventory
Python agent code (OpenAI Agents SDK, LangChain/LangGraph, Google ADK, CrewAI, direct model API calls) ✓
ADL, Open Agent Spec, AGNTCY OASF ✓ ✓
Marshal file: a hand-written definition for agents no reader covers, recorded as attested ✓ ✓

Try it

Build a demo from 28 public agents and browse it:

$ pip install 'marshal-ledger[server]'
$ marshal demo
$ marshal web --db demo.sqlite

marshal demo downloads the agents' definitions from their public GitHub repositories, pinned to a commit.

Then on your own agents. See Getting started:

$ marshal read path/to/bundle                        # print ledger records
$ marshal collect path/to/bundle --target prod --event shipped
$ marshal ls                                         # every agent, latest version, where it is shipped
$ marshal diff finance/invoice_agent                 # proposed against shipped, ranked by risk
$ marshal status finance/invoice_agent               # shipped vs live per environment, drift, freshness
$ marshal deps "*CheckWeather" --shipped             # who depends on this, and where it is live
$ marshal convert agent.adl.yaml --to agent-spec     # translate, with a fidelity report
$ marshal port finance/invoice_agent --to all        # portability to every platform
$ marshal web                                        # browse the store

collect writes to a local SQLite store (marshal.sqlite, or --db / $MARSHAL_DB). In a shared deployment, pipelines run marshal push or the GitHub Action against the ingest API. Optional scheduled workflows export agents built in a web designer, such as Copilot Studio and Agentforce, and report drift from what was shipped.

Documentation

Development

$ pip install -e '.[dev]'
$ python scripts/fetch_fixtures.py     # golden fixtures: real public agent definitions, pinned by commit
$ pytest

See Contributing. Golden fixtures are fetched rather than committed, so each file stays under its upstream license. After changing the model, regenerate the schema with python scripts/generate_schema.py. Report vulnerabilities as described in Security.

License

Marshal is licensed under the Apache License 2.0.

Metadata

Release files for marshal-ledger 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for marshal-ledger 0.1.0
File Size Uploaded Provenance
marshal_ledger-0.1.0.tar.gz 271.8 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for marshal-ledger 0.1.0
File Interpreter ABI Platform
marshal_ledger-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 455.8 kB

Release files / marshal_ledger-0.1.0.tar.gz

Download URL marshal_ledger-0.1.0.tar.gz
Size 271.8 kB
Tags Source
SHA-256 checksum
How to use checksums
a01b47559c45905e6ec1227727488a1e7d9b826006c7d7e62daece469d0528dc
BLAKE2b-256 checksum
How to use checksums
fcea36d2b22965734ab988142f3680c7dd9fd08eb075e5c2a68413a34c84a521
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

Release files / marshal_ledger-0.1.0-py3-none-any.whl

Download URL marshal_ledger-0.1.0-py3-none-any.whl
Size 183.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
aeefb0d5d5e6d0cfbcd5371f71594bbe4f033badc226276a7c5edf2bf5ff9dec
BLAKE2b-256 checksum
How to use checksums
33b364fc61b4ea9bf7b15c35cba493c4bc513a80681d269f9edd726ff0165d41
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

Security for marshal-ledger 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for marshal_ledger-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page