Giving Claude Code a browser: Playwright and Chromium in the container25 September 2026
Claude Code could change my frontend but never see it, so I was the one checking every layout fix in the browser. A search box that took four PRs in one day made the cost obvious. I added Playwright and headless Chromium to the container, so Claude can render the page and measure it before it tells me it's done.
Letting Claude Code push its own branch to GitHub25 September 2026
In my Claude Code container for new projects, the repos live on GitHub and there are no secrets in their history. So there, Claude creates its own feature branch off master and pushes it, and I review and approve the pull request. The setup is the GitHub CLI in the image, git using it for credentials, and a fine-grained token that lives outside the image.
Getting Claude Code's commits out of the container with a fetch-only remote25 September 2026
Claude Code works in a history-free copy of my brownfield repo, because the real repo still has old credentials in its history. Getting its commits back used to mean a temporary remote and a manual push every time. Now the real repo has a permanent, fetch-only remote pointing at Claude's copy: I fetch, branch off master and cherry-pick, and nothing ever flows back into the container.
Running two Claude Code accounts side by side (personal + work)17 September 2026
I run Claude Code for both personal and work projects and wanted full separation: different subscriptions, no session conflicts, and no AI tool anywhere near secrets in a brownfield repo. Here's how isolating each account in its own Docker container works, plus two gotchas that bit me: a stale /login session, and two Compose stacks silently sharing the same named volume.
Running Claude Code in Docker16 September 2026
The actual Dockerfile and docker-compose.yml I use to run Claude Code in a container, and why: security isolation plus being able to safely use --dangerously-skip-permissions.