{
  "manifest_version": "1",
  "slug": "amp",
  "title": "Amp",
  "headline": "Self-host Amp orbs",
  "description": "Run Amp's orb provider on an exe.dev VM so each Amp orb thread gets a VM of its own, ready in seconds, with no exe.dev key on the provider.",
  "category": "ai-agents",
  "tags": [
    "amp",
    "ampcode",
    "amp orbs",
    "self-hosted orbs",
    "amp orb provider",
    "personal orb provider",
    "amp runner",
    "amp --no-tui",
    "remote coding agent"
  ],
  "url": "https://exe.dev/deploy/amp",
  "markdown_url": "https://exe.dev/deploy/amp.md",
  "upstream": {
    "website": "https://ampcode.com",
    "docs": "https://ampcode.com/docs/orbs/self-hosted",
    "license": "Proprietary (Amp's terms of service)"
  },
  "example_vm_name": "my-amp",
  "time": "10 minutes",
  "stack": [
    {
      "name": "Amp orb provider",
      "detail": "`amp orb provider`, run by the amp-orb-provider systemd service",
      "data": "~/amp-orbs"
    },
    {
      "name": "dispatch.sh",
      "detail": "turns Amp's spawn, pause and delete jobs into exe.dev VMs",
      "data": "~/amp-orbs/dispatch.sh"
    },
    {
      "name": "The amp-orbs integration",
      "detail": "exe.dev's API, held by exe.dev and limited to VMs tagged amp-orb"
    },
    {
      "name": "Orb VMs",
      "detail": "one per thread, booted from Amp's orb image and named after the orb",
      "data": "/home/user/workspace on each orb"
    }
  ],
  "access": [
    {
      "url": "ampcode.com, the Amp apps, or amp -ox",
      "who": "private",
      "what": "where you start threads and pick this provider; Amp lets in only you"
    },
    {
      "url": "ssh my-amp.exe.xyz",
      "who": "private",
      "what": "the provider VM, for its log and upkeep"
    },
    {
      "url": "ssh amp-\u003corb id\u003e.exe.xyz",
      "who": "private",
      "what": "a root shell in any orb"
    }
  ],
  "inputs": [
    {
      "name": "AMP_ORB_PROVIDER_TOKEN",
      "description": "the `aop_live_…` token Amp showed once when you added the provider in Settings → Orbs"
    }
  ],
  "delivers": [
    "The Amp CLI, and the dispatch program at `~/amp-orbs/dispatch.sh`",
    "The provider token in `~/amp-orbs/provider.env`, readable only by `exedev`",
    "The amp-orb-provider systemd service, enabled so it comes back after a reboot, with `Orb provider started` in its log"
  ],
  "deployable": true,
  "deploy": {
    "new_vm_url": "https://exe.dev/new?prompt=AMP_ORB_PROVIDER_TOKEN%3D%3Cfill-this-in%3E%0A%0ASet%20up%20Amp%20on%20this%20VM%20by%20following%20the%20exe.dev%20recipe%20at%20https%3A%2F%2Fexe.dev%2Fdeploy%2Famp.md%20from%20top%20to%20bottom.%0A%0AThe%20values%20at%20the%20top%20of%20this%20message%20are%20mine%3A%0A-%20AMP_ORB_PROVIDER_TOKEN%3A%20the%20%60aop_live_%E2%80%A6%60%20token%20Amp%20showed%20once%20when%20you%20added%20the%20provider%20in%20Settings%20%E2%86%92%20Orbs%0AAsk%20me%20for%20any%20that%20still%20say%20%3Cfill-this-in%3E%20before%20you%20need%20them.%0A%0AThe%20recipe%27s%20example%20VM%20name%20is%20my-amp.%20This%20VM%27s%20name%20is%20the%20output%20of%20%60hostname%60%3A%20use%20it%20wherever%20the%20recipe%20writes%20my-amp.%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-%20The%20Amp%20CLI%2C%20and%20the%20dispatch%20program%20at%20%60~%2Famp-orbs%2Fdispatch.sh%60%0A-%20The%20provider%20token%20in%20%60~%2Famp-orbs%2Fprovider.env%60%2C%20readable%20only%20by%20%60exedev%60%0A-%20The%20amp-orb-provider%20systemd%20service%2C%20enabled%20so%20it%20comes%20back%20after%20a%20reboot%2C%20with%20%60Orb%20provider%20started%60%20in%20its%20log%0A%0ARun%20%22Set%20up%20the%20provider%20by%20hand%22%2C%20skipping%20VM%20creation%20and%20SSH.%0AAMP_ORB_PROVIDER_TOKEN%20is%20a%20secret%3A%20write%20it%20to%20~%2Famp-orbs%2Fprovider.env%0Awith%20%60printf%20%27AMP_ORB_PROVIDER_TOKEN%3D%25s%5Cn%27%20%22%24value%22%60%20under%20%60umask%20077%60%0Ainstead%20of%20the%20interactive%20read%2C%20and%20never%20print%20it.%20If%20the%20log%20says%0A%60Amp%20rejected%20the%20orb%20provider%20token%60%2C%20tell%20the%20owner%20the%20token%20is%20wrong%0Aor%20revoked.%20Never%20ask%20for%20an%20exe.dev%20API%20key%3A%20the%20integration%20in%20%22Let%0Athe%20provider%20make%20VMs%22%20is%20created%20by%20the%20owner%2C%20on%20their%20own%20computer.%0ADon%27t%20start%20a%20thread.%20Finish%20by%20giving%20the%20owner%20that%20integration%0Acommand%20with%20this%20VM%27s%20name%2C%20then%20pointing%20them%20to%20%22Start%20a%20thread%20on%0Ayour%20VMs%22.%0A%0AFinish%20with%20the%20URLs%20I%20should%20open.%0A",
    "terminal": "curl -fsSL https://exe.dev/deploy/amp/prompt.txt | ssh exe.dev new --prompt=/dev/stdin",
    "prompt": "AMP_ORB_PROVIDER_TOKEN=\u003cfill-this-in\u003e\n\nSet up Amp on this VM by following the exe.dev recipe at https://exe.dev/deploy/amp.md from top to bottom.\n\nThe values at the top of this message are mine:\n- AMP_ORB_PROVIDER_TOKEN: the `aop_live_…` token Amp showed once when you added the provider in Settings → Orbs\nAsk me for any that still say \u003cfill-this-in\u003e before you need them.\n\nThe recipe's example VM name is my-amp. This VM's name is the output of `hostname`: use it wherever the recipe writes my-amp. 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- The Amp CLI, and the dispatch program at `~/amp-orbs/dispatch.sh`\n- The provider token in `~/amp-orbs/provider.env`, readable only by `exedev`\n- The amp-orb-provider systemd service, enabled so it comes back after a reboot, with `Orb provider started` in its log\n\nRun \"Set up the provider by hand\", skipping VM creation and SSH.\nAMP_ORB_PROVIDER_TOKEN is a secret: write it to ~/amp-orbs/provider.env\nwith `printf 'AMP_ORB_PROVIDER_TOKEN=%s\\n' \"$value\"` under `umask 077`\ninstead of the interactive read, and never print it. If the log says\n`Amp rejected the orb provider token`, tell the owner the token is wrong\nor revoked. Never ask for an exe.dev API key: the integration in \"Let\nthe provider make VMs\" is created by the owner, on their own computer.\nDon't start a thread. Finish by giving the owner that integration\ncommand with this VM's name, then pointing them to \"Start a thread on\nyour VMs\".\n\nFinish with the URLs I should open.\n",
    "prompt_url": "https://exe.dev/deploy/amp/prompt.txt"
  },
  "updated": "2026-11-07",
  "verified": "2026-11-07",
  "related": [
    "claude-code-runner",
    "codex-remote-control",
    "exe-mcp",
    "agents",
    "claude-code",
    "openclaw"
  ],
  "files": [
    "https://exe.dev/deploy/amp/dispatch.sh"
  ]
}
