From 4e1714df13bb76f8b45aa67f47318ff9b20f67d2 Mon Sep 17 00:00:00 2001 From: Alan Gabriel Bem Date: Wed, 18 Mar 2026 02:43:36 +0100 Subject: [PATCH 01/24] docs: explain "d" in dclaude in the title Add "Dockerized Claude Code" subtitle so new visitors immediately understand what the name means. Co-Authored-By: Claude Opus 4.6 (1M context) --- .mcp.json | 13 +++++++++++++ README.md | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 .mcp.json diff --git a/.mcp.json b/.mcp.json new file mode 100644 index 0000000..c01fe8a --- /dev/null +++ b/.mcp.json @@ -0,0 +1,13 @@ +{ + "mcpServers": { + "chrome": { + "type": "stdio", + "command": "npx", + "args": [ + "-y", + "chrome-devtools-mcp@latest", + "--browserUrl=http://localhost:9222" + ] + } + } +} diff --git a/README.md b/README.md index 8228c26..f31cb08 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -# dclaude +# dclaude — Dockerized Claude Code [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Docker Hub](https://img.shields.io/docker/v/alanbem/dclaude?label=Docker%20Hub)](https://hub.docker.com/r/alanbem/dclaude) [![npm](https://img.shields.io/npm/v/@alanbem/dclaude)](https://www.npmjs.com/package/@alanbem/dclaude) -Run Claude Code CLI in Docker - no local installation needed. Full MCP support, persistent sessions, and seamless host integration. +Run Claude Code CLI in Docker — no local installation needed. Full MCP support, persistent sessions, and seamless host integration. ## Why dclaude? From 34a851edab02307ef1960f9bd74627ccd4272270 Mon Sep 17 00:00:00 2001 From: Alan Gabriel Bem Date: Wed, 18 Mar 2026 02:43:44 +0100 Subject: [PATCH 02/24] docs: add Docker prerequisite to Quick Start New users who don't have Docker installed will hit a confusing error. This makes the requirement explicit upfront. Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index f31cb08..f1b983d 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,8 @@ Run Claude Code CLI in Docker — no local installation needed. Full MCP support ## Quick Start +> **Prerequisite:** [Docker](https://docs.docker.com/get-docker/) must be installed and running. + ### Install via NPM (Recommended) ```bash From be5c5583dc7318e3a1e89e29bd6a52b511f66d40 Mon Sep 17 00:00:00 2001 From: Alan Gabriel Bem Date: Wed, 18 Mar 2026 02:43:54 +0100 Subject: [PATCH 03/24] docs: add first-run expectations to Quick Start Tell users what to expect on first launch (image pull + auth prompt) so they don't think the tool is broken during the initial setup. Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index f1b983d..f81ac93 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,8 @@ sudo ln -s ~/tools/dclaude/dclaude /usr/local/bin/dclaude dclaude ``` +> **First run:** The Docker image (~1GB) is pulled automatically on first launch. You'll be prompted to authenticate with your Anthropic account. + ## Basic Usage **dclaude passes all arguments directly to Claude CLI** - use it exactly as you would use `claude`: From abd68aa3cb72160889e7763b0012c3af6495eca2 Mon Sep 17 00:00:00 2001 From: Alan Gabriel Bem Date: Wed, 18 Mar 2026 02:44:10 +0100 Subject: [PATCH 04/24] docs: elevate safety/isolation to first bullet in Why section The container isolation benefit is the strongest differentiator. Move it from last to first position in the "Why dclaude?" list without changing the overall tagline. Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f81ac93..b8a55c6 100644 --- a/README.md +++ b/README.md @@ -15,12 +15,12 @@ Run Claude Code CLI in Docker — no local installation needed. Full MCP support - Different behavior across machines **dclaude solves this by running Claude in a container that feels native:** +- **Safer `--dangerously-skip-permissions`** - container isolation means Claude can only access your project, not your whole system - Your files appear at the same paths (no `/app` or `/workspace` confusion) - Docker commands work (socket is mounted) - SSH keys and git config just work - Homebrew included - easy migration from local macOS setup - Works on Linux, macOS, and Windows -- **Safer `--dangerously-skip-permissions`** - container isolation means Claude can only access your project, not your whole system ## Quick Start From 01b255216754029d056e3f1530056bb1a15b2180 Mon Sep 17 00:00:00 2001 From: Alan Gabriel Bem Date: Wed, 18 Mar 2026 02:44:24 +0100 Subject: [PATCH 05/24] docs: add CI/CD status badge A passing build badge signals active maintenance and working code. Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b8a55c6..22fed19 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # dclaude — Dockerized Claude Code +[![CI/CD](https://github.com/alanbem/dclaude/actions/workflows/ci-cd.yml/badge.svg)](https://github.com/alanbem/dclaude/actions/workflows/ci-cd.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Docker Hub](https://img.shields.io/docker/v/alanbem/dclaude?label=Docker%20Hub)](https://hub.docker.com/r/alanbem/dclaude) [![npm](https://img.shields.io/npm/v/@alanbem/dclaude)](https://www.npmjs.com/package/@alanbem/dclaude) From bbc0d6c5a8a9347cffced41e83dfb116766c6f94 Mon Sep 17 00:00:00 2001 From: Alan Gabriel Bem Date: Wed, 18 Mar 2026 02:44:33 +0100 Subject: [PATCH 06/24] docs: clarify Windows requires WSL2 The dclaude script is bash and the npm package excludes Windows. Make it explicit that WSL2 is required on Windows. Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 22fed19..ed8d875 100644 --- a/README.md +++ b/README.md @@ -352,7 +352,7 @@ DCLAUDE_NETWORK=bridge dclaude |----------|--------|-------| | Linux | Full support | Host networking available | | macOS | Full support | Host networking with OrbStack or Docker Desktop beta | -| Windows | Full support | WSL2/Docker Desktop, host networking with beta features | +| Windows | Full support | Requires WSL2; host networking with Docker Desktop beta features | ## What's Included From 316eafe265cf18d3912cc05fd191ba43532edeb8 Mon Sep 17 00:00:00 2001 From: Alan Gabriel Bem Date: Wed, 18 Mar 2026 02:44:42 +0100 Subject: [PATCH 07/24] docs: explain .dclaude vs DCLAUDE_* variable naming relationship New users may not realize the unprefixed config file variables map to the prefixed environment variables. Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index ed8d875..b228563 100644 --- a/README.md +++ b/README.md @@ -258,6 +258,8 @@ dclaude walks up the directory tree to find `.dclaude` files. Any dclaude sessio | `CHROME_PORT` | Chrome DevTools port | | `AWS_CLI` | AWS config mode (`mount`, `volume`, `none`) | +Config file variables are the unprefixed equivalents of `DCLAUDE_*` environment variables (e.g., `NAMESPACE` in `.dclaude` = `DCLAUDE_NAMESPACE` env var). + **Precedence:** Environment variables override `.dclaude` file settings. ## Namespace Isolation From 6be3725ad844b4999dad2da315510d53f972431f Mon Sep 17 00:00:00 2001 From: Alan Gabriel Bem Date: Wed, 18 Mar 2026 02:44:56 +0100 Subject: [PATCH 08/24] docs: cross-link the two SSH sections SSH Authentication and SSH Key/Server Management are related but serve different purposes. Add cross-references so users find both. Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b228563..42b0d98 100644 --- a/README.md +++ b/README.md @@ -117,7 +117,7 @@ DCLAUDE_GIT_AUTH=agent-forwarding dclaude DCLAUDE_GIT_AUTH=key-mount dclaude ``` -Make sure your SSH key is loaded: `ssh-add -l` +Make sure your SSH key is loaded: `ssh-add -l` (see also [SSH Key and Server Management](#ssh-key-and-server-management)) ### Homebrew Support @@ -139,7 +139,7 @@ dclaude exec gh pr list # Use gh commands ### SSH Key and Server Management -Load SSH keys and start SSH server for JetBrains Gateway, VS Code Remote, or any SSH client: +Load SSH keys and start SSH server for JetBrains Gateway, VS Code Remote, or any SSH client (see also [SSH Authentication](#ssh-authentication)): ```bash dclaude ssh # Load keys + start SSH server From 6d413a59509631a4e25c93830050a01399e40b3e Mon Sep 17 00:00:00 2001 From: Alan Gabriel Bem Date: Wed, 18 Mar 2026 02:45:08 +0100 Subject: [PATCH 09/24] docs: add DCLAUDE_TMUX_SESSION to environment variables table This is the most user-facing of the undocumented env vars, enabling named concurrent sessions. Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 42b0d98..54ace49 100644 --- a/README.md +++ b/README.md @@ -231,6 +231,7 @@ DCLAUDE_SYSTEM_CONTEXT=false dclaude | `DCLAUDE_NO_UPDATE` | `false` | Skip image update check | | `DCLAUDE_SYSTEM_CONTEXT` | `true` | Inform Claude about container environment | | `DCLAUDE_AWS_CLI` | `auto` | AWS config: `auto`, `mount`, `volume`, `none` | +| `DCLAUDE_TMUX_SESSION` | `claude-TIMESTAMP` | Custom tmux session name for concurrent sessions | | `DCLAUDE_ITERM2` | `true` | Enable iTerm2 shell integration (only affects iTerm2) | ## Configuration File From a49455a03a6c689c8a29d0a84b623810be60ebdf Mon Sep 17 00:00:00 2001 From: Alan Gabriel Bem Date: Wed, 18 Mar 2026 02:45:19 +0100 Subject: [PATCH 10/24] docs: add path mirroring ASCII diagram Path mirroring is the core innovation. A simple visual makes the concept click faster than bullet points alone. Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 54ace49..3af2137 100644 --- a/README.md +++ b/README.md @@ -74,9 +74,10 @@ dclaude exec brew install ripgrep dclaude creates a container that mirrors your host environment: 1. **Path Mirroring**: Your current directory is mounted at the *same path* - - On host: `/Users/alice/projects/myapp` - - In container: `/Users/alice/projects/myapp` - - All your file paths just work + ``` + Host: /Users/alice/projects/myapp ──mount──> Container: /Users/alice/projects/myapp + ``` + No `/app` or `/workspace` confusion — all your file paths just work 2. **Docker Access**: The Docker socket is mounted, so Claude can build images, run containers, and manage compose stacks From e08ee330b6e5f2a0649368fa183575ae81e53acd Mon Sep 17 00:00:00 2001 From: Alan Gabriel Bem Date: Wed, 18 Mar 2026 02:45:31 +0100 Subject: [PATCH 11/24] docs: clarify aws login is a newer unified AWS CLI command aws login is a valid newer AWS CLI command that supersedes aws sso login for SSO flows while also supporting IAM users. Co-Authored-By: Claude Opus 4.6 (1M context) --- CLAUDE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CLAUDE.md b/CLAUDE.md index f0cd9e2..f0002eb 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -831,7 +831,7 @@ dclaude aws login # Default profile dclaude aws login --profile staging # Specific profile ``` -Uses `aws login` (not `aws sso login`) — this is the more universal command that works for both IAM console users and SSO users. All arguments are forwarded to `aws login` in the container. +Uses `aws login` — a newer AWS CLI command that provides a unified login experience for both IAM console users and SSO users (supersedes `aws sso login` for SSO-only flows). All arguments are forwarded to `aws login` in the container. ### Technical Implementation From 69ae7b136bdfd7d8a01f60b54474939b8f2802df Mon Sep 17 00:00:00 2001 From: Alan Gabriel Bem Date: Wed, 18 Mar 2026 02:45:43 +0100 Subject: [PATCH 12/24] docs: add Container Management section with subcommands Document previously undiscoverable subcommands: new, attach, stop, rm, pull, update, shell. Placed in its own section between Features and Environment Variables to keep Basic Usage focused. Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/README.md b/README.md index 3af2137..adb9602 100644 --- a/README.md +++ b/README.md @@ -217,6 +217,24 @@ This helps Claude understand its environment without you explaining it. Disable DCLAUDE_SYSTEM_CONTEXT=false dclaude ``` +## Container Management + +```bash +# Session management +dclaude new # Start a new Claude session +dclaude attach # Reattach to a named tmux session +DCLAUDE_TMUX_SESSION=reviewer dclaude # Start a named session + +# Container lifecycle +dclaude stop # Stop container for current directory +dclaude rm # Remove container (add -f to force) + +# Maintenance +dclaude pull # Pull latest Docker image +dclaude update # Update Claude CLI inside container +dclaude shell # Open a bash shell (alias for exec) +``` + ## Environment Variables | Variable | Default | Description | From a90a548509a013f0cef63a094630a0861fed7226 Mon Sep 17 00:00:00 2001 From: Alan Gabriel Bem Date: Wed, 18 Mar 2026 02:45:54 +0100 Subject: [PATCH 13/24] docs: add Git Configuration section for dclaude git This subcommand bridges the gap between SSH auth (keys) and git identity (name/email for commits). Was documented in CLAUDE.md but completely absent from user-facing README. Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index adb9602..c445d92 100644 --- a/README.md +++ b/README.md @@ -138,6 +138,16 @@ dclaude gh # Interactive GitHub login dclaude exec gh pr list # Use gh commands ``` +### Git Configuration + +SSH agent forwarding provides authentication for git, but git also needs your identity (name/email) for commits. Use `dclaude git` to configure this: + +```bash +dclaude git # Configure git name/email in container +``` + +This reads your host's `~/.gitconfig` and offers to copy the identity into the container's persistent volume. + ### SSH Key and Server Management Load SSH keys and start SSH server for JetBrains Gateway, VS Code Remote, or any SSH client (see also [SSH Authentication](#ssh-authentication)): From 5e1b19d655f3136c6dc9c98fc8cb15eb6a546d8b Mon Sep 17 00:00:00 2001 From: Alan Gabriel Bem Date: Wed, 18 Mar 2026 02:46:06 +0100 Subject: [PATCH 14/24] docs: expand Chrome DevTools section with options and config The previous 2-line Chrome section omitted --port, --setup-only, profile configuration, and how the architecture works (Chrome on host, MCP in container). Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c445d92..54a53ef 100644 --- a/README.md +++ b/README.md @@ -163,13 +163,17 @@ dclaude ssh server --stop # Stop SSH server ### Chrome DevTools Integration -Control Chrome via MCP for browser automation: +Control Chrome via MCP for browser automation. Chrome runs on the host with remote debugging; Claude connects from the container: ```bash -dclaude chrome # Launch Chrome with DevTools +dclaude chrome # Launch Chrome with DevTools + create .mcp.json +dclaude chrome --port=9223 # Use custom debugging port +dclaude chrome --setup-only # Create .mcp.json without launching Chrome dclaude # Claude can now interact with the browser ``` +Chrome profiles are stored per-project in `.dclaude.d/chrome/profiles/`. Customize with `DCLAUDE_CHROME_PROFILE`, `DCLAUDE_CHROME_PORT`, `DCLAUDE_CHROME_BIN`, and `DCLAUDE_CHROME_FLAGS`. + ### AWS CLI Integration AWS CLI v2 is pre-installed in the container. Configure how AWS credentials are provided: From 4967bfda0859d85fce0390da7d5a740efb0fc462 Mon Sep 17 00:00:00 2001 From: Alan Gabriel Bem Date: Wed, 18 Mar 2026 02:46:38 +0100 Subject: [PATCH 15/24] docs: add shell completions install instructions Completions for bash and zsh exist in completions/ but there was no guidance on how to install them. Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index 54a53ef..ec01498 100644 --- a/README.md +++ b/README.md @@ -458,6 +458,18 @@ mv problematic-dir problematic-dir.tmp && mv problematic-dir.tmp problematic-dir Upgrading to the latest OrbStack version may also help. +## Shell Completions + +Tab completion is available for bash and zsh: + +```bash +# Bash — add to ~/.bashrc +source /path/to/dclaude/completions/dclaude.bash + +# Zsh — add to ~/.zshrc +source /path/to/dclaude/completions/dclaude.zsh +``` + ## Project Structure ```text From 6ffef32c6953c313420dca727a40f4b1db891c31 Mon Sep 17 00:00:00 2001 From: Alan Gabriel Bem Date: Wed, 18 Mar 2026 02:46:46 +0100 Subject: [PATCH 16/24] docs: note multi-arch support (AMD64 + ARM64/Apple Silicon) CI builds both architectures but this was not mentioned anywhere in the README. Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ec01498..ef7f8c7 100644 --- a/README.md +++ b/README.md @@ -394,7 +394,7 @@ DCLAUDE_NETWORK=bridge dclaude The container includes: - **Ubuntu 24.04 LTS** base -- **Claude Code CLI** (latest) +- **Claude Code CLI** (latest, AMD64 and ARM64/Apple Silicon) - **Node.js 20+**, **Python 3** with pip - **Homebrew/Linuxbrew** for package management - **Docker CLI** and **Docker Compose** From 505b6162c010869179d1b937c2b2d4c8819194bb Mon Sep 17 00:00:00 2001 From: Alan Gabriel Bem Date: Wed, 18 Mar 2026 02:47:02 +0100 Subject: [PATCH 17/24] docs: document CLAUDE_UNSAFE_TRUST_WORKSPACE in Security section This env var is baked into the Dockerfile but was undocumented. Explain why it's set (container isolation replaces workspace trust) so contributors understand the security model. Co-Authored-By: Claude Opus 4.6 (1M context) --- CLAUDE.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CLAUDE.md b/CLAUDE.md index f0002eb..f1c872f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -953,10 +953,11 @@ SSH password is hardcoded (`claude:claude`) - suitable for local development onl ## Security Constraints - No sudo in container (removed for security) -- Docker socket access is privileged - document risks +- Docker socket access is privileged — grants host-level container management - Non-root user with docker group membership only - Config mounts are read-only to prevent modification - Config mounting is opt-in for security +- `CLAUDE_UNSAFE_TRUST_WORKSPACE=true` is set in the Dockerfile — this auto-trusts all workspaces, bypassing Claude's interactive workspace permission prompts. This is intentional: container isolation provides the safety boundary (Claude can only access the mounted project directory), making per-workspace trust prompts redundant and disruptive in a containerized context ### Docker Scout Security Scanning From 7619b436236fe6c35073b424459ef4e0b50a61b2 Mon Sep 17 00:00:00 2001 From: Alan Gabriel Bem Date: Wed, 18 Mar 2026 02:47:14 +0100 Subject: [PATCH 18/24] docs: update Project Structure with claude-launcher and tmux-wrapper These scripts were added to the Dockerfile but missing from the README project structure listing. Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ef7f8c7..9b7ea71 100644 --- a/README.md +++ b/README.md @@ -479,7 +479,9 @@ source /path/to/dclaude/completions/dclaude.zsh │ ├── Dockerfile # Container image definition │ ├── README.md # Docker Hub documentation │ ├── usr/local/bin/ -│ │ └── docker-entrypoint.sh +│ │ ├── docker-entrypoint.sh +│ │ ├── claude-launcher.sh +│ │ └── tmux-wrapper.sh │ └── home/claude/ │ └── .tmux.conf ├── .github/workflows/ # CI/CD (lint, scan, publish) From fd42271098b994507b234fb45f09a9b9760e17e4 Mon Sep 17 00:00:00 2001 From: Alan Gabriel Bem Date: Wed, 18 Mar 2026 02:48:26 +0100 Subject: [PATCH 19/24] docs: remove "Known Issues (Fixed)" from tmux section These fixed bugs are already guarded against by the "Critical Tmux Configuration" section which documents the correct settings and why they matter. The "Fixed" subsection added noise without new info. Co-Authored-By: Claude Opus 4.6 (1M context) --- CLAUDE.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index f1c872f..4405abc 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -566,10 +566,6 @@ set-option -g detach-on-destroy on 3. All sessions exit → Tmux server shuts down 4. Container keeps running → Ready for next `dclaude` invocation -### Known Issues (Fixed) -- ❌ **Session switching bug**: Using `detach-on-destroy off` caused sessions to switch instead of exit (FIXED: use `on`) -- ❌ **Input lag in second session**: Creating detached session then attaching caused double tmux processes (FIXED: use direct `new-session`) - ### TTY Detection and Interactive Mode **Key concept**: Interactivity depends on how the command is called, not on the arguments passed to Claude. From 54dbcd9cdb9190af3429c2dc506c765956634a6c Mon Sep 17 00:00:00 2001 From: Alan Gabriel Bem Date: Wed, 18 Mar 2026 11:56:01 +0100 Subject: [PATCH 20/24] docs: replace broken Docker Hub version badge with pulls badge The shields.io Docker Hub version badge returns "invalid response data". Replace with the working Docker pulls badge (shows 2.2k), which also serves as a social proof signal. Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9b7ea71..2c847e2 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![CI/CD](https://github.com/alanbem/dclaude/actions/workflows/ci-cd.yml/badge.svg)](https://github.com/alanbem/dclaude/actions/workflows/ci-cd.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) -[![Docker Hub](https://img.shields.io/docker/v/alanbem/dclaude?label=Docker%20Hub)](https://hub.docker.com/r/alanbem/dclaude) +[![Docker Pulls](https://img.shields.io/docker/pulls/alanbem/dclaude)](https://hub.docker.com/r/alanbem/dclaude) [![npm](https://img.shields.io/npm/v/@alanbem/dclaude)](https://www.npmjs.com/package/@alanbem/dclaude) Run Claude Code CLI in Docker — no local installation needed. Full MCP support, persistent sessions, and seamless host integration. From 5591803e568e2756641efa9f76345487a53c7433 Mon Sep 17 00:00:00 2001 From: Alan Gabriel Bem Date: Wed, 18 Mar 2026 11:56:16 +0100 Subject: [PATCH 21/24] docs: update Why section pain points for native CLI era Claude Code now uses native binary installation, not npm. Remove outdated Node.js/npm pain points and add the filesystem access concern which is more relevant. Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 2c847e2..ebffcf4 100644 --- a/README.md +++ b/README.md @@ -10,10 +10,9 @@ Run Claude Code CLI in Docker — no local installation needed. Full MCP support ## Why dclaude? **Claude Code CLI is powerful, but installing it locally means:** -- Node.js version conflicts -- Global npm packages cluttering your system - MCP servers needing specific Python/Node setups - Different behavior across machines +- Claude has access to your entire filesystem **dclaude solves this by running Claude in a container that feels native:** - **Safer `--dangerously-skip-permissions`** - container isolation means Claude can only access your project, not your whole system From 53b7c867b244dcc04130fdbae509fcd656fc7a94 Mon Sep 17 00:00:00 2001 From: Alan Gabriel Bem Date: Wed, 18 Mar 2026 12:00:56 +0100 Subject: [PATCH 22/24] docs: fix shell completions path for npm-installed users The placeholder /path/to/dclaude/ was broken for npm users. Use $(npm root -g) to resolve the actual install location, and show the source install path as an alternative. Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ebffcf4..af3bd79 100644 --- a/README.md +++ b/README.md @@ -463,10 +463,13 @@ Tab completion is available for bash and zsh: ```bash # Bash — add to ~/.bashrc -source /path/to/dclaude/completions/dclaude.bash +source "$(npm root -g)/@alanbem/dclaude/completions/dclaude.bash" # Zsh — add to ~/.zshrc -source /path/to/dclaude/completions/dclaude.zsh +source "$(npm root -g)/@alanbem/dclaude/completions/dclaude.zsh" + +# Source install — use the repo path directly +source ~/tools/dclaude/completions/dclaude.bash ``` ## Project Structure From b35801e12d72ed0e4f9452eb0dbc37bcaa385d21 Mon Sep 17 00:00:00 2001 From: Alan Gabriel Bem Date: Wed, 18 Mar 2026 12:04:44 +0100 Subject: [PATCH 23/24] docs: fix SSH auth section to reflect automatic key loading dclaude already warns when no keys are loaded and directs users to run 'dclaude ssh keys'. The old text implied manual ssh-add was required. Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index af3bd79..f2a45da 100644 --- a/README.md +++ b/README.md @@ -117,7 +117,7 @@ DCLAUDE_GIT_AUTH=agent-forwarding dclaude DCLAUDE_GIT_AUTH=key-mount dclaude ``` -Make sure your SSH key is loaded: `ssh-add -l` (see also [SSH Key and Server Management](#ssh-key-and-server-management)) +dclaude warns you if no keys are loaded and suggests `dclaude ssh keys` to load them automatically (see also [SSH Key and Server Management](#ssh-key-and-server-management)). ### Homebrew Support From 78db931988c44fedac9bedaefe71f61a4bfb8750 Mon Sep 17 00:00:00 2001 From: Alan Gabriel Bem Date: Wed, 18 Mar 2026 12:05:41 +0100 Subject: [PATCH 24/24] docs: list Docker-compatible runtimes in prerequisite Mention Docker Desktop, OrbStack, and Colima as examples rather than only Docker, since many users use alternative runtimes. Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f2a45da..a303229 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ Run Claude Code CLI in Docker — no local installation needed. Full MCP support ## Quick Start -> **Prerequisite:** [Docker](https://docs.docker.com/get-docker/) must be installed and running. +> **Prerequisite:** A Docker-compatible runtime such as [Docker Desktop](https://docs.docker.com/get-docker/), [OrbStack](https://orbstack.dev/), or [Colima](https://github.com/abiosoft/colima) must be installed and running. ### Install via NPM (Recommended)