Skip to content

Releases: cmmichael/claude-code-remote-container

v0.3.2: Bump the actions group with 9 updates (#1)

Choose a tag to compare

@github-actions github-actions released this 28 Oct 15:29
a27fb1e

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

Full Changelog: actions/checkout@v7...v7.0.1

v7.0.0

What's Changed

New Contributors

Full Changelog: actions/checkout@v6.0.3...v7.0.0

v6.1.0

What's Changed

https://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

New Contributors

Full Changelog: actions/checkout@v6...v6.0.3

v6.0.2

What's Changed

... (truncated)

Changelog

Sourced from actions/checkout's changelog.

Changelog

v7.0.1

v7.0.0

v6.0.3

v6.0.2

v6.0.1

v6.0.0

v5.0.1

Read more

v0.3.1: Renamed to claude-code-remote-container

Choose a tag to compare

@github-actions github-actions released this 28 Oct 15:20

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 is ghcr.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 ./config carries 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

Choose a tag to compare

@cmmichael cmmichael released this 28 Oct 15:24

Why

  • The server's session had no proper title. The session claude remote-control creates at start appeared in claude.ai/code and the Claude app under a generated name (for example iris-lucky-orbit). con-ant/hass-addons#56 found the --name flag for this.
  • Monitors and the health check failed against the user check. With CLAUDE_WEB_AUTH on, 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-control runs with --name "${CLAUDE_RC_SERVER_NAME:-<hostname>}".
  • Permission mode for app sessions. The new optional CLAUDE_RC_PERMISSION_MODE passes --permission-mode to 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 answers 200 ok when ttyd accepts a connection and 503 when 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_watcher and auth. A stopped server usually means the Claude login lapsed, so a monitor can alert on it. It reports states only.
  • HEALTHCHECK. It calls /healthz with the front end on, and plain ttyd with CLAUDE_WEB_FRONT=false.
  • docs/monitoring.md. It covers:
    • Uptime Kuma: HTTP, JSON query, Docker health, and AutoKuma labels
    • Gatus
    • Homepage
    • Watchtower, with WATCHTOWER_TIMEOUT=30s so 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:
    • /healthz returns 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=1 reports 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 --help lists --name and --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

Choose a tag to compare

@cmmichael cmmichael released this 28 Oct 15:24

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.md with private reporting, and CONTRIBUTING.md with 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.md and docs/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/whoami returns 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 new pages workflow): 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-container once the DOCKERHUB_USERNAME variable and the DOCKERHUB_TOKEN secret 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) and DOCKERHUB_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

Choose a tag to compare

@cmmichael cmmichael released this 28 Oct 15:24

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