What Docup reads
The branch, the files and the limits that decide what the AI is allowed to see in your repository.
The AI never browses your repository freely. It works on a snapshot: a set of files that passed a filter, held in memory for the length of a run. This page describes how the snapshot is made.
The branch#
Docup reads the repository's default branch, at the latest commit when a run starts. For a first run the commit is saved with the project; later updates compare from it. Other branches are never read.
The archive#
Docup downloads the repository as one compressed archive, rather than one request per file. Files that are skipped are never buffered in memory.
The filter#
Each file goes through two checks.
Path and size#
A file is skipped when:
- it is inside a skipped folder:
.git,node_modules,vendor,dist,build,out,target,.next,.vinext,.nuxt,.svelte-kit,.turbo,.cache,coverage,__pycache__,.venv,venv,.idea,.vscode,Pods,.gradle,binorobj; - it is a lockfile or credential file, such as
package-lock.json,pnpm-lock.yaml,yarn.lock,bun.lock,Cargo.lock,go.sum,.npmrc,.netrc,id_rsaorsecrets.json; - it is an environment file (
.env,.env.production, and so on). Files ending in.example,.sampleor.templateare kept; - it has a binary extension: images, audio, video, PDFs, archives, fonts, executables, WebAssembly, databases or source maps;
- it has a key or certificate extension:
.pem,.key,.p12,.pfx,.keystore,.jks,.crt,.ceror.p8; - it is minified (
.min.js,.min.css); - it is empty or larger than 100 KB;
- it matches one of your ignore paths.
Content#
A file that passes is checked once more. It is skipped if its first 8,000 bytes contain a null byte, which means it is binary, or if its text contains a private key header such as -----BEGIN PRIVATE KEY-----.
Limits#
A snapshot holds at most 1,500 files and about 12 MB of text. After that, remaining files are counted as skipped. For large repositories, use ignore paths to keep generated code, fixtures and vendored sources out, so the limit is spent on code worth documenting.
What the AI can do with the snapshot#
The planner and writers get three read-only tools over the snapshot:
| Tool | What it does |
|---|---|
list_files |
Lists paths, optionally under a folder. Up to 300 are returned at once. |
grep |
Searches file contents with a case-insensitive regular expression and returns up to 40 matching lines. |
read_file |
Reads a file with line numbers, 400 lines at a time. |
They cannot write files, run code, call your services or reach any other repository. A file the filter dropped does not exist for them.
How you can see it#
Every run shows Files read and how many files were skipped. If the numbers look wrong, adjust AI guidance and run again. See Runs.