DEMO URL: https://www.loom.com/share/6aa35908a4b94d57ab9433bbac9a016a
At the end of the demo I raised an issue to add a contrast editor to the app, here is the result: (there is a possibility the sandbox preview link might timeout, if it does, feel free to ask me to refresh it)
Before Sandbox Preview: https://3000-af71e3fe-d271-4e56-8798-4909f6ec4cb2.proxy.daytona.works/
After Sandbox Preview: https://3000-4fa9538a-7248-4c84-a039-3e86a4fc8f5a.proxy.daytona.works/
Look at the images above in the galley for screenshots of the preview links
About the Project – PatchPilot
Inspiration
Every engineering team knows the pain: a bug gets filed, set up an environment, explore the codebase, implement a fix, run tests, open a pull request… and this cycle repeats endlessly.
While AI coding tools exist, none operate as a real autonomous engineer inside a safe, isolated dev environment. We asked:
What if a GitHub issue could turn itself into a pull request?
PatchPilot was born from the idea that AI agents should work inside sandboxes just like human developers — safely, consistently, and autonomously.
What PatchPilot Does
PatchPilot turns every GitHub issue into an automated development workflow:
- Detects a newly opened GitHub issue
- Creates Daytona BEFORE & AFTER sandboxes to reproduce and fix the problem
- Runs a Claude-powered code agent inside the sandbox
- Claude analyzes the issue, inspects the repo, and modifies real files directly inside Daytona
- PatchPilot runs tests and validates the fix
- PatchPilot automatically commits changes, creates a branch, and opens a GitHub Pull Request
It behaves like a true AI-powered junior engineer who understands context, works in a real dev environment, and autonomously ships fixes.
Also, if you don't like its fix, you can just reject it.
How We Built It
1. GitHub Webhooks → Backend → Daytona
When an issue is created, GitHub triggers our backend. The backend orchestrates Daytona’s official SDK to:
- Spin up BEFORE and AFTER sandboxes
- Clone the repository
- Configure the workspace
- Provide filesystem access and command execution
2. Claude Agent Running Inside Daytona
We generate a sandbox-resident Node script that:
- Reads issue data
- Crawls the repository
- Collects code context
- Sends it to Claude for deep reasoning
- Receives updated file contents
- Writes changes directly into the sandbox’s repo
This means the fix is produced inside Daytona’s isolated environment.
3. Automatic PR Creation
Once the fix is applied, PatchPilot:
- Commits changes
- Creates a new branch
- Pushes to GitHub
- Opens a Pull Request
What We Learned
- How to orchestrate multiple Daytona sandboxes programmatically
- How to safely run AI agents inside isolated environments
- How to structure prompts so Claude can consistently modify large codebases
- How to automate PR creation pipelines
- How to design agent workflows that balance autonomy with reliability
Challenges We Ran Into
1. Managing Daytona sandboxes
Creating isolated BEFORE/AFTER sandboxes, handling work directories, and streaming command output required careful orchestration.
2. Running AI code inside the sandbox
Executing a Node-based Claude agent inside Daytona meant handling:
- dependency installation
- command execution
- path mapping
- file permission issues
3. Parsing and applying AI-generated code safely
Claude’s reasoning had to be constrained so file updates were predictable and usable inside the sandbox.
4. Keeping the demo deterministic
What Makes PatchPilot Unique
- It runs Claude inside a real sandbox, not in the backend
- It uses full Daytona workspaces to ensure safe code execution
- It produces actual pull requests that fix real issues
- It treats AI as a real developer, not just a code suggestion tool
- It’s fully autonomous — no buttons, no prompts, no babysitting
Built With
- TypeScript – backend logic, GitHub integration, agent orchestration
- Next.js API Routes – webhook handler & backend runtime
- Daytona SDK (@daytonaio/sdk) – sandbox creation, filesystem access, command execution
- Claude (Anthropic API) – code analysis and autonomous patch generation
- Node.js – runtime for the in-sandbox agent
- GitHub API – commit & pull request automation
- pnpm / npm – package management inside Daytona
- Ngrok / Cloudflare Tunnel – local webhook development
Built With
- claude
- daytona
- ngrok
- typescript

Log in or sign up for Devpost to join the conversation.