Meta-package that installs a pinned, compatible JARVIS OSS stack (daemon, runtime, tool registry, standard).
Project description
First-party out-of-the-box OSS implementation for ARP.
Ready to use. Ready to integrate. Ready to expand.
JARVIS is the first-party, open-source implementation of the Agent Runtime Protocol (ARP) ecosystem.
It is designed to be:
- Standard-first: ARP contracts are the source of truth.
- Modular: swap runtimes, tool registries, and orchestration layers without rewriting your app.
- Runtime-agnostic: run agents locally, in containers, or in managed environments.
- Tool-agnostic: tools can be local functions, remote services, or adapters to other ecosystems.
This repository provides a single access point for JARVIS and a unified CLI to run the stack with pinned, known-compatible versions. It is the recommended way of working with the JARVIS stack as it evolves over time.
What you can do with JARVIS
- Run an agent as a service (HTTP API) with a predictable lifecycle: submit runs, stream events, fetch results.
- Attach tools through a Tool Registry (discover tools, validate schemas, invoke tools).
- Orchestrate multiple runtimes through a Daemon (spawn/register instances, route runs).
As an first-party implementation of the ARP protocol, JARVIS is also supported by the owners of the standard, making it the most up-to-date implementation in this rapidly-changing ecosystem.
On the other hand, thanks to the modular nature of ARP, extending on JARVIS or swapping out components for your custom need is extremely easy. Just make sure your component adheres to the ARP Standard, and link them together via configurable endpoints in the JARVIS components. Each component does not need to know how the other parts are implemented, just that they are standard-compliant!
Quickstart with the JARVIS Stack
Prerequisites
- Python 3.10+ (recommended: a virtualenv)
- Recommended: A shell with multi-tab support.
Install the JARVIS distribution
This distribution pins compatible OSS component versions, so that you don't need to worry about contract compatibility issues.
pip install arp-jarvis
Start the Tool Registry
The first step is to make sure the Tool Registry is running. It provides tool discovery and execution capabilities to the agents.
arp-jarvis tool-registry --host 127.0.0.1 --port 8081
Run a demo
There are 2 ways to see JARVIS agents run. You can either directly interact with an agent runtime instance, or you can do it through the daemon that manages multiple agent runtimes.
Either way is officially supported, but we expect most users to utilize the daemon for its runtime instance lifecycle management capabilities.
Option 1. Start a runtime instance directly
After the tool-registry is running, open up another terminal tab and spin up a runtime instance.
arp-jarvis runtime serve --host 127.0.0.1 --port 8080 --tool-registry-url http://127.0.0.1:8081
Then, you can run a simple request to the runtime instance:
# Create a run
curl -s -X POST http://127.0.0.1:8080/v1/runs \
-H 'Content-Type: application/json' \
-d '{"input":{"goal":"What is (19*23)?"}}'
# Then fetch the result (copy run_id from the response)
curl -s http://127.0.0.1:8080/v1/runs/<run_id>/result
Option 2. Manage the runtime instances through the daemon service
The other, more capable approach of running runtime instances is through the daemon
- Start the daemon in a new terminal tab:
arp-jarvis daemon --host 127.0.0.1 --port 8082
- Register a runtime profile (safe list) for managed instances:
cat > runtime_profile_default.json <<'JSON'
{
"runtime_name": "jarvis-runtime",
"defaults": {
"tool_registry_url": "http://127.0.0.1:8081"
},
"extensions": {
"arp.jarvis.exec": {
"driver": "command",
"command_template": ["arp-jarvis-runtime", "serve", "--port", "{port}"]
}
}
}
JSON
arp-jarvis daemon runtime-profiles upsert default --request-json runtime_profile_default.json
- Start a managed runtime instance:
arp-jarvis daemon start --runtime-profile default --count 1
- Submit a run request (via the daemon API):
curl -s -X POST http://127.0.0.1:8082/v1/runs \
-H 'Content-Type: application/json' \
-d '{"input":{"goal":"What is (19*23)?"},"runtime_selector":{"runtime_profile":"default"}}'
Getting run results
JARVIS follows an async pattern at the API layer: submit a run, then fetch status/result (and optionally trace data).
# Status
curl -s http://127.0.0.1:8082/v1/runs/<run_id>
# Result
curl -s http://127.0.0.1:8082/v1/runs/<run_id>/result
# Trace
curl -s http://127.0.0.1:8082/v1/runs/<run_id>/trace
[!NOTE] For production deployments, you will want auth, isolation, and observability beyond the MVP defaults. JARVIS is still in its early stage, and these functionalities are being implemented and will be included in future releases.
Architecture (high level)
JARVIS is the first-party implementation of the ARP ecosystem. It accompanies every ARP Standard release to provide both an out-of-the-box solution and an implementation reference.
Here's an diagram of its architecture, closely aligning with the standard:
Design principles
- ARP is standard-first: implementations should strictly follow the spec, not invent new behavior without an extension mechanism.
- This does not mean there are no ways to extend on the contract for your needs. ARP has built-in
extensionsfield in the request body for passing custom fields.
- This does not mean there are no ways to extend on the contract for your needs. ARP has built-in
- Interoperability is a first-class requirement:
- Support adapters to other ecosystems (e.g., MCP for tools, A2A/Agent Protocol for agent-to-agent / agent-as-a-service).
- The ARP standard should never prevent bridging; it should make bridging clean.
Unified CLI
This meta package installs the pinned OSS components and exposes a single CLI that forwards to component CLIs.
Examples
arp-jarvis --help
arp-jarvis runtime --help
arp-jarvis tool-registry --help
arp-jarvis daemon --help
If you prefer using the component CLIs directly, you can still do so.
arp-jarvis-runtime --help
arp-jarvis-tool-registry --help
arp-jarvis-daemon --help
Repositories in the ecosystem
Standard
Start here for an overview of the ARP Standard Contract. It also covers SDK generation.
AgentRuntimeProtocol/ARP_Standard— ARP standard (OpenAPI/JSON schemas + SDK generation + conformance)
First-party OSS implementations - JARVIS stack
AgentRuntimeProtocol/JARVIS_Runtime— reference agent runtime implementationAgentRuntimeProtocol/JARVIS_Tool_Registry— reference Tool Registry implementation for tool discovery + invocationAgentRuntimeProtocol/JARVIS_Daemon— reference Daemon implementation for runtime instances orchestration
Current Priorities
The development on ARP and JARVIS is very active and new features are implemented and rolled out on a weekly basis. Some of our immediate focus points on JARVIS components include:
- Interop adapters for
tool-registry: MCP support and integration, Agent Protocol facade, A2A bridge. - Hardening daemon-managed instances: profile safety, lifecycle management, and isolation.
- Better docs + examples: end-to-end demos, deployment patterns, and interoperability guides.
- Observability improvements: richer traces and easier integrations.
Contributing
If you want to help:
- Start small. Even documentation or codestyle fixes are valuable.
- It's okay and maybe even expected that you will use AI coding agents like Claude Code or Codex. But before you want an PR approved, review it first. We will not check in low-quality code.
- Add or improve:
- documentation that reduces time-to-first-run
- end-to-end examples
- integration tests
- compatibility/interop adapters
Use GitHub Issues for bugs/feature requests and PRs for changes.
License
All OSS projects are under MIT license. See the LICENSE file in each repository.
Project details
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 arp_jarvis-0.1.0.tar.gz.
File metadata
- Download URL: arp_jarvis-0.1.0.tar.gz
- Upload date:
- Size: 7.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8266261a33695a9ccee16b679273d3f39837787f4549f4408fff4bf9fd7f56cc
|
|
| MD5 |
1e0491f0cd8e237da5d900e215d56ebe
|
|
| BLAKE2b-256 |
54f7e116dd2fbc4367c1883556d7d875aa6cc21a4023a9b2f086338d834de08e
|
Provenance
The following attestation bundles were made for arp_jarvis-0.1.0.tar.gz:
Publisher:
publish.yml on AgentRuntimeProtocol/JARVIS_Release
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
arp_jarvis-0.1.0.tar.gz -
Subject digest:
8266261a33695a9ccee16b679273d3f39837787f4549f4408fff4bf9fd7f56cc - Sigstore transparency entry: 770872514
- Sigstore integration time:
-
Permalink:
AgentRuntimeProtocol/JARVIS_Release@974604bcf8401e2ef74ea327085af54c5063de1e -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/AgentRuntimeProtocol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@974604bcf8401e2ef74ea327085af54c5063de1e -
Trigger Event:
push
-
Statement type:
File details
Details for the file arp_jarvis-0.1.0-py3-none-any.whl.
File metadata
- Download URL: arp_jarvis-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7379069371414ca6030bf9d162606dc2ed0da638715f939c3898412a9721ae20
|
|
| MD5 |
3213bbfce3b81f38beca7beb53d02dab
|
|
| BLAKE2b-256 |
34924672315692ca5fa3b9f2ae9398cb55f75348e5b6aa99814eb9a1148e4204
|
Provenance
The following attestation bundles were made for arp_jarvis-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on AgentRuntimeProtocol/JARVIS_Release
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
arp_jarvis-0.1.0-py3-none-any.whl -
Subject digest:
7379069371414ca6030bf9d162606dc2ed0da638715f939c3898412a9721ae20 - Sigstore transparency entry: 770872517
- Sigstore integration time:
-
Permalink:
AgentRuntimeProtocol/JARVIS_Release@974604bcf8401e2ef74ea327085af54c5063de1e -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/AgentRuntimeProtocol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@974604bcf8401e2ef74ea327085af54c5063de1e -
Trigger Event:
push
-
Statement type: