Like having a developer sitting next to whoever's investigating
An AI agent that already knows your codebase and can query your production data and logs in the environment you're investigating. Support, QA and engineering get to the answer on their own.
C:\> how it works
Three steps to answers, in any environment
Ship
Your CI pushes a snapshot of your repo to Codepanion's ingest API. One line in your pipeline, any CI system.
$ curl -X POST https://api.codepanion.app/api/ingest/$TENANT_ID \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/gzip" \
-H "X-Commit-Sha: $GIT_SHA" \
--data-binary @repo.tar.gz --fail --show-errorIndex
We diff against the previous SHA and embed only what changed, so a normal push is searchable in well under a minute. The first index of a large repository takes a few minutes, once.
embed 14 files changed, 847 chunks
ready index updated in 3.2s
Investigate
Support, QA, and engineering ask questions in plain English. Pin the investigation to an environment and the agent searches code, queries your database, and reads logs to find answers with citations.
staging logs, /health/ready throws on a missing Redis:ConnectionString. The new CacheHealthCheck.cs:31 assumes it's set, but the staging config has no value.C:\> capabilities
Built for support and QA, secured for production
search_code · search_text
Code search
Vector search across your entire codebase. Ask questions in plain English, get answers with file paths and line numbers. Every result is a citation your team can verify.
query_database
Database query
Read-only queries against your production database, or a replica if you have one. The agent writes the query and you see exactly what it ran. Every query writes an audit log row naming the environment it ran against.
search_logs
Log search
Connect a log source and the agent reads it like code. It searches for the error, pulls the surrounding context and ties the stack trace back to the line that threw it. A QA repro and a production incident follow the same process.
run_js
Exact arithmetic
Language models guess at numbers. When an answer needs real arithmetic over hundreds of rows, the rows go to a sandbox in your own browser and only the computed result comes back. They pass through our API in memory and are never stored, and the model sees a row count, the column names and at most five sample rows.
render_chart
Charts and saved reports
Ask for failures per day and get a chart, drawn in your browser from rows that never enter the transcript. Save the query and the chart as a report and run it again next week, without waiting on a change window for the reporting server.
environment
Environment-aware
Code, data and logs are labelled by environment. Pin an investigation to staging, QA or production and every tool defaults to that environment's code, data and logs. Whichever environment a call actually ran against is recorded in the audit log.
C:\> security
We take less access than your ORM
Code, data and logs are read-only, always. The two things that write anywhere (filing an issue, proposing a patch) stop and wait for a person to approve them.
- read-only
- We enforce read-only access and roll back every query transaction.
- isolation
- Every table carries a tenant ID, and every query is scoped to it before it runs. The scope is applied by convention across every mapped table, so a new table cannot ship without it. It fails closed: a request with no resolved tenant matches nothing.
- audit
- Every tool call writes an audit row: the tool, the query it sent, the environment, and who approved any write. The generated SQL and the rows it returned are in the investigation's tool steps.
C:\> audit log, the last four rows
| When | Actor | Action | Environment | Details |
|---|---|---|---|---|
| 2026-09-08 00:25:02 | jamie@acme.com | approve_write | tool: create_issue, provider: github, outcome: executed | |
| 2026-09-08 00:24:44 | agent | query_database | production | table: Invoices, where: InvoiceDate < 2020-01-01, environment: production |
| 2026-09-08 00:24:36 | agent | search_logs | production | provider: seq, query: FormatException invoice, level: Error |
| 2026-09-08 00:24:31 | agent | search_code | production | query: invoice date filtering, resultCount: 3 |
Get further on your own
We're taking early customers now. If support, QA, or engineering could get further before an issue lands on someone else's desk, let's talk.