DocupDocup
Esc

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, bin or obj;
  • 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_rsa or secrets.json;
  • it is an environment file (.env, .env.production, and so on). Files ending in .example, .sample or .template are 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, .cer or .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.

Documentation written with Docup