{
 "schema_version": 1,
 "generated": "2026-10-26",
 "id": "hezaohezao-poirot--run-research-in-docker-sandbox",
 "repo": "HezaoHezao/poirot",
 "repo_url": "https://github.com/HezaoHezao/poirot",
 "repo_slug": "hezaohezao-poirot",
 "title": "Run research tasks inside a Docker sandbox on Windows",
 "page_title": "How to run research tasks inside a Docker sandbox on Windows with Poirot",
 "summary": "Route Poirot's tool execution through a Docker sandbox with WSL2 and enable specialist delegation.",
 "who": "A developer on Windows with WSL2 who wants agent-run code and file writes isolated from the host.",
 "problem": "Letting an agent run commands and write files directly on a host machine exposes that machine to unintended changes.",
 "outcome": "A Poirot session where file writes and shell commands run in a Docker sandbox and outputs persist in the mount area.",
 "steps": [
  "Set up the project with `pip install -e \".[dev]\"` after creating a virtual environment, as in the Quick Start.",
  "Confirm that Docker is running under WSL2 on the Windows machine. (inferred, check the README)",
  "Add POIROT_SANDBOX_USE=Poirot.backend.agents.sandbox.docker.docker_sandbox_provider:DockerSandboxProvider and POIROT_SANDBOX_EXECUTOR=wsl to .env.",
  "Add POIROT_MULTIAGENT_ENABLED=true to .env to allow specialist delegation.",
  "Start Poirot with `poirot`, then save outputs under /mnt/poirot/user-data/ so they persist."
 ],
 "agent_prompt": "In the Poirot repo at <path to poirot checkout>, set the Docker sandbox and WSL executor variables in .env, then run `poirot` with the task <task>. Expected output: a completed task with its output files written under /mnt/poirot/user-data/. Verify that the output file exists in the mount path after the run.",
 "agents": [
  "any"
 ],
 "difficulty": "Advanced",
 "time": "60 minutes",
 "basis": "readme",
 "caveat": "The README says DockerPathGuard only allows writes under /mnt/poirot/user-data/, so files saved elsewhere inside the container may be lost when the container exits.",
 "category": "Research",
 "tags": [
  "Research"
 ],
 "lang": "python",
 "requirements": [
  "Python 3.12 or newer",
  "A DeepSeek API key (the README says to set DEEPSEEK_API_KEY in .env)",
  "Git and a terminal",
  "Docker only if you want the container sandbox"
 ],
 "risk": "none",
 "seen_in_the_wild": false,
 "mentioned_publicly": false,
 "risks": [
  {
   "tag": "credentials",
   "notice": "Each specialist CLI (pi, codex, or claude) runs as its own process with its own LLM, so keep each provider's key in that tool's config and out of shared files."
  }
 ],
 "best": false,
 "score": 0.7,
 "evidence": [],
 "url": "https://dedupedai.com/use-cases/hezaohezao-poirot/run-research-in-docker-sandbox/",
 "md": "https://dedupedai.com/use-cases/hezaohezao-poirot/run-research-in-docker-sandbox/index.md",
 "disclaimer": "Deduped lists open-source repositories that belong to other people. We do not own, maintain, audit, or vouch for any of them, and a repo appearing here is not an endorsement or a safety check. The use cases, steps, and prompts are written by AI and may be incomplete, outdated, or just wrong. Where a use case is marked \"Seen in the wild\", we link to public posts where someone described something similar, but we have not verified those posts and the use case itself is still our AI's own write-up. Use all of this at your own risk. Only run code, commands, or agents on systems and accounts you are authorized to use, and read the code and every command before you run it, especially anything that touches credentials, files, or the network. Nothing here is professional, security, legal, or financial advice. All trademarks and project names belong to their respective owners, and their use here does not imply affiliation. Content is provided as is, without warranties of any kind. Found a mistake, a safety problem, or something you want removed? Email hello@dedupedai.com and we will look at it promptly.",
 "api": "https://dedupedai.com/api/v1/usecases/hezaohezao-poirot--run-research-in-docker-sandbox.json",
 "api_version": "v1"
}
