Skip to content
Taking early customers

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

01

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-error
02

Index

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.

index diffing a1b2c3d..e4f5g6h
embed 14 files changed, 847 chunks
ready index updated in 3.2s
03

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.

The staging deploy is failing health checks. What changed?
In 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

WhenActorActionEnvironmentDetails
2026-09-08 00:25:02jamie@acme.comapprove_writetool: create_issue, provider: github, outcome: executed
2026-09-08 00:24:44agentquery_databaseproductiontable: Invoices, where: InvoiceDate < 2020-01-01, environment: production
2026-09-08 00:24:36agentsearch_logsproductionprovider: seq, query: FormatException invoice, level: Error
2026-09-08 00:24:31agentsearch_codeproductionquery: 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.