Sidekick Agent Runtime
Portable agent execution engine for Sidekick. Runs on user machines (laptops, VMs, self-hosted runners) and communicates with a Sidekick backend via HTTP and WebSocket.
Installation
pip install sidekick-agent-runtime
Quick Start
sidekick serve --url https://sidekick.example.com --token <your-runner-token>
Or using environment variables:
export SIDEKICK_URL=https://sidekick.example.com
export RUNNER_TOKEN=<your-runner-token>
sidekick serve
Configuration
| Flag | Env Var | Default | Description |
|---|---|---|---|
--url |
SIDEKICK_URL |
http://localhost:8000 |
Sidekick backend URL |
--token |
RUNNER_TOKEN |
(required) | Runner authentication token |
--name |
RUNNER_NAME |
hostname | Display name for this runner |
--workspace |
RUNNER_WORKSPACE |
~/.sidekick/<name>/workspace |
Override working directory |
--log-level |
LOG_LEVEL |
INFO |
Logging level (DEBUG, INFO, WARNING, ERROR) |
--allow-insecure |
SIDEKICK_ALLOW_INSECURE |
false |
Allow unencrypted HTTP to non-localhost backends |
--allow-env-passthrough |
SIDEKICK_ALLOW_ENV_PASSTHROUGH |
false |
Pass all server-provided env vars to CLI tools |
Note: The
--urlflag defaults tohttp://localhost:8000for local development. In production, always set this to your Sidekick instance URL (e.g.https://sidekick.example.com).
How It Works
The agent runtime connects to your Sidekick instance and executes agent turns:
- Connects via WebSocket for real-time notifications
- Receives turn assignments from Sidekick
- Calls LLM through Sidekick's proxy (SSE streaming)
- Executes tools locally (shell commands, file I/O) or remotely (via Sidekick)
- Reports results back to Sidekick
Local Tools
The runtime can execute these tools directly on the host machine:
- RunCommand — Execute shell commands
- ReadFile — Read file contents
- WriteFile — Write files
- ListFiles — List directory contents
- CLI Tools — Execute Python-based CLI tools defined in Sidekick
Requirements
- Python 3.11+
- A running Sidekick backend instance
- Network access from the runner to the Sidekick backend (HTTP + WebSocket)
- A runner token (generated in Sidekick's admin UI)
Security Considerations
The agent runtime executes commands on behalf of the connected Sidekick backend. Only connect to Sidekick instances you trust.
Key security features:
- HTTPS enforced by default — Connections to non-localhost backends over plain HTTP are blocked. Use
--allow-insecureto override (not recommended). - Sensitive env-var stripping — Environment variables containing credentials, proxy settings, and path-injection vectors are stripped from CLI tool subprocesses by default. Use
--allow-env-passthroughto override. - Atomic credential writes — Token cache (
~/.sidekick/credentials.json) is written atomically with0600permissions. - Token verification — After browser-based authentication, the received token is verified against the backend before caching.
See SECURITY.md for the full trust model and vulnerability reporting instructions.
Compatibility
| Agent Runtime | Sidekick Backend |
|---|---|
| 0.1.x | >= 0.1.0 |
The runtime communicates via the /api/runtime/v1 API. Breaking changes to this API will be reflected in the compatibility table above.
License
MIT
Metadata
Release files for sidekick-agent-cli 0.4.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 | Provenance | Actions |
|---|---|---|---|---|
| sidekick_agent_cli-0.4.0.tar.gz | 95.4 kB | Without provenance | Details for sidekick_agent_cli-0.4.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| sidekick_agent_cli-0.4.0-py3-none-any.whl | Python 3 | none | any | Details for sidekick_agent_cli-0.4.0-py3-none-any.whl |
Total release size: 171.2 kB
Release files / sidekick_agent_cli-0.4.0.tar.gz
| Download URL | sidekick_agent_cli-0.4.0.tar.gz |
|---|---|
| Size | 95.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
997fb5cba1e6f9346cecdf78cd4619f8e88450698991d6b468a9348cce0e2bd6
|
|
BLAKE2b-256 checksum How to use checksums |
cc59040b1a60704dec739551f7b96609ea9573bffe2a170e63236681944d316f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.21
|
Release files / sidekick_agent_cli-0.4.0-py3-none-any.whl
| Download URL | sidekick_agent_cli-0.4.0-py3-none-any.whl |
|---|---|
| Size | 75.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b77752178354d0467a437038b63cad04b47f6bd6709ad8d979281f91567f1ff6
|
|
BLAKE2b-256 checksum How to use checksums |
05334e86c75eb9b3608be84f4fe07ddfdec33fd3db0bb1def483a9a1390c3626
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.21
|
Security for sidekick-agent-cli 0.4.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.