Restructure nvim sandbox into "devcube" IDE with zellij + workmux#187
Closed
binarypie wants to merge 1 commit into
Closed
Restructure nvim sandbox into "devcube" IDE with zellij + workmux#187binarypie wants to merge 1 commit into
binarypie wants to merge 1 commit into
Conversation
Turn the single-purpose nvim-dev sandbox into a containerized IDE that can run multiple AI agents in parallel, each in its own git worktree, inside one container. Adds zellij (multiplexer) + workmux (git-worktree orchestration) and a baked fish + starship shell, behind a single `devc` command. - Move the container project dot_files/nvim -> dot_files/devcube (Containerfile, entrypoint, Justfile, README, wrapper). dot_files/nvim now holds only the nvim config dotfile. - Build context moves up to dot_files/ so fish/starship/zellij/workmux/nvim configs (top-level dotfiles) can be baked in; add dot_files/.dockerignore. - New wrapper devcube.sh dispatches on its first arg (`devc` -> workmux, `devc nvim|claude|codex|agy|zellij`), replacing the per-tool symlinks that shadowed host installs. Orchestrators get a per-project worktree volume mounted at /worktrees (path-derived name, persists across restarts, isolated per project) with workmux state redirected there via XDG_STATE_HOME. - New baked configs: zellij Tokyo Night Moon theme + workmux layout, workmux config (worktree_dir: /worktrees). - Full rename: image -> devcube, workflow -> build-devcube.yml, ujust recipes -> devcube-*, just file -> 61-devcube.just, env -> DEVCUBE_*, sentinel -> DEVCUBE, state volume -> hypercube-devcube-home. - Update nvim-launcher/desktop to open `devc nvim`, plus docs and the build test reference. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K44UxeGUD7Peow4F4ipmXz
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Turns the single-purpose
nvim-devsandbox into a proper containerized IDE — devcube — that can run multiple AI agents in parallel, each in its own git worktree, inside one container (no nested podman).The old folder
dot_files/nvim/mixed two concerns (the nvim config dotfile + the container project) and installed per-tool symlinks (nvim,claude,codex,agy) into~/.local/bin, shadowing any host-native installs. This splits those concerns and collapses everything behind a singledevccommand.What changed
New tools baked into the image
Restructure & rename (
nvim-dev→devcube)dot_files/nvim/(container project) →dot_files/devcube/;dot_files/nvim/is now just the nvim config dotfile.dot_files/zellij/anddot_files/workmux/.ghcr.io/binarypie-dev/nvim-dev→devcube; workflowbuild-nvim-dev.yml→build-devcube.yml;ujust nvim-*→devcube-*; just file61-nvim.just→61-devcube.just; env overridesHYPERCUBE_NVIM_*→DEVCUBE_*; sentinelHYPERCUBE_NVIM→DEVCUBE; state volume →hypercube-devcube-home.dot_files/(with a.dockerignore) so fish/starship/zellij/workmux/nvim configs can all be baked.Single
devccommand (no more per-tool symlinks)devc→ workmux parallel-agent workspace (a zellij session).devc zellij→ plain zellij session.devc nvim/devc claude/devc codex/devc agy→ run that tool directly; extra args pass through.Per-project worktree volumes
devcube-wt-<slug>-<hash>) mounted at/worktrees, withworktree_dir: /worktrees. Worktrees + workmux state (XDG_STATE_HOMEredirected onto that volume) persist across restarts and never collide across projects. The project itself stays a project-only bind mount. Each orchestrator session uses a project-named zellij session for clean reattach.Verification
just lint/just format/just checkover the new shell + just files.cd dot_files && podman build -t devcube -f devcube/Containerfile ., then confirmzellij/workmux/starship/fish --versionand that the configs are baked.devcin a repo, runworkmux add test-branch "...", confirm the worktree appears on the per-project volume and survives a restart; confirm a different repo gets a distinct volume.Notes
devc.nvim-devimage tag is orphaned by the rename.🤖 Generated with Claude Code
https://claude.ai/code/session_01K44UxeGUD7Peow4F4ipmXz
Generated by Claude Code