toolchestrator
The Python client for Toolchestrator, the runtime for the small apps your team builds with Claude Code. It connects an app to its Toolchestrator runtime so teammates and AI can use it, while the app keeps running on the machine it was built on.
With this client a connected tool can:
- register itself in the company registry (name, author, the problem it solves);
- publish versioned JSON-Schema data models and sync records to the hub;
- serve remote task actions over an outbound long-poll (the hub never connects into your machine);
- read other tools' data through the hub with filtered queries;
- invoke another tool's action and get the result back (
tc.call); - expose its own local web UI through the hub (
tc.serve_web).
Works on Python 3.9+; depends only on requests and websocket-client.
Install
pip install toolchestrator
Quick start
from toolchestrator import Toolchestrator
# one-time registration, with a personal token from your hub's Settings page
tc = Toolchestrator.register(
"https://hub.example.com", # your company's hub URL
"tcu_...", # personal access token
"invoice-radar", "Invoice Radar",
description="Tracks vendor invoices and flags overdue ones.",
sharing_scope="private", # start private; widen deliberately
)
# afterwards, anywhere in the tool (loads .toolchestrator.json):
tc = Toolchestrator()
tc.sync_schema("invoice", invoice_schema)
tc.sync_data("invoice", rows, id_field="id")
tc.serve({"mark_paid": handle_mark_paid}) # execute tasks queued on the hub
The easiest way to connect a tool is to let an AI coding agent do the wiring: point it at
your hub's connect guide (<your-hub-url>/skill) and ask it to "connect this tool to
Toolchestrator". The hub URL always comes from you - the client never assumes one.
License
MIT © Stevica Kuharski
Metadata
Release files for toolchestrator 0.7.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 | |
|---|---|---|---|
| toolchestrator-0.7.0.tar.gz | 28.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| toolchestrator-0.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 55.9 kB
Release files / toolchestrator-0.7.0.tar.gz
| Download URL | toolchestrator-0.7.0.tar.gz |
|---|---|
| Size | 28.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dc268802cd6ff9f255509cf64ed501094cc61700bac414f54d8904079b869f0a
|
|
BLAKE2b-256 checksum How to use checksums |
456e87be04874b62a1655dc1a9bfcce720b9392d137f8d6896fcaac7ef52f9fe
|
| 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 Sep 2, 2026.
Transparency logRelease files / toolchestrator-0.7.0-py3-none-any.whl
| Download URL | toolchestrator-0.7.0-py3-none-any.whl |
|---|---|
| Size | 27.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
caf5bbc6fc9d1234e8aa3fee7c90040cf559fe6e5bddd1843fa0ab9d45eb8433
|
|
BLAKE2b-256 checksum How to use checksums |
cf55740dfa1e158547fd2ed625fedbb0ec915016af04fc5102cf2a0b487c49c1
|
| 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 Sep 2, 2026.
Transparency log