{
  "manifest_version": "1",
  "slug": "claude-code",
  "title": "Claude Code",
  "headline": "Run Claude Code on a remote server",
  "description": "Claude Code is already installed on exe.dev. One setup command, a project folder, and a coding session that stays put when you close your laptop.",
  "category": "ai-agents",
  "tags": [
    "claude code",
    "remote development",
    "ai coding agent",
    "tmux",
    "anthropic"
  ],
  "url": "https://exe.dev/deploy/claude-code",
  "markdown_url": "https://exe-staging.dev/deploy/claude-code.md",
  "upstream": {
    "website": "https://claude.com/product/claude-code",
    "source": "https://github.com/anthropics/claude-code",
    "docs": "https://code.claude.com/docs/en/quickstart",
    "license": "Proprietary (Anthropic Commercial Terms)"
  },
  "example_vm_name": "my-claude-code",
  "time": "2 minutes",
  "stack": [
    {
      "name": "Claude Code",
      "detail": "preinstalled; connected to exe.dev's LLM integration",
      "data": "~/.claude"
    },
    {
      "name": "Your project",
      "data": "~/project"
    },
    {
      "name": "tmux",
      "detail": "keeps your terminal session running when you disconnect"
    }
  ],
  "access": [
    {
      "url": "ssh my-claude-code.exe.xyz",
      "who": "private",
      "what": "your terminal"
    }
  ],
  "delivers": [
    "Claude Code connected to a model, with no API key to paste",
    "A project folder at `~/project` on persistent disk",
    "A `claude` tmux session that survives disconnects"
  ],
  "deploy": {
    "new_vm_url": "https://exe-staging.dev/new?prompt=Set%20up%20Claude%20Code%20on%20this%20VM%20by%20following%20the%20exe.dev%20recipe%20at%20https%3A%2F%2Fexe-staging.dev%2Fdeploy%2Fclaude-code.md%20from%20top%20to%20bottom.%0A%0AThe%20recipe%27s%20example%20VM%20name%20is%20my-claude-code.%20This%20VM%27s%20name%20is%20the%20output%20of%20%60hostname%60%3A%20use%20it%20wherever%20the%20recipe%20writes%20my-claude-code.%20Skip%20the%20step%20that%20creates%20the%20VM%3B%20you%20are%20on%20it.%0A%0AYou%20are%20done%20when%20all%20of%20these%20are%20true.%20Check%20each%20one%20yourself%3A%0A-%20Claude%20Code%20connected%20to%20a%20model%2C%20with%20no%20API%20key%20to%20paste%0A-%20A%20project%20folder%20at%20%60~%2Fproject%60%20on%20persistent%20disk%0A-%20A%20%60claude%60%20tmux%20session%20that%20survives%20disconnects%0A%0AUse%20the%20preinstalled%20Claude%20Code.%20Run%20the%20VM-side%20setup%20in%20%22Start%20coding%22%2C%0Ausing%20%60exeuntu%20claude%20configure%60%20on%20older%20images.%20Create%20tmux%20detached%0A%28%60tmux%20new%20-d%20-s%20claude%20-c%20~%2Fproject%60%29%20rather%20than%20attaching.%20Reuse%20the%0Asession%20if%20it%20already%20exists.%20Do%20not%20launch%20interactive%20Claude%3B%20leave%20its%0Afirst-run%20prompts%20to%20the%20owner.%20Do%20not%20overwrite%20existing%20Claude%20settings%0Aor%20switch%20an%20existing%20login%3B%20ask%20the%20owner%20if%20these%20prevent%20setup.%0AVerify%20from%20~%2Fproject%20with%20%60claude%20-p%20--model%20haiku%20%22Reply%20with%20exactly%3A%20OK%22%60%0Aand%20check%20%60tmux%20has-session%20-t%20claude%60.%20Skip%20the%20later%20optional%20instructions%0Aand%20FAQ.%20Finish%20with%20the%20SSH%20command%20from%20%22Take%20a%20break%22%2C%20using%20this%20VM%27s%0Aname%2C%20and%20tell%20the%20owner%20to%20run%20%60claude%60%20inside%20it.%0A%0AFinish%20with%20the%20URLs%20I%20should%20open.%0A",
    "terminal": "curl -fsSL https://exe-staging.dev/deploy/claude-code/prompt.txt | ssh exe.dev new --prompt=/dev/stdin",
    "prompt": "Set up Claude Code on this VM by following the exe.dev recipe at https://exe-staging.dev/deploy/claude-code.md from top to bottom.\n\nThe recipe's example VM name is my-claude-code. This VM's name is the output of `hostname`: use it wherever the recipe writes my-claude-code. Skip the step that creates the VM; you are on it.\n\nYou are done when all of these are true. Check each one yourself:\n- Claude Code connected to a model, with no API key to paste\n- A project folder at `~/project` on persistent disk\n- A `claude` tmux session that survives disconnects\n\nUse the preinstalled Claude Code. Run the VM-side setup in \"Start coding\",\nusing `exeuntu claude configure` on older images. Create tmux detached\n(`tmux new -d -s claude -c ~/project`) rather than attaching. Reuse the\nsession if it already exists. Do not launch interactive Claude; leave its\nfirst-run prompts to the owner. Do not overwrite existing Claude settings\nor switch an existing login; ask the owner if these prevent setup.\nVerify from ~/project with `claude -p --model haiku \"Reply with exactly: OK\"`\nand check `tmux has-session -t claude`. Skip the later optional instructions\nand FAQ. Finish with the SSH command from \"Take a break\", using this VM's\nname, and tell the owner to run `claude` inside it.\n\nFinish with the URLs I should open.\n",
    "prompt_url": "https://exe-staging.dev/deploy/claude-code/prompt.txt"
  },
  "updated": "2026-10-14",
  "related": [
    "openclaw",
    "code-server",
    "n8n",
    "uptime-kuma"
  ]
}
