> ## Documentation Index
> Fetch the complete documentation index at: https://docs.codealive.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Prepare your repository

> Learn which files CodeAlive indexes and how to exclude content from repository processing.

CodeAlive works with source code, configuration, documentation, and other text-based files. Most supported file types come from [GitHub Linguist's language definitions](https://github.com/github-linguist/linguist/blob/main/lib/linguist/languages.yml), with additional support for common text and data formats such as Markdown, plain text, JSON, and CSV.

CodeAlive automatically respects your existing `.gitignore`, so you do not need to copy those rules into another file. During repository preparation, it also removes common low-value content such as vendored dependencies, minified or bundled frontend assets, source maps, and other generated static assets.

CodeAlive does not index:

* Files excluded by `.gitignore` or `.codealiveignore`
* Unsupported or binary formats, such as images, archives, PDFs, and compiled artifacts
* The `.git` directory and symbolic links

## Exclude content with `.codealiveignore`

Add a `.codealiveignore` file when tracked content is useful to your application or development workflow but would add noise to CodeAlive search. It uses the same pattern syntax as `.gitignore`.

```gitignore theme={null}
# Generated API client; keep the source OpenAPI specification indexed
src/generated/api-client/

# Recorded HTTP responses and large test fixtures
tests/fixtures/http-recordings/
tests/fixtures/datasets/

# Generated snapshots that duplicate source-level behavior
**/__snapshots__/

# Exported sample data that is not part of the implementation
examples/data/*.json
```

You can place `.codealiveignore` in the repository root or in a subdirectory. A file in a subdirectory applies to that directory and its descendants.

<Tip>
  Use `.codealiveignore` for project-specific exclusions. Leave dependencies, build output, and other files that should not be committed at all in `.gitignore`. Commit `.codealiveignore` so the same indexing scope applies to everyone; changes take effect during the next repository processing run.
</Tip>
