Security

Private by design.

Codna runs on your machine with your own key. Only the evidence bundle reaches your model provider.

Security

01

Runs locally

Understanding, the repository map and recall run on your machine, offline, for zero tokens. No server to operate.

02

BYOK

Your provider key lives in the OS keychain. It is never passed on the command line and never printed.

03

Fail-closed egress

Set privacy.egress to fail-closed in codna.yaml. Codna then runs your tests only when it can deny them network access at the kernel level, and makes no registry lookups during review.

04

Redaction always on

Secrets are redacted from every output. That setting cannot be turned off.

Data flow

What leaves your machine.

Most coding tools stream your repository into a context window. Codna does the opposite. The work happens locally, and only a small, inspectable bundle reaches a model. Here is the path your code takes.

01

The map runs locally, for zero tokens

Codna reads and maps your repository on your own hardware. No code is sent anywhere to understand your codebase.

02

An evidence bundle is built

For each fix, Codna assembles the suspect files, call paths and failing test rather than shipping the whole tree. It prints the raw-to-bundle size on every run.

03

The agent calls your model, with your key

Codna sends that bundle to your provider using your own key from the keychain. The data agreement is between you and your provider. Or use the managed allowance and Codna carries the bill.

04

Fail-closed egress refuses the rest

Set privacy.egress to fail-closed and Codna runs your tests only under kernel-level network denial. Secrets are redacted from every output, and that cannot be turned off.

Boundaries

What Codna never does.

Good security is as much about what a tool refuses to do as what it offers. These are behaviours of the shipped product.

  • Send your repository to a model. Only the evidence bundle or the diff goes.
  • Print or log your provider key.
  • Turn secret redaction off.
  • Give the review agent a write token or a shell.
  • Merge a pull request.

Deployment

Private by deployment.

Where the software runs decides where your data lives. Codna runs the same commands on every surface. Pick the one that fits your controls.

On your machine

The CLI and the MCP server run locally. Your code is mapped and fixed on the hardware it already lives on. Only the evidence bundle reaches your provider.

In your CI

thyn-ai/codna-action@v1 runs on your own runners with your own key. Fix mode opens pull requests and never merges; review mode posts findings and a verdict.

GitHub App

Hosted by Codna, with per-job, repository-scoped, short-lived tokens. The review agent holds no write token. Admins can turn automatic fixes off for the organization.

01Runtime controls

Enforced, not promised.

Read-only review with no write token. Write tokens scrubbed from test runs. Repository-scoped, short-lived App tokens per job. Redaction that cannot be disabled.

Frequently asked

Your code is not used to train models unless you opt in. See the privacy policy. Understanding runs on your machine, and only the evidence bundle or the diff reaches your model provider.

Yes. The CLI and the GitHub Action run wherever you run them, with your own key. There is no server to operate. The hosted GitHub App is optional.

An opt-in setting in codna.yaml. With privacy.egress set to fail-closed, Codna runs your tests only when it can deny them network access at the kernel level, and makes no registry lookups during review. Without it, sandboxed test runs on Linux still get kernel-level network denial; elsewhere the run records network activity.

codna key set stores your provider key in the OS keychain. Codna reads it from the environment or the keychain and calls your provider directly. Billing and data terms are between you and your provider.

Short-lived, repository-scoped tokens minted per job. Review: contents read, pull requests write, checks write, statuses read. The review agent itself holds no write token and no shell. Fix jobs get write scopes only for the repository they act on.

Only the evidence bundle for a fix, or the diff for a review. Codna prints the raw-to-bundle token size on every run, so you can see it for your own repository. During a review Codna also checks dependency claims against npm and PyPI unless egress is fail-closed.

Your code. Your keys. Your machine.