Dispatch bounded tasks to isolated LLM workers (GLM, Kimi, and more)
Project description
pilot-workers
Dispatch bounded tasks to isolated LLM workers. Your main AI agent (Claude, Codex, or any planner) stays in control of requirements, planning, and verification — the worker only executes what it's told.
What it does
- Provider isolation: each model (GLM, Kimi, or your own) gets its own credentials, XDG directories, logs, and session storage. No cross-contamination.
- Fixed routing: provider, model, and endpoint are locked per YAML config. Tasks cannot override them.
- Security by default: API keys never appear in CLI args, environment variables, task contracts, or logs. Output is auto-redacted.
- Five modes:
code(edit),explore(read-only),test(run tests),review(read-only audit),resume(continue a prior code session). - Observable:
worker_runner.started→ heartbeats →worker_runner.summary. Human-readable live log atlatest.logfortail -f. - Pluggable runners: currently wraps OpenCode via
@ai-sdk/openai-compatible; the runner interface is designed for future alternatives (Aider, Continue, etc.).
Quick start
# 1. Install the pinned OpenCode runtime
pilot-workers runtime install
# 2. Add a provider (YAML files in src/pilot_workers/data/providers/)
# GLM and Kimi are included; add your own by copying the template
# 3. Configure credentials (interactive, key never displayed)
python3 -m pilot_workers.credentials glm
python3 -m pilot_workers.credentials kimi-k3
# 4. Verify
python3 -m pilot_workers.cli.run --provider glm --mode explore --workdir . --task "hello" --dry-run
# 5. Run a real task
python3 -m pilot_workers.cli.run \
--provider glm --mode code \
--workdir /path/to/project \
--task-file /path/to/task.md
Adding a new provider
Drop a YAML file in data/providers/ (inside the package):
key: deepseek
provider_id: deepseek-worker
model_id: deepseek-coder-v3
base_url: https://api.deepseek.com/v1
display_name: DeepSeek Coder V3
context_tokens: 128000
output_tokens: 8192
Then python3 -m pilot_workers.credentials deepseek and you're done.
Host integration
The host is whatever AI agent acts as the planner — Claude, Codex, Gemini, GLM itself, or anything that can write a task file and call the CLI.
integrations/ has ready-made configs for current hosts:
claude-host/: 12 agents + 8 slash commands (/glm:code,/kimi:explore, etc.)codex-host/:$glm/$kimi/$dsskill entry points
Adding a new host: create integrations/<name>-host/, put whatever config your host needs, point it at python3 -m pilot_workers.cli.run. See integrations/README.md.
Architecture
See docs/architecture.md for the shared contract, security model, and verification checklist.
License
MIT
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 pilot_workers-0.2.0.tar.gz.
File metadata
- Download URL: pilot_workers-0.2.0.tar.gz
- Upload date:
- Size: 59.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d13afebad4c308c4f08d68be8ff9df5ca5c8e13194ee8b39f58da6e6dcad9c61
|
|
| MD5 |
531f8c85835c45b97fc24806388eabed
|
|
| BLAKE2b-256 |
6965ba61d07efd277f9553d55fd431d59aac14180a94b64cde60a2f4523b9232
|
Provenance
The following attestation bundles were made for pilot_workers-0.2.0.tar.gz:
Publisher:
publish.yml on gWcyWoo/pilot-workers
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pilot_workers-0.2.0.tar.gz -
Subject digest:
d13afebad4c308c4f08d68be8ff9df5ca5c8e13194ee8b39f58da6e6dcad9c61 - Sigstore transparency entry: 2224736518
- Sigstore integration time:
-
Permalink:
gWcyWoo/pilot-workers@875eab23c75b4a5d006593e3baf32a4f4d92bbc9 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/gWcyWoo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@875eab23c75b4a5d006593e3baf32a4f4d92bbc9 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pilot_workers-0.2.0-py3-none-any.whl.
File metadata
- Download URL: pilot_workers-0.2.0-py3-none-any.whl
- Upload date:
- Size: 100.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ab853373417222c7f2961f7f68aec8c9c5ca035f469e26636d9c12fc1657268
|
|
| MD5 |
8f9b5614328072dc175d10d4efd753ba
|
|
| BLAKE2b-256 |
5e9185f54fd314b6a3394bed346611e04c262728015a8bd89933547ede799e0c
|
Provenance
The following attestation bundles were made for pilot_workers-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on gWcyWoo/pilot-workers
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pilot_workers-0.2.0-py3-none-any.whl -
Subject digest:
8ab853373417222c7f2961f7f68aec8c9c5ca035f469e26636d9c12fc1657268 - Sigstore transparency entry: 2224737250
- Sigstore integration time:
-
Permalink:
gWcyWoo/pilot-workers@875eab23c75b4a5d006593e3baf32a4f4d92bbc9 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/gWcyWoo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@875eab23c75b4a5d006593e3baf32a4f4d92bbc9 -
Trigger Event:
push
-
Statement type: