# Claude Code Web
A browser-based interface for [[Claude Code]] running on Anthropic-managed cloud infrastructure. Connect GitHub repos, describe work, and Claude handles implementation autonomously in an isolated VM. Available at claude.ai/code. Research preview.
Unlike [[Claude Code Remote Control]] which mirrors a local session, Claude Code Web runs entirely in the cloud with no local machine required.
## Key Features
- **Parallel task execution**: kick off multiple independent sessions across different repos simultaneously
- **Diff view**: review all changes file-by-file in the web UI before creating a PR; comment on specific changes and iterate
- **Auto-fix PRs**: Claude watches a PR and automatically responds to CI failures and reviewer comments; pushes fixes for clear issues, asks about ambiguous ones. Claude replies to review comment threads on GitHub using your account (labeled as from Claude Code). Requires the Claude GitHub App
- **Terminal-to-web (`--remote`)**: start a web session from terminal with `claude --remote "task description"`
- **Web-to-terminal (teleport)**: pull any web session into local terminal with `/teleport` (`/tp`), `--teleport`, `/tasks` → press `t`, or "Open in CLI" button
- **[[Claude Code Ultraplan]]**: plan in the cloud, review in browser, execute remotely or locally
- **Scheduled recurring tasks**: automate daily PR reviews, dependency audits, CI failure analysis. See [[Claude Code Web Scheduled Tasks]]
- **Mobile support**: available on iOS and Android for kicking off tasks and monitoring progress
- **Session sharing**: share session links with teammates
- **Session management**: archive sessions (hover → archive icon) or delete them permanently (from archived list or session dropdown menu)
## Getting Started
- **From browser**: visit claude.ai/code → connect GitHub → install Claude GitHub App → select environment → submit task
- **From terminal**: run `/web-setup` inside Claude Code to connect GitHub using local `gh` CLI credentials, create a default cloud environment, and open claude.ai/code. Requires `gh` CLI with `gh auth login`. Team/Enterprise admins can disable this with the Quick web setup toggle at claude.ai/admin-settings/claude-code
## How It Works
1. Repository cloned to Anthropic-managed VM
2. Setup script runs (if configured)
3. Network access configured per environment settings
4. Claude analyzes code, makes changes, runs tests
5. Changes pushed to a branch
6. Review diff, iterate, then create PR
## Terminal-to-Web Patterns
**Direct remote**: `claude --remote "Fix the auth bug in src/auth/login.ts"`
**Plan locally, execute remotely**: use plan mode to collaborate on the approach, then send to web:
```sh
claude --permission-mode plan
# ... collaborate on plan ...
claude --remote "Execute the migration plan in docs/migration-plan.md"
```
**Parallel remote tasks**: each `--remote` creates an independent session:
```sh
claude --remote "Fix the flaky test in auth.spec.ts"
claude --remote "Update the API documentation"
claude --remote "Refactor the logger to use structured output"
```
Monitor all with `/tasks`.
## Teleport Requirements
When pulling a web session to terminal (`/teleport`, `--teleport`):
- **Clean git state**: no uncommitted changes (prompted to stash if needed)
- **Correct repository**: must be in a checkout of the same repo, not a fork
- **Branch available**: web session branch must have been pushed to remote
- **Same account**: must be authenticated to the same Claude.ai account
## Auto-Fix Warning
If your repo uses comment-triggered automation (Atlantis, Terraform Cloud, custom GitHub Actions on `issue_comment`), Claude's PR replies can trigger those workflows since replies are posted under your GitHub account. Review repo automation before enabling auto-fix.
## Session Sharing
- **Enterprise/Team**: Private or Team visibility (visible to org members). Repository access verification enabled by default based on recipient's connected GitHub account
- **Pro/Max**: Private or Public visibility (visible to any logged-in claude.ai user). Enable repository access verification and/or hide display name at Settings > Claude Code > Sharing settings
- Recipients see the latest state on load but the page does not update in real time
## Cloud Environment
- **Default image** (Ubuntu 24.04): pre-installed with Python, Node.js (LTS), Ruby, PHP 8.4, Java, Go, Rust, C++, PostgreSQL 16, Redis 7.0
- **`check-tools`**: run in a cloud session to see all pre-installed languages, package managers, and dev tools
- **Setup scripts**: Bash scripts that run as root before Claude Code launches on new sessions only; install custom dependencies. Exit non-zero fails the session (use `|| true` for non-critical commands)
- **SessionStart hooks**: defined in `.claude/settings.json`, run on every session start (including resumed). Use `CLAUDE_CODE_REMOTE` env var in scripts to skip local execution
- **Environment variables**: configurable per environment in `.env` format. Hooks can persist env vars by writing to `$CLAUDE_ENV_FILE`
- **Multiple environments**: create and switch between configs. Use `/remote-env` in terminal to select default environment for `--remote` sessions
### Setup Scripts vs SessionStart Hooks
| | Setup scripts | SessionStart hooks |
| ------------- | ------------------------------------------------- | -------------------------------------------------------------- |
| Attached to | The cloud environment | Your repository |
| Configured in | Cloud environment UI | `.claude/settings.json` in your repo |
| Runs | Before Claude Code launches, on new sessions only | After Claude Code launches, on every session including resumed |
| Scope | Cloud environments only | Both local and cloud |
## Network Access
Three levels: Limited (default allowlist), Full internet, or No internet. All git operations go through a dedicated GitHub proxy that manages authentication via scoped credentials. All outbound traffic passes through a security proxy for abuse prevention.
### Default Allowed Domains (Limited mode)
The allowlist includes: Anthropic services, GitHub/GitLab/Bitbucket, container registries (Docker, GCR, GHCR, ECR), cloud platforms (GCP, Azure, AWS, Oracle), package registries for all major languages (npm, PyPI, RubyGems, crates.io, Maven, Go proxy, NuGet, Composer, pub.dev, hex.pm, CPAN, CocoaPods, Hackage), Ubuntu package repos, dev tools (Kubernetes, HashiCorp, Anaconda, Apache, Eclipse, Node.js), monitoring (Statsig, Sentry, Datadog), CDNs (SourceForge, PackageCloud), schema registries, and MCP protocol domains.
**Known limitation**: Bun does not work correctly with the security proxy.
## Availability
Research preview for Pro, Max, Team, and Enterprise users. Rate limits shared with all Claude Code usage.
## Limitations
- GitHub only (no GitLab or other git hosting). GitHub Enterprise Server supported for Team and Enterprise plans
- One-way teleport (web to terminal only; `--remote` creates a new web session, cannot push an existing local session)
- Bun incompatible with the security proxy
- No custom VM images/snapshots (use setup scripts or hooks instead)
- When network access is disabled, Claude Code can still communicate with the Anthropic API
## Best Practices
- Automate environment setup with setup scripts for cloud-only deps, SessionStart hooks for cross-environment deps
- Document requirements and commands in `CLAUDE.md`. Source `AGENTS.md` from `CLAUDE.md` with `@AGENTS.md` to maintain a single source of truth
## References
- Announcement: https://www.anthropic.com/news/claude-code-on-the-web
- Documentation: https://code.claude.com/docs/en/claude-code-on-the-web
## Related
- [[Claude Code]]
- [[Claude Code Remote Control]]
- [[Claude Code Ultraplan]]
- [[Claude Code Web Scheduled Tasks]]
- [[Claude Code Hooks]]
- [[Claude Code Plugins]]