{
  "manifest_version": "1",
  "slug": "herdr",
  "title": "Herdr",
  "headline": "Run Herdr agents on a remote machine",
  "description": "Add an exe.dev VM to Herdr as an SSH machine: Claude Code, Codex, Pi and OpenCode keep running there after your laptop closes, with no API keys.",
  "category": "ai-agents",
  "tags": [
    "herdr",
    "herdr-core",
    "hc",
    "agent multiplexer",
    "remote coding agents",
    "ssh",
    "claude code",
    "codex"
  ],
  "url": "https://exe.dev/deploy/herdr",
  "markdown_url": "https://exe.dev/deploy/herdr.md",
  "upstream": {
    "website": "https://herdr.dev",
    "source": "https://github.com/herdrdev/herdr-app",
    "docs": "https://github.com/herdrdev/herdr-core/blob/main/docs/machines.md",
    "license": "Apache-2.0"
  },
  "example_vm_name": "my-herdr",
  "time": "5 minutes",
  "stack": [
    {
      "name": "herdr-core (hc)",
      "detail": "the runtime the Herdr app uses on each machine; a systemd user service",
      "data": "~/.local/state/herdr-core"
    },
    {
      "name": "Herdr TUI",
      "detail": "the original terminal app, with its own server",
      "data": "~/.config/herdr"
    },
    {
      "name": "Claude Code, Codex, Pi and OpenCode",
      "detail": "preinstalled; connected to exe.dev's LLM integration",
      "data": "~/.claude, ~/.codex, ~/.pi, ~/.config/opencode"
    },
    {
      "name": "Your project",
      "data": "~/project"
    }
  ],
  "access": [
    {
      "url": "ssh my-herdr.exe.xyz",
      "who": "private",
      "what": "how Herdr reaches the VM, and your terminal"
    }
  ],
  "delivers": [
    "herdr-core (`hc`) and Herdr TUI installed on the VM, so Herdr on your computer can add it as a machine",
    "Claude Code, Codex, Pi and OpenCode using exe.dev's LLM integration, with no API key to paste",
    "Herdr's status integrations for those four agents",
    "A Git project at `~/project`",
    "A Claude Code run through `hc` that answers `OK`"
  ],
  "deployable": true,
  "deploy": {
    "new_vm_url": "https://exe.dev/new?prompt=Set%20up%20Herdr%20on%20this%20VM%20by%20following%20the%20exe.dev%20recipe%20at%20https%3A%2F%2Fexe.dev%2Fdeploy%2Fherdr.md%20from%20top%20to%20bottom.%0A%0AThe%20recipe%27s%20example%20VM%20name%20is%20my-herdr.%20This%20VM%27s%20name%20is%20the%20output%20of%20%60hostname%60%3A%20use%20it%20wherever%20the%20recipe%20writes%20my-herdr.%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-%20herdr-core%20%28%60hc%60%29%20and%20Herdr%20TUI%20installed%20on%20the%20VM%2C%20so%20Herdr%20on%20your%20computer%20can%20add%20it%20as%20a%20machine%0A-%20Claude%20Code%2C%20Codex%2C%20Pi%20and%20OpenCode%20using%20exe.dev%27s%20LLM%20integration%2C%20with%20no%20API%20key%20to%20paste%0A-%20Herdr%27s%20status%20integrations%20for%20those%20four%20agents%0A-%20A%20Git%20project%20at%20%60~%2Fproject%60%0A-%20A%20Claude%20Code%20run%20through%20%60hc%60%20that%20answers%20%60OK%60%0A%0ARun%20the%20VM-side%20commands%20in%20%22Set%20up%20the%20VM%22%20only%3B%20skip%20creating%20the%20VM.%0AIf%20%60exeuntu%20configure%60%20reports%20an%20existing%20user%20config%2C%20leave%20it%20alone.%0AIf%20%60~%2F.config%2Fopencode%2Fopencode.json%60%20already%20exists%2C%20add%20the%20%60model%60%0Aand%20%60providers%60%20settings%20to%20it%20instead%20of%20replacing%20it.%20Do%20not%20start%0Ainteractive%20agents%20or%20%60herdr%60.%20Verify%20with%20the%20checks%20at%20the%20end%20of%20that%0Asection%3A%20both%20versions%20print%2C%20%60herdr%20integration%20status%60%20lists%20claude%2C%0Acodex%2C%20pi%20and%20opencode%20as%20%60current%60%2C%20and%20the%20%60hc%20run%60%20check%20prints%20%60OK%60.%0ASkip%20the%20later%20sections%20and%20the%20FAQ.%20Finish%20by%20telling%20the%20owner%20to%20add%0A%60%3Cthis%20VM%27s%20name%3E.exe.xyz%60%20in%20the%20Herdr%20app%20%28%22Add%20it%20to%20Herdr%22%29%2C%20or%20to%20run%0A%60ssh%20-t%20%3Cthis%20VM%27s%20name%3E.exe.xyz%20herdr%60%20for%20Herdr%20TUI.%0A%0AFinish%20with%20the%20URLs%20I%20should%20open.%0A",
    "terminal": "curl -fsSL https://exe.dev/deploy/herdr/prompt.txt | ssh exe.dev new --prompt=/dev/stdin",
    "prompt": "Set up Herdr on this VM by following the exe.dev recipe at https://exe.dev/deploy/herdr.md from top to bottom.\n\nThe recipe's example VM name is my-herdr. This VM's name is the output of `hostname`: use it wherever the recipe writes my-herdr. 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- herdr-core (`hc`) and Herdr TUI installed on the VM, so Herdr on your computer can add it as a machine\n- Claude Code, Codex, Pi and OpenCode using exe.dev's LLM integration, with no API key to paste\n- Herdr's status integrations for those four agents\n- A Git project at `~/project`\n- A Claude Code run through `hc` that answers `OK`\n\nRun the VM-side commands in \"Set up the VM\" only; skip creating the VM.\nIf `exeuntu configure` reports an existing user config, leave it alone.\nIf `~/.config/opencode/opencode.json` already exists, add the `model`\nand `providers` settings to it instead of replacing it. Do not start\ninteractive agents or `herdr`. Verify with the checks at the end of that\nsection: both versions print, `herdr integration status` lists claude,\ncodex, pi and opencode as `current`, and the `hc run` check prints `OK`.\nSkip the later sections and the FAQ. Finish by telling the owner to add\n`\u003cthis VM's name\u003e.exe.xyz` in the Herdr app (\"Add it to Herdr\"), or to run\n`ssh -t \u003cthis VM's name\u003e.exe.xyz herdr` for Herdr TUI.\n\nFinish with the URLs I should open.\n",
    "prompt_url": "https://exe.dev/deploy/herdr/prompt.txt"
  },
  "updated": "2026-10-31",
  "verified": "2026-10-31",
  "related": [
    "t3code",
    "claude-code",
    "codex",
    "opencode",
    "pi",
    "openclaw"
  ]
}
