Repository navigation
Releases: cmmichael/claude-code-remote-container
Release list
v0.3.2: Bump the actions group with 9 updates (#1)
Bumps the actions group with 9 updates:
| Package | From | To |
|---|---|---|
| actions/checkout | 4.4.0 |
7.0.1 |
| docker/setup-buildx-action | 3.12.0 |
4.4.1 |
| docker/build-push-action | 6.19.2 |
7.4.0 |
| docker/setup-qemu-action | 3.7.0 |
4.4.0 |
| docker/login-action | 3.7.0 |
4.7.0 |
| docker/metadata-action | 5.10.0 |
6.2.0 |
| actions/configure-pages | 5.0.0 |
6.0.0 |
| actions/upload-pages-artifact | 3.0.1 |
5.0.0 |
| actions/deploy-pages | 4.0.5 |
5.0.1 |
Updates actions/checkout from 4.4.0 to 7.0.1
Release notes
Sourced from actions/checkout's releases.
v7.0.1
What's Changed
- skip running unsafe pr check if input is default by
@aiqiaoyin actions/checkout#2518- trim only ascii whitespace for branch by
@aiqiaoyin actions/checkout#2521- escape values passed to --unset by
@aiqiaoyin actions/checkout#2530- Various dependency updates
Full Changelog: actions/checkout@v7...v7.0.1
v7.0.0
What's Changed
- block checking out fork pr for pull_request_target and workflow_run by
@aiqiaoyin actions/checkout#2454- Bump actions/publish-immutable-action from 0.0.3 to 0.0.4 in the minor-actions-dependencies group across 1 directory by
@dependabot[bot] in actions/checkout#2458- Bump flatted from 3.3.1 to 3.4.2 by
@dependabot[bot] in actions/checkout#2460- Bump js-yaml from 4.1.0 to 4.2.0 by
@dependabot[bot] in actions/checkout#2461- Bump
@actions/coreand@actions/tool-cacheand Remove uuid by@dependabot[bot] in actions/checkout#2459- upgrade module to esm and update dependencies by
@aiqiaoyin actions/checkout#2463- Bump the minor-npm-dependencies group across 1 directory with 3 updates by
@dependabot[bot] in actions/checkout#2462- getting ready for checkout v7 release by
@aiqiaoyin actions/checkout#2464- update error wording by
@aiqiaoyin actions/checkout#2467New Contributors
@aiqiaoymade their first contribution in actions/checkout#2454Full Changelog: actions/checkout@v6.0.3...v7.0.0
v6.1.0
What's Changed
- [BREAKING] backport
allow-unsafe-pr-checkoutto v6 by@aiqiaoyin actions/checkout#2500- backport fixes to releases-v6 by
@aiqiaoyin actions/checkout#2527https://github.blog/changelog/2026-06-18-safer-pull_request_target-defaults-for-github-actions-checkout/ for more details about this breaking change
Full Changelog: actions/checkout@v6.0.3...v6.1.0
v6.0.3
What's Changed
- Update changelog by
@ericsciplein actions/checkout#2357- fix: expand merge commit SHA regex and add SHA-256 test cases by
@yaananthin actions/checkout#2414- Fix checkout init for SHA-256 repositories by
@yaananthin actions/checkout#2439- Update changelog for v6.0.3 by
@yaananthin actions/checkout#2446New Contributors
@yaananthmade their first contribution in actions/checkout#2414Full Changelog: actions/checkout@v6...v6.0.3
v6.0.2
What's Changed
- Add orchestration_id to git user-agent when ACTIONS_ORCHESTRATION_ID is set by
@TingluoHuangin actions/checkout#2355
... (truncated)
Changelog
Sourced from actions/checkout's changelog.
Changelog
v7.0.1
- Skip running unsafe pr check if input is default by
@aiqiaoyin actions/checkout#2518- Trim only ascii whitespace for branch by
@aiqiaoyin actions/checkout#2521- Escape values passed to --unset by
@aiqiaoyin actions/checkout#2530- Various dependency updates
v7.0.0
- Block checking out fork PR for pull_request_target and workflow_run by
@aiqiaoyin actions/checkout#2454- Various dependency updates
v6.0.3
- Fix checkout init for SHA-256 repositories by
@yaananthin actions/checkout#2439- fix: expand merge commit SHA regex and add SHA-256 test cases by
@yaananthin actions/checkout#2414v6.0.2
- Fix tag handling: preserve annotations and explicit fetch-tags by
@ericsciplein actions/checkout#2356v6.0.1
- Add worktree support for persist-credentials includeIf by
@ericsciplein actions/checkout#2327v6.0.0
- Persist creds to a separate file by
@ericsciplein actions/checkout#2286- Update README to include Node.js 24 support details and requirements by
@salmanmkcin actions/checkout#2248v5.0.1
- Port v6 cleanup to v5 by
@ericscipl...
v0.3.1: Renamed to claude-code-remote-container
The project's new home. It was published as claude-code-web until v0.3.0, and those releases are recreated here with their original notes.
- New names. The repository is
github.com/cmmichael/claude-code-remote-container, the image isghcr.io/cmmichael/claude-code-remote-container, and the site is https://cmmichael.github.io/claude-code-remote-container/ - Nothing to change in your setup but the image name. Settings keep their names (
CLAUDE_WEB_*,CLAUDE_RC_*), and./configcarries over as it is. - Licence. It names the copyright holder correctly: Constantinos Michael.
- Dependabot no longer proposes Node major versions for the stage that builds the terminal page.
- A test fix. The server-detection unit test skips, with a reason, on a machine already running a real Remote Control server, where it used to fail.
Image: ghcr.io/cmmichael/claude-code-remote-container:0.3.1 (also :0.3, :latest)
Digest: sha256:6a6ea3a8bfa66d9dbcae709b110966e47e037a33867c6972b9893f7ce48ec53f
v0.3.0: Remote Control server --name; /healthz for homelab monitors
Why
- The server's session had no proper title. The session
claude remote-controlcreates at start appeared in claude.ai/code and the Claude app under a generated name (for exampleiris-lucky-orbit). con-ant/hass-addons#56 found the--nameflag for this. - Monitors and the health check failed against the user check. With
CLAUDE_WEB_AUTHon, anything that requested/got a 403. That included the image's own health check, which logged a refusal every minute on iris, and it would include any Uptime Kuma, Gatus or Homepage monitor. The health check also only showed that the front end answered, not that the terminal worked.
What
- Server name.
claude remote-controlruns with--name "${CLAUDE_RC_SERVER_NAME:-<hostname>}". - Permission mode for app sessions. The new optional
CLAUDE_RC_PERMISSION_MODEpasses--permission-modeto the server, from add-on con-ant/hass-addons#46. - Matching the server. The watcher and the sessions list now find the server with or without flags.
/healthz. It answers200 okwhen ttyd accepts a connection and503when it doesn't. It skips the user check and logs nothing./healthz?full=1. The same status code with JSON detail:terminal,claude_code(the version),remote_control_server,update_watcherandauth. A stopped server usually means the Claude login lapsed, so a monitor can alert on it. It reports states only.HEALTHCHECK. It calls/healthzwith the front end on, and plain ttyd withCLAUDE_WEB_FRONT=false.docs/monitoring.md. It covers:- Uptime Kuma: HTTP, JSON query, Docker health, and AutoKuma labels
- Gatus
- Homepage
- Watchtower, with
WATCHTOWER_TIMEOUT=30sso the clean stop finishes - Traefik, plus Authelia and Authentik forward auth in header mode
Tested
- Unit tests: 11 of 11 pass. The new ones cover:
/healthzreturns 503 with the terminal down- the JSON shape
- no refusal is logged under Pomerium mode
- the server is found when started with flags, which fails against the old exact-match code
- Smoke test, in the built image:
/healthz?full=1reports every part up. The stand-in server now runs with exactly the real command line,claude remote-control …. - The flags are real. On Claude Code 2.1.308,
claude remote-control --helplists--nameand--permission-mode.
Labelled release:minor: new endpoints and settings.
🤖 Generated with Claude Code
https://claude.ai/code/session_01R5XxmiR28R15untFmoAMDW
Image: ghcr.io/cmmichael/claude-code-remote-container:0.3.0 (also :0.3)
Digest: sha256:a8efd093c86d2be7557936d53a4f3dbe59e7e20ac69c6ee560360ee073c18a78
Changes: v0.2.0...v0.3.0
v0.2.0: Public launch: licence, docs and guides, website, examples, secret scan
Everything needed to open the repository, on top of the allowed-users work from claude-code-web#10. Merging this merges claude-code-web#10 too.
What's in it
- Licence and policies. MIT
LICENSE,THIRD_PARTY_NOTICES.md(the MIT shim from con-ant/hass-addons, ttyd, xterm.js),SECURITY.mdwith private reporting, andCONTRIBUTING.mdwith the release labels and checks. - README rebuilt around who it's for. On a Mac or PC, use the Claude app. On a NAS or home server, use this. Then a quick start, reaching it from elsewhere, allowed users, a setup check, images and updates, and a comparison with HolyClaude, claudebox and beevelop/docker-claude, taken from their READMEs.
- Guides.
docs/synology.md(Container Manager, folders first, SSH tunnel for the first login, the Tailscale package),docs/pomerium.mdanddocs/tailscale.md(a sidecar, or Tailscale already on the host). Each ends with a check and a troubleshooting table built from the refusal reasons. - Use cases (
docs/use-cases.md, and a section on the site and in the README): example prompts for managing a Docker stack, Pomerium and other proxy configs, restarting containers (through a read-only socket proxy), monitoring and backups, Home Assistant and Pi-hole, git and media. Recipes cover a Synology, a Raspberry Pi (arm64), read-only Docker access and git. - Examples.
examples/pomerium/is a full Pomerium + claude stack (config, compose, env template) plus the route on its own.examples/tailscale/is unchanged. - Setup checks.
/api/whoamireturns who the user check sees. A refusal returns its reason (audience, proxy address, user), so a proxy setup can be checked from a browser. - Website (
site/, published by the newpagesworkflow): one page with a logo, an architecture diagram and two screenshots. They're rendered from a real Claude Code session reviewing a sample NAS compose file, with the address and folder replaced by placeholders. The badge's session list is illustrative. - Secret scan. CI runs gitleaks over the full history.
- Docker Hub. The image workflow also publishes to
docker.io/<user>/claude-code-remote-containeronce theDOCKERHUB_USERNAMEvariable and theDOCKERHUB_TOKENsecret are set. - Unit test hardening. The front end can bind port 0 and report the port, which removes a pick-then-listen race seen once locally.
After merging
- Make the repository public, then turn on Pages (Settings → Pages → Source: GitHub Actions).
- Make the GHCR package public (Package settings → Change visibility). The Synology guide and the README use the published image without a login.
- Docker Hub, optional: create an access token and add
DOCKERHUB_USERNAME(variable) andDOCKERHUB_TOKEN(secret).
Labelled release:minor because it adds new settings (/api/whoami, Docker Hub publishing).
🤖 Generated with Claude Code
https://claude.ai/code/session_01R5XxmiR28R15untFmoAMDW
Image: ghcr.io/cmmichael/claude-code-remote-container:0.2.0 (also :0.2)
Digest: sha256:7705386793dee5e116b55635ed99f7c012bc63a59c8179ebc60ad2aecbcd5fc3
Changes: v0.1.0...v0.2.0
v0.1.0: Release job: grant pull-requests: read
The first release run after claude-code-web#6 failed at its first API call. GET /repos/{repo}/commits/{sha}/pulls returned 403 ("Resource not accessible by integration") because the workflow token had no pull-requests scope. This grants pull-requests: read.
Merging this is also the first real run of the release job, and should produce v0.1.0.
🤖 Generated with Claude Code
https://claude.ai/code/session_01R5XxmiR28R15untFmoAMDW
Image: ghcr.io/cmmichael/claude-code-remote-container:0.1.0 (also :0.1)
Digest: sha256:c91ae416b555f6fbf54e593a776d5868013519aca4cd6caca1edeca764ddce33