toolchestrator
The Python client for Toolchestrator — connect a small local tool to your company's hub without moving it off the machine it runs 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
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 toolchestrator-0.6.0.tar.gz.
File metadata
- Download URL: toolchestrator-0.6.0.tar.gz
- Upload date:
- Size: 18.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0245287a958045eb55dd07e86afb2674e13e04958dad20969958910b46e0fef
|
|
| MD5 |
18b4598fa122f9600c117d06b54122b2
|
|
| BLAKE2b-256 |
c4f66bacdeef9b9b1f69a23dd901f91639aaabc7a4eb045fddb8fbe0f10bc94d
|
Provenance
The following attestation bundles were made for toolchestrator-0.6.0.tar.gz:
Publisher:
publish-client.yml on kstevica/toolchestrator
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
toolchestrator-0.6.0.tar.gz -
Subject digest:
a0245287a958045eb55dd07e86afb2674e13e04958dad20969958910b46e0fef - Sigstore transparency entry: 2625939250
- Sigstore integration time:
-
Permalink:
kstevica/toolchestrator@c90caf003f854bcd9ddfbf5f6d7b6badb713a25d -
Branch / Tag:
refs/tags/client-v0.6.0 - Owner: https://github.com/kstevica
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-client.yml@c90caf003f854bcd9ddfbf5f6d7b6badb713a25d -
Trigger Event:
push
-
Statement type:
File details
Details for the file toolchestrator-0.6.0-py3-none-any.whl.
File metadata
- Download URL: toolchestrator-0.6.0-py3-none-any.whl
- Upload date:
- Size: 18.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c42ae354bb54b7868aa479f219878f27e8ac97d49b74a9c32dab9dea4f326bf4
|
|
| MD5 |
19f03a34e1262683c3973127969aed21
|
|
| BLAKE2b-256 |
c4ec4263900eea97c809bcb5992e4a32a4dd5bfe9bc06009f93a1a6aef21b048
|
Provenance
The following attestation bundles were made for toolchestrator-0.6.0-py3-none-any.whl:
Publisher:
publish-client.yml on kstevica/toolchestrator
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
toolchestrator-0.6.0-py3-none-any.whl -
Subject digest:
c42ae354bb54b7868aa479f219878f27e8ac97d49b74a9c32dab9dea4f326bf4 - Sigstore transparency entry: 2625939314
- Sigstore integration time:
-
Permalink:
kstevica/toolchestrator@c90caf003f854bcd9ddfbf5f6d7b6badb713a25d -
Branch / Tag:
refs/tags/client-v0.6.0 - Owner: https://github.com/kstevica
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-client.yml@c90caf003f854bcd9ddfbf5f6d7b6badb713a25d -
Trigger Event:
push
-
Statement type: