Skip to main content

Claude Code on the Web

Claude Code on the Web lets you run Claude Code in your browser. It analyzes and edits code on an Anthropic-managed cloud VM, and you can review the changes in a diff view and open a PR right away.

Key Characteristicsโ€‹

Claude Code on the WebLocal CLI
Where it runsAnthropic cloud VMYour computer
InstallationNone (browser only)npm install required
Local file accessNo (GitHub integration)Yes
Parallel workMultiple at once1 per CLI instance
MCP serversLimitedFully supported
Git integrationGitHub onlyAny Git

Plan Availabilityโ€‹

PlanAvailable
ProO
MaxO
TeamO
EnterprisePremium or Chat+Claude Code seat

Getting Startedโ€‹

  1. Visit claude.ai/code
  2. Connect your GitHub account
  3. Install the Claude GitHub app on your repository
  4. Choose a default environment
  5. Submit a coding task
  6. Review the changes in the diff view โ†’ create a PR

How It Worksโ€‹

1. Clone the repository onto a cloud VM
2. Prepare a secure environment (dependencies, network settings)
3. Analyze code, make changes, run tests
4. Notify on completion
5. Push to a branch โ†’ ready to create a PR

Claude Code respects your CLAUDE.md context, and SessionStart hooks run as well.

Diff Viewโ€‹

The web interface shows changes in a GitHub-style diff view:

  • Displays diff stats (+/- line counts)
  • Review changes file by file
  • Comment on specific changes
  • Iterate on the review without a draft PR

Switching Between Web and Terminalโ€‹

Terminal โ†’ Web (--remote)โ€‹

# Run a task on the web
claude --remote "Fix the auth bug in src/auth/login.ts"
  • Creates a new web session on claude.ai
  • The task runs in the cloud while you keep working locally
  • Check progress with /tasks
  • Give feedback from claude.ai or the mobile app
# Parallel runs work too โ€” each --remote is an independent session
claude --remote "Refactor the API endpoints"
claude --remote "Improve test coverage"
Plan locally first

It's efficient to explore the code locally with --permission-mode plan first, then delegate the actual work to the web with --remote.

Web โ†’ Terminal (/teleport)โ€‹

You can pull work done on the web back into your local terminal:

# Interactive session picker
> /teleport
# Or the short form
> /tp

# Directly from the CLI
claude --teleport
claude --teleport <session-id>

You can also press t in /tasks to teleport, or use the "Open in CLI" button in the web interface.

Teleport requirements:

ConditionDescription
Clean git stateYou get a stash prompt if you have uncommitted changes
Same repositoryMust run in the same repo, not a fork
Branch availableThe branch must be pushed to the remote (auto fetch+checkout)
Same accountAuthenticated with the same claude.ai account

Session Sharingโ€‹

PlanSharing scope
Enterprise/TeamPrivate or Team (visible to organization members)
Max/ProPrivate or Public (visible to any logged-in user)

Repository access is verified for Team/Public sharing. You can enable access verification and hide names under Settings โ†’ Claude Code โ†’ Sharing settings.

Cloud Environment Configurationโ€‹

Default Environmentโ€‹

Key tools included in the default image:

CategoryIncluded tools
LanguagesPython 3.x, Node.js LTS, Ruby 3.3, PHP 8.4, Java (OpenJDK), Go, Rust, C++
Package managerspip, poetry, npm, yarn, pnpm, bun, gem, bundler, cargo, Maven, Gradle
DatabasesPostgreSQL 16, Redis 7.0

Use the check-tools command to see what's available.

Custom Environmentsโ€‹

To add or modify environments:

  • In the web UI, select the current environment โ†’ "Add environment" or the settings button
  • Specify a name, network access, and environment variables
  • From the terminal, choose the default environment with /remote-env

Installing Dependenciesโ€‹

Use a SessionStart hook to install dependencies automatically when a cloud session starts:

// .claude/settings.json
{
"hooks": {
"SessionStart": [
{
"matcher": "startup",
"hooks": [
{
"type": "command",
"command": "\"$CLAUDE_PROJECT_DIR\"/scripts/install_pkgs.sh"
}
]
}
]
}
}
#!/bin/bash
# scripts/install_pkgs.sh
# Run only in the cloud environment
if [ "$CLAUDE_CODE_REMOTE" != "true" ]; then
exit 0
fi
npm install
pip install -r requirements.txt
exit 0
Dependency management limitations
  • Hooks run in every session. Check the CLAUDE_CODE_REMOTE variable to skip local runs
  • Network access is required to reach package registries
  • Some package managers (Bun, for example) may not be compatible with the security proxy

Network and Securityโ€‹

Network Policyโ€‹

  • GitHub proxy: Handles all git interactions transparently, using scope-limited credentials inside the sandbox
  • Security proxy: All outbound traffic passes through the proxy. Blocks malicious requests, applies rate limiting and content filtering
  • git push restriction: You can only push to the current working branch

Access Levelsโ€‹

LevelDescription
DefaultOnly allowlisted domains are reachable
CustomDisable network access entirely, or allow only specific domains

The default allowlist includes Anthropic services, GitHub/GitLab/Bitbucket, major package registries (npm, PyPI, RubyGems, crates.io, Maven, and others), cloud platforms (AWS, GCP, Azure), and container registries.

Security Isolationโ€‹

  • Each session runs in an isolated VM
  • Sensitive credentials never exist inside the sandbox
  • Authentication goes through the security proxy
Note on disabling network access

Even with network access disabled, Claude Code can still communicate with the Anthropic API, which means data can leave the isolated VM through that channel.

Limitationsโ€‹

LimitationDescription
GitHub onlyGitLab and non-GitHub repositories aren't supported
Session authenticationSwitching between web and local requires the same account
Shared rate limitShares the rate limit with all other Claude usage on your account

Best Practicesโ€‹

  1. Use SessionStart hooks: Automate environment setup and dependency installation
  2. Document your requirements: Spell out dependencies and commands in CLAUDE.md
  3. Plan locally, execute on the web: Explore complex work in Plan mode first
  4. Take advantage of parallelism: Run several independent tasks at once with --remote