The first decision in a CodeProbe POC is not which model to compare. It is whose machine the run happens on, because that answer determines everything downstream: which install path you use, who sees repository source, what you are allowed to carry out of the engagement, and how long the whole thing takes. Settle it in the first call.
If the customer will run CodeProbe themselves against their own code, go to Zero-code-access engagements. If you are running it on a repository you can legitimately clone — a public repo, a demo repo, or a customer repo you have written access to — read on.
This repository is here so you can read the docs, file POC issues, and look at the source. It is not the install path. Install the released package:
uv tool install codeprobe # or: pipx install codeprobeuv tool install and pipx put the CLI in its own environment and on your
PATH. A plain pip install into whatever interpreter happens to be active can
land the package somewhere the codeprobe on your PATH is not, which surfaces
much later as a ModuleNotFoundError from a command that looked installed.
Then check readiness from inside the target repo, which must be a full clone because shallow clones cannot be mined:
cd /path/to/target/repo
codeprobe doctor --repo . --agent claudeUse --agent copilot when GitHub Copilot CLI is the selected path, and add
--private-ca /path/to/ca.pem when the customer's proxy requires a custom CA.
Run doctor before you are on a call, not during one.
codeprobe run refuses to start outside a container and exits with
UNCONTAINED_REFUSED. That refusal is deliberate: a run executes an autonomous
agent with --dangerously-skip-permissions alongside mined third-party test
and verifier scripts, so on a bare host it would have your full filesystem,
credential, and network access. Prepare the released images once, with
digest-pinned references:
codeprobe bootstrap \
--agent-image 'registry.example.test/platform/codeprobe-agent@sha256:<agent-digest>' \
--scoring-image 'registry.example.test/platform/codeprobe-scoring@sha256:<scoring-digest>'Get the current digests from the upstream release you are running. Docker and Podman both work, and offline archives, private registries, proxies, and private CAs are covered in oci_images.md. Do this the day before a customer session; pulling images over a conference-room network while someone watches is how a POC loses twenty minutes.
Point assess at the repo before you plan anything, and let its score decide
which of the three paths you are on:
codeprobe assess /path/to/repoA repo with real merged-PR history takes the
standard workflow, which mines ground truth straight
from merge commits and is the path you want in nearly every POC. A repo with
squashed history, a brand-new repo, or vendored code scores low and takes the
cold-start workflow, which generates synthetic
comprehension tasks from current repo state instead. When the interesting
behavior spans services — and this is the shape that shows Sourcegraph MCP and
cross-repo retrieval doing real work — use the
cross-repo workflow with
codeprobe auth sourcegraph and --backend sourcegraph.
The full flow with real commands and real output is in example-walkthrough.md. Read it once before your first POC.
Pass --max-cost-usd on every run, including your own rehearsals:
codeprobe mine .
codeprobe run . --agent claude --max-cost-usd 5.00
codeprobe interpret .To compare configurations rather than exercise a single agent, start from
codeprobe init, a guided wizard that builds the comparison from a "what do
you want to learn?" question and saves you from hand-writing an experiment
profile in front of a customer. If you would rather drive the tool through a
coding agent, codeprobe skills install drops the packaged skills into
~/.claude/skills/; the workflow is in
workflows/with-agents.md.
Freeze the sampling plan and the configurations before results exist. A comparison whose task set changes after you have seen a number is not a comparison anyone should act on, and a customer's platform team will spot it.
For customers whose code cannot leave their environment, the Zero-Code-Access Operator Kit is the operating contract rather than a suggestion. A data-owner technical owner runs everything inside their environment, and Sourcegraph personnel never receive repository, source, prompt, patch, trace, task-level result, log, or diagnostic access.
Your side of that engagement is support-methodology.md and coordination.md, plus the intake, the scheduling, and the bounded findings review. The customer gets data-owner-runbook.md and the templates. Note the sequencing constraint that catches people: the sampling plan and the two-configuration profile are frozen before any results exist, and one structured session capped at 45 minutes is the only synchronous contact.
Anything crossing the boundary crosses as an evidence bundle, defined in EVIDENCE_BUNDLE.md.
codeprobe snapshot create is how a result leaves the customer's machine. The
default mode carries per-file sha256 and size, never file bodies, and
including bodies takes an explicit --allow-source-in-export opt-in with a
pre-publish canary gate for secret inclusion. Scanning is deterministic
throughout, using gitleaks, trufflehog, or configured regex patterns, with
no LLM anywhere in the redaction path — a useful fact to have ready when a
security reviewer asks.
Do not reach for --allow-source-in-export to make a report more convincing.
The details are in SNAPSHOT_REDACTION.md.
CodeProbe is beta software and the public contract is not a 1.0 stability
promise, so tell customers that before they build a procurement decision on a
number. The supported configuration is narrow: CPython 3.11 through 3.13,
Ubuntu 22.04 LTS on linux/amd64, and Docker on that runner. macOS is mining
only, Podman is preview, and Windows is unsupported. Claude Code is the
supported agent, GitHub Copilot CLI is preview, and Codex is unsupported for
repository-edit comparisons.
The current matrix is support.md, with
support_policy.json as the machine-readable source. Enterprise deployment
questions go to security/enterprise_deployment.md.
File issues about POC mechanics, missing runbook steps, and this
repository's docs here in sourcegraph/codeprobe. Product defects, CLI bugs,
and feature requests belong upstream in
sjarmak/codeprobe, where the code is
maintained and released. When you hit something that cost you time on a live
customer call, write it down here the same day, while you still remember the
exact command and the exact error code.