Marmo-Core
Marmo-Core is a lightweight Python kernel for registering, retrieving, selecting, and safely executing AI-agent resources.
Requirements
- Python 3.10 or newer
Install the published package with:
python -m pip install marmo-core
For local development, install the checkout with:
python -m pip install -e '.[dev]'
Validate and inspect the bundled resource examples with:
marmo validate examples/resources
marmo search examples/resources --task "read a local text file safely"
The resources directory also includes ten standalone samples for each of
Memory, Tool, and Agent. Every Tool and Agent sample resolves an executable
standard-library implementation through its python: ref, so no manual
binding is needed. Filesystem samples are confined to the current working
directory. External samples still require the declared permissions and human
approval; notification webhooks are configured through
MARMO_NOTIFICATION_<DESTINATION>_URL rather than model-visible arguments.
The format-code sample invokes Ruff and therefore requires the .[dev]
extra.
marmo validate resources/memory resources/tools resources/agents
marmo list resources/memory resources/tools resources/agents
Run the offline JSON validation Tool end to end with the mock LLM:
marmo run resources/tools/validate-json.json \
--task "validate JSON input" \
--tool-args '{"tool.marmo.samples.validate-json":{"value":{"name":"Marmo"},"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string"}}}}}' \
--strict --format json
Agent samples are also directly executable:
marmo run resources/agents/security-reviewer.json \
--task "review webhook security" \
--tool-args '{"agent.marmo.samples.security-reviewer":{"goal":"Review webhook security","context":"external upload"}}' \
--format json
API and model configuration
Create a .env file and set the relevant key when using an OpenAI-compatible
LLM, Anthropic LLM, or embedding provider. Model names and model-specific
runtime settings are also read from .env rather than being hard-coded by
the providers. In a source checkout, .env.example can be copied as a
starting point:
cp .env.example .env
OPENAI_API_KEY=your_key_here
ANTHROPIC_API_KEY=your_key_here
OPENAI_MODEL=gpt-5.6-terra
OPENAI_REASONING_EFFORT=none
ANTHROPIC_MODEL=claude-sonnet-5
ANTHROPIC_MAX_TOKENS=16384
OPENAI_EMBEDDING_MODEL=text-embedding-3-small
OPENAI_MODEL, ANTHROPIC_MODEL, and OPENAI_EMBEDDING_MODEL are required
when the corresponding provider is constructed without an explicit model
argument. ANTHROPIC_MAX_TOKENS is required unless max_tokens is passed
explicitly. OPENAI_REASONING_EFFORT is optional and applies when the OpenAI
model is resolved from the environment. The package loads .env without
overriding values already present in the operating-system environment. .env
is excluded from Git.
The benchmark-only embedding and cross-encoder integration is optional:
python -m pip install '.[benchmark]'
Run the test suite with:
python -W error::ResourceWarning -m unittest discover -s tests
Strict CLI runs
The kernel normally allows a task to recover after a resource is denied or
cannot be activated. For automation and release checks, pass --strict so a
skipped resource or a tool named in --tool-args that was not evaluated makes
the command exit non-zero.
CLI commands auto-discover resources, skills, or examples/resources from
the current directory when no resource path is provided. Connector-only runs
should pass --no-default-resources to make their behavior independent of the
working directory.
--allow-side-effect is an exact, repeatable allowlist. For example, allowing
both side-effect-free resources and read operations requires
--allow-side-effect none --allow-side-effect read.
See Built-in Connectors and Local Resource Packages for complete usage examples.
Release files for marmo-core 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| marmo_core-0.4.0.tar.gz | 339.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| marmo_core-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 513.7 kB
Release files / marmo_core-0.4.0.tar.gz
| Download URL | marmo_core-0.4.0.tar.gz |
|---|---|
| Size | 339.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dbcb32d4103ed6100c8ee4379dedde583ab54850fa2031873ca620f1aff5ba23
|
|
BLAKE2b-256 checksum How to use checksums |
207876d51b7c0a57613d3a1d46fd830d1e7aa025142303c89e6e61309380c032
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Aug 21, 2026.
Transparency logRelease files / marmo_core-0.4.0-py3-none-any.whl
| Download URL | marmo_core-0.4.0-py3-none-any.whl |
|---|---|
| Size | 174.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
727e28663a9335d3cc763e13ca9a272c583db02d19d9a6eca48cfd4dcf17db29
|
|
BLAKE2b-256 checksum How to use checksums |
0a4ae15bc5f39ea4ad4d589ea9290398c752ba54eae0dc8946b4af1503ea48fe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Aug 21, 2026.
Transparency log