DevPilot reads repositories, searches code semantically, applies precise patches, runs tests, and opens pull requests — autonomously. Bring your own API keys. Connect any provider.
DevPilot runs an autonomous agent loop with real tool access. The system retrieves precise code context using semantic embeddings (RAG), reads and writes actual files via GitHub API, executes shell commands, and routes LLM calls across providers based on task type.
Every agent run is a composition of these six tools. The agent decides which to call, in what order, based on the task. Tool calls are logged in real time in the execution panel.
Semantic code search via embeddings
Read file contents from any branch
Write modified file back to repo
Enumerate repository structure
Execute shell commands and tests
LLM-powered unified diff generation
The agent loop is configured with a maximum step count. Each step has a defined action and produces a logged observation. You see exactly what the agent does — no black boxes.
Point DevPilot at any GitHub repository. The agent indexes code semantically using embeddings for precise context retrieval.
Write a natural-language instruction. Refactor, fix, document, test — any coding intent expressed in plain language.
The agent loop runs autonomously: search → read → reason → patch. Each step is logged and inspectable in real time.
Inspect the unified diff before committing. Accept, reject, or iterate. The agent can open PRs directly from the interface.
DevPilot stores your API keys encrypted per-user in Supabase. When you run an agent task, your key is retrieved and sent directly to the provider — DevPilot never proxies or logs your requests. Platform fallback keys are used only when no user key is found.
API keys are retrieved server-side only at runtime. Never stored in logs or sent to client.
All API routes require a valid Supabase JWT. User identity is verified on every request.
Repository access uses OAuth tokens with minimum required scopes. Read by default, write only when explicitly applied.
Connect a repository, describe a task, and watch DevPilot execute — with full observability at every step.