Blog
Home

Tagged “claude-code”

← All articles
Letting Claude Code push its own branch to GitHub

25 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 remote

25 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.

Erasing credentials from git history: the third option

23 September 2026

My last post covered copying a brownfield project into a clean repo and cherry-picking real commits back, dodging the secret rather than dealing with it. There's a more direct third option: rewrite history and remove the secret from the repo itself with git filter-repo. Here's how, what it costs, and why I still rotate the credential anyway.

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 Docker

16 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.

Building an AI chat assistant for my site, part 8

13 September 2026

The chat widget goes live, and real use immediately surfaces a language rule the model ignored, a cross-partition retrieval sort bug that had been silently serving the worst-matching content since launch, a citation leak, and the stale-cache gotcha that makes the next part necessary.

Building an AI chat assistant for my site, part 6

13 September 2026

Backfilling the knowledge store for real: embedding all 93 blog articles, authoring personal and professional facts through an interview process (and catching a real factual error along the way), and refining the assistant's conversational manners for small talk, farewells, and off-topic questions.

How I spent my weekend 🙃

17 August 2026

A weekend recap: finally setting up Claude Code inside a Docker container, working through a Claude course, adding a human-playable mode to the hangman demo, and digging into CKA prep with a two-node Kubernetes cluster on Azure VMs.