> For the complete documentation index, see [llms.txt](https://docs.codna.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.codna.ai/reference/faq.md).

# FAQ

## Does Codna need Node, Bun, or Docker?

No. `pip install codna` is self-contained — the engine, the Telys memory kernel, and a compiled agent-core sidecar ship inside the wheel. See [Installation](/getting-started/installation.md).

## Can it run offline?

Repository understanding, `codna triage`, and local memory run fully offline. The only outbound dependency is the LLM call in `codna fix`/`review`, which reaches your model provider. Point Codna at a local model and even that stays on your network.

## Where does my code go?

Codna maps your repository locally, with no LLM. When the agent plans a fix, only the compact, issue-specific evidence bundle goes to your model provider — not the whole repository. You run it on your own infrastructure with your own key.

## Managed models or bring-your-own-key?

Both. Set a provider key with `codna key set <provider>` to self-bill uncapped, or use an engine key (`CODNA_API_KEY`) that draws on a Codna account allowance. See [Models & BYOK](/concepts/models-and-byok.md).

## What does it cost to run?

Understanding a repository costs \~0 LLM tokens — it's deterministic. Only the agent's fix step spends tokens, and it works from a scoped evidence bundle, so it spends far less than a brute-force agent. Each `codna fix` reports its token use.

## Which languages are supported?

The engine's repository intelligence (triage/fix/review) spans 250 languages. The on-device memory extractor supports Python plus JS/TS/Go/Rust/Java/C/C++/C#/PHP/Ruby. See [Language support](/concepts/languages.md).

## Does it work on monorepos and large repositories?

Yes. Understanding is a deterministic graph build, not a token-bounded read, so repository size doesn't blow up the agent's context — the evidence bundle stays scoped to the issue's blast radius.

## Can it work on private repositories?

Yes. Run it locally against a checkout or a git URL with your token. For hosted automation, the [GitHub App](/guides/github-app.md) uses a short-lived, repo-scoped installation token.

## Which scanners does `codna secure` support?

Any scanner that emits SARIF 2.1.0 — CodeQL, Semgrep, Snyk, and Trivy are the tested drivers. See [Security Autofix](/guides/security-autofix.md).

## App or Action — which should I use?

The [GitHub App](/guides/github-app.md) is hosted and reviews/fixes PRs with no CI setup. The [GitHub Action](/guides/github-action.md) runs on your CI runner so you control gating. They're complementary.

## How do I check that it's working?

`codna --version` confirms the install; `codna status` shows runtime, memory, and key state; `codna doctor` gives the full diagnostic. See [Operations](/reference/operations.md).

## Still stuck?

See [Troubleshooting](/reference/troubleshooting.md), or ask on [Discord](https://discord.gg/w8NDsph9an).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.codna.ai/reference/faq.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
