Chisle
The coding-agent plugin that bills 52% of a bare model across 20 live tasks. Terse persona + tool-output compressor + context diet.
翻訳待ち
リポジトリ情報はまだ収集していません。
No updates detected yet. GitHub releases will appear here.
Self-hosted sandboxes for AI agents: Docker, Firecracker or Apple Virtualization microVMs. Your real API keys never enter the sandbox. Part of Directionally Local.
翻訳待ち
Loading the full README.
Read the full README ↗Sandboxes for AI agents, on your own hardware. A Mac Mini on your desk, a cloud VM, a bare-metal box — as many isolated agent sandboxes as it can hold, and your API keys never enter any of them.
Part of Directionally Local, an open-source stack for running coding agents on your own hardware, alongside Autopilot and Serverless Objects. Product page: directionallylocal.com/hotcell. Start a coding agent on your computer at dl.new.
Benchmarks (full results) — sequential TTI · staggered TTI · burst TTI · warm-pool adopt · sandbox-dax real workload — measured with the ComputeSDK harness, plus dax's OpenCode benchmark on bare metal (raw evidence).
npm i -g hotcell
hotcell # first run: 30-second guided setup — then your live fleet
Docker runtime on a non-default socket (colima, OrbStack, podman)? hotcell reads
DOCKER_HOST, not the docker CLI's context — e.g. for colima:export DOCKER_HOST=unix://$HOME/.colima/default/docker.sockbeforehotcell start.
hotcell keys add openrouter # any provider's key — stays on the host, never in a sandbox
hotcell keys import .env # or bulk-import a .env (OPENAI_API_KEY → openai, …)
hotcell create -n 5 --repo https://github.com/you/app --branch # five isolated cells, each on its own branch
hotcell terminal <id> # shell inside a cell
hotcell run --setup "pip install ruff" "ruff check ." # one-shot: create → run → destroy
hotcell rm --all # everything gone; your repo untouched
hotcell create -n 5 --name feat --branch auto --autopilot \
--repo https://github.com/you/app
Five isolated cells, each with the repo cloned, its own auto-named branch (hotcell/<id>, so pushes never collide), and Autopilot preinstalled and wired to the gateway (--autopilot implies --egress). --name feat labels the cells feat-1…feat-5; pass a branch name (--branch feat) to get feat-1…feat-5 branches instead. Live per-cell progress while they provision — slow setups can't falsely time out. Open a terminal per cell and run Autopilot on a different feature:
hotcell terminal <id> # inside: cd app && autopilot
hotcell rm --all # done — five cells gone, your repo untouched
The real OpenRouter key stays on the host: Autopilot uses a per-sandbox gateway token, while the daemon swaps in the real key and meters usage. --opencode remains available as an alternative; the examples/agents.sh workflow demonstrates keyless GitHub PR creation.
hotcell keys import .env asks you to set every variable to gateway (the real key stays on the host; the sandbox gets a per-sandbox token), inject (the real value is copied into every sandbox), or skip. hotcell does not guess which is which — a name cannot tell you whether a value is a secret, and both wrong answers are silent. The confirm step lists every value that will enter a sandbox before anything is stored.
Protected — any API whose credential travels in an HTTP request header. OpenAI, Anthropic, OpenRouter, GitHub, Stripe, Slack, Cloudflare and most REST APIs work identically; there is no LLM-only carve-out. Providers beyond the five built-in routes need their base URL and auth header once, saved to .hotcell/env.json (no secrets — commit it, and a teammate's clone inherits every decision).
Not protected — the real value enters the sandbox if you choose inject:
gateway is unreachable for these: the base-URL prompt rejects postgres://.Protected, but not drop-in — an SDK that hardcodes its host ignores the injected <PROVIDER>_BASE_URL and calls the provider directly. LLM SDKs read it; many others take a host in code and need one line to pass it through. Under HOTCELL_EGRESS_ENFORCE those direct calls are denied rather than quietly leaving the gateway out of the loop.
Names can shift. A gateway variable reaches the sandbox under its route's name — import GH_TOKEN as the github route and the sandbox sees GITHUB_API_KEY. The review screen shows the route for each row.
Docs: guide · egress & keys · every command & config · Linux self-hosting · benchmarks · Python SDK: pip install hotcell
Apache-2.0