{
  "manifest_version": "1",
  "slug": "qwen-code",
  "title": "Qwen Code",
  "headline": "Run Qwen Code on a remote server",
  "description": "Run Qwen Code's daemon and built-in Web Shell on an exe.dev VM. Private HTTPS for your browser or phone, Qwen models without API keys, persistent projects.",
  "category": "ai-agents",
  "tags": [
    "qwen code",
    "qwen serve",
    "web shell",
    "daemon",
    "remote coding agent",
    "mobile coding"
  ],
  "url": "https://exe.dev/deploy/qwen-code",
  "markdown_url": "https://exe.dev/deploy/qwen-code.md",
  "upstream": {
    "website": "https://qwenlm.github.io/qwen-code-docs/",
    "source": "https://github.com/QwenLM/qwen-code",
    "docs": "https://github.com/QwenLM/qwen-code/blob/main/docs/users/qwen-serve.md",
    "license": "Apache-2.0"
  },
  "example_vm_name": "my-qwen-code",
  "time": "10 minutes",
  "stack": [
    {
      "name": "Qwen Code 0.26.6",
      "detail": "qwen serve, built-in Web Shell, HTTP + SSE and WebSockets; systemd",
      "port": 4170,
      "data": "~/.qwen"
    },
    {
      "name": "Your project",
      "detail": "Code and files stay on the VM",
      "data": "~/project"
    },
    {
      "name": "exe.dev LLM integration",
      "detail": "Qwen via Fireworks, plus Claude and GPT; no provider keys on the VM"
    }
  ],
  "access": [
    {
      "url": "https://my-qwen-code.exe.xyz:4170/",
      "who": "private",
      "what": "Web Shell, behind exe.dev login and Qwen Code's bearer token"
    },
    {
      "url": "ssh my-qwen-code.exe.xyz",
      "who": "private",
      "what": "Terminal access to your VM"
    }
  ],
  "delivers": [
    "Qwen Code's Web Shell on port 4170, reachable through private HTTPS",
    "A stable, owner-only daemon token in ~/.qwen/serve.env, not in the service unit",
    "Qwen3.8 through exe.dev's LLM integration, verified with a short prompt",
    "qwen-serve.service enabled and healthy, restarted after a crash or reboot",
    "Project files and saved sessions on persistent disk, plus a checked backup"
  ],
  "deployable": true,
  "deploy": {
    "new_vm_url": "https://exe.dev/new?prompt=Set%20up%20Qwen%20Code%20on%20this%20VM%20by%20following%20the%20exe.dev%20recipe%20at%20https%3A%2F%2Fexe.dev%2Fdeploy%2Fqwen-code.md%20from%20top%20to%20bottom.%0A%0AThe%20recipe%27s%20example%20VM%20name%20is%20my-qwen-code.%20This%20VM%27s%20name%20is%20the%20output%20of%20%60hostname%60%3A%20use%20it%20wherever%20the%20recipe%20writes%20my-qwen-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-%20Qwen%20Code%27s%20Web%20Shell%20on%20port%204170%2C%20reachable%20through%20private%20HTTPS%0A-%20A%20stable%2C%20owner-only%20daemon%20token%20in%20~%2F.qwen%2Fserve.env%2C%20not%20in%20the%20service%20unit%0A-%20Qwen3.8%20through%20exe.dev%27s%20LLM%20integration%2C%20verified%20with%20a%20short%20prompt%0A-%20qwen-serve.service%20enabled%20and%20healthy%2C%20restarted%20after%20a%20crash%20or%20reboot%0A-%20Project%20files%20and%20saved%20sessions%20on%20persistent%20disk%2C%20plus%20a%20checked%20backup%0A%0AFollow%20%22Install%20by%20hand%22%20first%2C%20including%20the%20closed%20details%2C%20skipping%0AVM%20creation.%20Do%20not%20run%20optional%20model-provider%20setup%2C%20restore%2C%20or%20update.%0AKeep%20the%20VM%20and%20port%204170%20private%3A%20never%20share%20set-public.%20Ask%20before%0Areplacing%20existing%20~%2F.qwen%2Fsettings.json%2C%20serve.env%2C%20qwen-serve.service%2C%0Aor%20a%20listener%20on%204170%3B%20preserve%20existing%20model%20entries%20if%20applicable.%0AUse%20the%20official%20standalone%20installer%20pinned%20to%200.26.6.%20Verify%20qwen%27s%0Aversion%2C%20the%20Qwen%20model%27s%20OK%20reply%2C%20systemd%20enabled%2Factive%2C%20HTTP%20401%0Awithout%20the%20bearer%2C%20health%20OK%20with%20it%2C%20and%20a%20backup%20containing%0A.qwen%2Fsettings.json%20and%20.qwen%2Fserve.env.%20Do%20not%20start%20an%20interactive%0Aagent%2C%20enable%20YOLO%2C%20or%20print%20a%20secret-bearing%20QR%20into%20logs.%20Finish%20with%0Athe%20private%20HTTPS%20URL%2C%20the%20SSH%20command%20to%20read%20the%20token%2C%20and%20where%0Ato%20select%20the%20project.%20Explain%20the%20second%20sign-in%2C%20not%20just%20exe.dev.%0A%0AFinish%20with%20the%20URLs%20I%20should%20open.%0A",
    "terminal": "curl -fsSL https://exe.dev/deploy/qwen-code/prompt.txt | ssh exe.dev new --prompt=/dev/stdin",
    "prompt": "Set up Qwen Code on this VM by following the exe.dev recipe at https://exe.dev/deploy/qwen-code.md from top to bottom.\n\nThe recipe's example VM name is my-qwen-code. This VM's name is the output of `hostname`: use it wherever the recipe writes my-qwen-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- Qwen Code's Web Shell on port 4170, reachable through private HTTPS\n- A stable, owner-only daemon token in ~/.qwen/serve.env, not in the service unit\n- Qwen3.8 through exe.dev's LLM integration, verified with a short prompt\n- qwen-serve.service enabled and healthy, restarted after a crash or reboot\n- Project files and saved sessions on persistent disk, plus a checked backup\n\nFollow \"Install by hand\" first, including the closed details, skipping\nVM creation. Do not run optional model-provider setup, restore, or update.\nKeep the VM and port 4170 private: never share set-public. Ask before\nreplacing existing ~/.qwen/settings.json, serve.env, qwen-serve.service,\nor a listener on 4170; preserve existing model entries if applicable.\nUse the official standalone installer pinned to 0.26.6. Verify qwen's\nversion, the Qwen model's OK reply, systemd enabled/active, HTTP 401\nwithout the bearer, health OK with it, and a backup containing\n.qwen/settings.json and .qwen/serve.env. Do not start an interactive\nagent, enable YOLO, or print a secret-bearing QR into logs. Finish with\nthe private HTTPS URL, the SSH command to read the token, and where\nto select the project. Explain the second sign-in, not just exe.dev.\n\nFinish with the URLs I should open.\n",
    "prompt_url": "https://exe.dev/deploy/qwen-code/prompt.txt"
  },
  "updated": "2026-11-02",
  "verified": "2026-11-02",
  "related": [
    "opencode",
    "gemini-cli",
    "pi-pocket",
    "codex-remote-control",
    "agent-secrets",
    "claude-code"
  ]
}
