Docker Sandboxes kit for running little-coder against a local Docker Model Runner endpoint.
Create and run a sandbox in the current directory:
sbx run --kit git+https://github.com/shelajev/little-coder-sbx-kit.git \
little-coder-model-runner . -- --model llamacpp/qwen3.6-35b-a3b-64kThe kit does not guess which local model you have. You must pass a model explicitly:
-- --model llamacpp/<docker-model-tag>For example:
-- --model llamacpp/qwen3.6-35b-a3b-64kIf you forget the model, the sandbox fails fast and prints the exact command shape to use.
Enable Docker Model Runner's TCP endpoint:
docker desktop enable model-runner --tcpCheck your installed local models:
docker model listUse the model tag from that list after the llamacpp/ prefix. For example, a Docker Model Runner tag named qwen3.6-27b becomes:
--model llamacpp/qwen3.6-27bIf you already have the Unsloth Qwen3.6-35B-A3B GGUF model under its Hugging Face tag, give it a short local tag:
docker model tag \
huggingface.co/unsloth/qwen3.6-35b-a3b-gguf:UD-Q6_K_XL \
qwen3.6-35b-a3bCreate a lightweight 64k-context variant:
docker model package --from qwen3.6-35b-a3b \
--context-size 64000 \
qwen3.6-35b-a3b-64kVerify Docker Model Runner can resolve it:
curl http://localhost:12434/v1/models/qwen3.6-35b-a3b-64kThen run the kit with:
-- --model llamacpp/qwen3.6-35b-a3b-64kCreate and run a sandbox with another Docker Model Runner tag:
sbx run --kit git+https://github.com/shelajev/little-coder-sbx-kit.git \
little-coder-model-runner . -- --model llamacpp/<docker-model-tag>Create a named sandbox:
sbx create --name little-coder-current \
--kit git+https://github.com/shelajev/little-coder-sbx-kit.git \
little-coder-model-runner .Run that named sandbox later:
sbx run --kit git+https://github.com/shelajev/little-coder-sbx-kit.git \
little-coder-current -- --model llamacpp/qwen3.6-35b-a3b-64kFor custom agent kits, pass --kit again when running an existing sandbox. sbx records the custom agent name on the sandbox, but sbx run <sandbox> may not resolve a Git or local kit-defined agent unless the kit is supplied again.
The kit ships with a sentinel model value:
LITTLE_CODER_MODEL_ID=__REQUIRED_MODEL_ID__That sentinel is intentional. Docker Sandboxes kits do not currently have an interactive "ask during install" parameter field, so the public, non-surprising path is to pass the model after the sbx run ... -- separator.
Any Docker Model Runner tag can be used as a llamacpp/ model:
sbx run --kit git+https://github.com/shelajev/little-coder-sbx-kit.git \
little-coder-model-runner . -- --model llamacpp/<docker-model-tag>The launcher registers unknown llamacpp/* model IDs with little-coder at runtime. The default local profile context is 64000, matching the Qwen 64k packaging example.
For sbx exec, close or pipe stdin so pi does not wait for more input:
sbx exec little-coder-current -- sh -lc \
'little-coder-dmr --model llamacpp/qwen3.6-35b-a3b-64k --thinking off --no-tools --no-session -p "Reply with exactly: sbx-ok" < /dev/null'Expected output includes:
sbx-ok
If you clone this repo, run.sh runs a named sandbox with the local kit path. You still need to pass a model:
./run.sh little-coder-current -- --model llamacpp/qwen3.6-35b-a3b-64kUse another sandbox name as the first argument:
./run.sh my-sandbox -- --model llamacpp/qwen3.6-27bThe kit allows only:
registry.npmjs.org:443to installlittle-coderhost.docker.internal:12434to reach Docker Model Runner
It sets:
LLAMACPP_BASE_URL=http://host.docker.internal:12434/v1
LLAMACPP_API_KEY=docker-model-runner
PI_OFFLINE=1PI_OFFLINE=1 suppresses pi startup update checks. Inference still goes to Docker Model Runner.
qwen3.6-35b-a3b-64k: Qwen3.6-35B-A3B 64k Docker Model Runner variant.qwen3.6-35b-a3b: Qwen3.6-35B-A3B short local tag.qwen3.6-27b: Qwen3.6 dense fallback.
Use whatever tag is present in docker model list.