Read-only HTTP catalog for runspec tool instances
Project description
runspec-registry
A lightweight HTTP registry for runspec agents.
When runspec serve starts on a host it registers itself here. The registry tracks which tools are available, on which hosts, and with what execution metadata. Clients (Chainlit apps, orchestrators, CI pipelines) query the registry to discover agents and route tool calls.
Install
pip install runspec-registry
Start the server
runspec-registry
Options:
--host TEXT Bind host (default: 0.0.0.0)
--port INT Bind port (default: 8765)
--api-key TEXT API key required for write endpoints
--ssl-keyfile PATH TLS private key
--ssl-certfile PATH TLS certificate
--purge-interval INT Seconds between stale-instance sweeps (default: 60)
--reload Auto-reload for development
API
Instances
| Method | Path | Auth | Description |
|---|---|---|---|
POST |
/instances |
write | Register an agent |
POST |
/instances/{id}/heartbeat |
write | Send heartbeat |
POST |
/instances/{id}/tools |
write | Update tool list |
DELETE |
/instances/{id} |
write | Deregister an agent |
Discovery
| Method | Path | Auth | Description |
|---|---|---|---|
GET |
/tools |
read | List all tools with their hosts |
GET |
/tools/{name} |
read | Get a tool with per-host execution metadata |
GET |
/instances |
read | List all live instances |
GET |
/health |
none | Health check |
Write endpoints require X-API-Key header when --api-key is set. Read endpoints are unauthenticated by default.
Authentication
Start with an API key to protect write endpoints:
runspec-registry --api-key mysecretkey
Agents register with the matching key:
runspec serve --registry http://myserver:8765 --registry-key mysecretkey
TLS
Provide a certificate and key to enable HTTPS:
runspec-registry --ssl-certfile cert.pem --ssl-keyfile key.pem
Agents connecting to a registry with a self-signed cert pass the CA cert:
runspec serve --registry https://myserver:8765 --registry-cert ca.pem
How it works
runspec servestarts on each host, readsrunspec.toml, and registers with the registry- It sends a heartbeat every 30 seconds (configurable via
heartbeatinrunspec.toml) - The registry purges instances that have missed heartbeats
- Clients query
/toolsto see what's available and on which hosts runspec run --host <host> --registry <url> <tool>looks up the tool, gets the execution metadata for that host, and SSHes to run it
Links
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 runspec_registry-0.1.1.tar.gz.
File metadata
- Download URL: runspec_registry-0.1.1.tar.gz
- Upload date:
- Size: 13.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
37ee708583557b369cbeb033749bcb23bc6e8403377d00beac1dee7940f874c3
|
|
| MD5 |
7979f8824578e1174dd9fc69c850c084
|
|
| BLAKE2b-256 |
47a0003d25106b37f5ce396ae8015143d1d51974a52d35ff1df1d94bdfba352e
|
Provenance
The following attestation bundles were made for runspec_registry-0.1.1.tar.gz:
Publisher:
registry-release.yml on JasonFinestone/runspec
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
runspec_registry-0.1.1.tar.gz -
Subject digest:
37ee708583557b369cbeb033749bcb23bc6e8403377d00beac1dee7940f874c3 - Sigstore transparency entry: 1566625792
- Sigstore integration time:
-
Permalink:
JasonFinestone/runspec@9dda7722c60f858bd76e7162d53dc2ed9d77fb54 -
Branch / Tag:
refs/tags/registry-v0.1.1 - Owner: https://github.com/JasonFinestone
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
registry-release.yml@9dda7722c60f858bd76e7162d53dc2ed9d77fb54 -
Trigger Event:
push
-
Statement type:
File details
Details for the file runspec_registry-0.1.1-py3-none-any.whl.
File metadata
- Download URL: runspec_registry-0.1.1-py3-none-any.whl
- Upload date:
- Size: 15.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
51f7883fe5a38896a7699c05f6c23f1d1ce777ddcc0b2a0c8ae9ccced1ee44ee
|
|
| MD5 |
5676809e9218516b8ed2ef6ff925cff8
|
|
| BLAKE2b-256 |
9e825cce3d537dcf35483cae3b475d3b2cd4e5834468fd2b5fb936f8f67800bf
|
Provenance
The following attestation bundles were made for runspec_registry-0.1.1-py3-none-any.whl:
Publisher:
registry-release.yml on JasonFinestone/runspec
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
runspec_registry-0.1.1-py3-none-any.whl -
Subject digest:
51f7883fe5a38896a7699c05f6c23f1d1ce777ddcc0b2a0c8ae9ccced1ee44ee - Sigstore transparency entry: 1566625845
- Sigstore integration time:
-
Permalink:
JasonFinestone/runspec@9dda7722c60f858bd76e7162d53dc2ed9d77fb54 -
Branch / Tag:
refs/tags/registry-v0.1.1 - Owner: https://github.com/JasonFinestone
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
registry-release.yml@9dda7722c60f858bd76e7162d53dc2ed9d77fb54 -
Trigger Event:
push
-
Statement type: