Repository navigation
devcontainer-kit v0.3.6
Interface stays 2.
Added
- Two modes for the coding-agent CLIs. The default: the CLIs chosen at onboarding
([agents] clis) are wired (home volume,DCK_AGENTSpersistence, host-profile sharing,
default_profile) and installed for everyone; a developer may install fewer. The
advanced opt-in,[agents] supported = "all" | [...], wires every supported CLI,
installed or not, and each developer chooses what to install;dck initoffers it
(one interactive question for a newdck.tomlwith the agents layer, or
dck init --supported all|"a b"). What your image installs: env
DCK_AGENT_CLIS>DCK_AGENT_CLISindocker/local/.env> host profile[agents] clis
(replace), thenclis_extra(add) > dck.tomlclis([]= none), plus every
INSTALL_<CLI>_CLIthat is exactlytrue(environment ordocker/local/.env). An
unknown or unwired name stopsdck up/rebuild(exit 3) with the list (in the default
mode, with the way to the advanced mode); the layer refuses it at build time too
(DCK_AGENT_SUPPORTED). See
docs/config.md. - The rendered compose passes
DCK_AGENT_CLIS: "${DCK_AGENT_CLIS:-<clis>}"and one
INSTALL_<CLI>_CLI: "${INSTALL_<CLI>_CLI:-false}"per wired CLI as build args, so
plain compose and the editor's rebuild readdocker/local/.envtoo;dck initcreates
a create-onlydocker/local/.env.examplethat explains the repository's mode and its
options.
dck up/rebuildpass the effective list, through a fourth runtime overlay
(<project>-clis.yml, the build arg only) when it differs from dck.toml's. - The image records what it installed (
/opt/dck/agent-clis):dck upwarns anddck doctorreports rebuild needed: dck rebuild when it differs from the requested list;
the doctor shows the mode, supported, requested (with its source) and installed
(layers.clis_mode,clis_supported,clis_effective,clis_source,clis_image). - PRIMARY mode.
dck [--project P] --compose-file F… <verb>without--serviceruns
the main service through other compose files (a repository's own overlay, for example a
preview proxy's backend file): the files replacedockerComposeFilein order, dck's
runtime overlays still go last, with the same alias, label and Herdr machine as a plain
upand every host step (always the compose backend). Forup,rebuild,down,
ps,logs,shell,exec,ssh,stop,start,restart,config,herdr,
doctor(which lists the files in use:repo.compose_files,compose_override). antigravityas a coding-agent CLI kind ([agents] clis,supported, the host
profile'sclis/clis_extra,DCK_AGENT_CLIS,INSTALL_ANTIGRAVITY_CLI): the agents
layer installs the Antigravity CLI (agy) throughak install antigravity, and the
entrypoint persists~/.geminion anantigravityvolume. Inside a containeragy
reaches no OS keyring, so it keeps each Google login in a file under that home —
one login per ak profile (ak antigravity @name), several accounts side by side,
which the macOS Keychain's single slot never allowed. Its profiles stay unshareable
from the host ([agents] host_profilesskips them, as before). A state volume can no
longer be namedantigravity(it is the CLI's home volume).
Changed
- An existing repository keeps its wiring (the default mode: its
clis); its compose
file gains the build args, sodck upanddck doctorreport it as stale until
dck initre-renders it. [agents] host_profilesshares the ak profiles of the wired CLIs that exist on the host
(in the advanced mode, every supported CLI, installed or not); what it skips is reported
for the requested CLIs only.--serviceneeds--project;--compose-filewithout--serviceis PRIMARY mode
(it was a usage error).- Agent tooling: the vendored
deepworkplanskill moves to v7.6.3 and the AI Diff Reviewer
skill to v3.3.11, the pack's pin (skills-lock.json, AGENTS.md provenance), through the
pack's own upgrade flow and addon planner;.dwp/config.jsonnow also records the dev
container addon (the repository's own dck container, v0.3.5). - Pins: coding-agents-kit v0.7.0 (
AGENTKIT_TAG; tag commitd2b5b59, tarball
sha2568bd2746b…,SHA256SUMSsha256c30da1be…): theantigravitykind,ak usage
for Antigravity, and ak's capacity and lease commands.
Fixed
- With
[agents] host_profileson, an ak profile created inside for a CLI the host does not
share (antigravity, cursor, or a CLI with no host profile) was written to
~/.dck/host/agentkit/profiles/<cli>/in the container layer, sodck rebuild(or any
recreate) lost it and its login. The entrypoint now links that directory to the CLI's
directory on theagentkitvolume (0700) — the one ak uses with the option off. Before
a recreate,dck up --recreateanddck rebuildrun that step inside the old container,
so an older image's layer-only profiles move onto the volume first, without overwriting
the volume's copy (the rest is kept on the volume as.<cli>.dck-pre-volume-<UTC>,
logged by path). Shared CLIs' directories (the host's mounts) and anything on another
device are never moved; a link pointing outside the volume is refused. See
docs/layers.md. - The preflight checked devcontainer.json's compose files even when
--compose-file
(PRIMARY mode, satellites) replaced them, so a given file withprivileged, the Docker
socket, host mounts or a path outside the repository started without--trust. It now
checks the files compose runs. dck upreused an image dck did not build when one already had the service's tag (a
pre-dck image left by a repository's old tooling, with its own entrypoint), so no host
step ran untildck rebuild.dck upnow inspects the image first: one without dck's
DCK_IMAGE_VERSIONordck-entrypoint, or built by another dck version than the
repository's render (docker/local/<svc>/dck/VERSION), is rebuilt and its container
replaced, with a note naming the image and why.dck downleft the primary's Herdr machine registered (only a satellite'sdown
removed it). It now removes the machine and SSH aliasdck upregistered whenever the
dev service goes down; the nextdck upregisters them again.
Install
git clone --branch v0.3.6 https://github.com/DailybotHQ/devcontainer-kit
./devcontainer-kit/install.shVerify a clone with shasum -a 256 -c SHA256SUMS. Images: ghcr.io/dailybothq/devcontainer-kit-base:{python-3.13,node-24,debian}-v0.3.6 (digests in the images workflow run).