colin.toml configuration file and a models/ directory with your source documents. When you compile, Colin reads from models/ and writes to output/.
Project Structure
A typical project looks like this:.md files in models/ recursively, compiles them in dependency order, and mirrors the directory structure into output/.
Configuration
Thecolin.toml file defines project settings:
colin.toml
| Setting | Description | Default |
|---|---|---|
name | Project name for display | Directory name |
model-path | Source documents directory | models |
[project.output] path | Compiled output directory | output |
LLM Provider
Configure the default LLM model:colin.toml
MCP Servers
Configure MCP servers for external data sources:colin.toml
colin.mcp.<server>.resource():
Initializing Projects
Create a new project withcolin init:
colin.toml and an empty models/ directory. Add documents to models/ and run colin run to compile.
For an existing directory:
Organizing Documents
Use subdirectories to group related documents. The directory structure becomes part of each document’s URI:models/skills/support-agent.md
Naming Conventions
Choose clear, descriptive names that indicate document purpose: Source documents contain raw or lightly processed information:sources/customer-calls.mdsources/linear-projects.md
context/project-health.mdcontext/customer-sentiment.md
skills/project-status.mdprompts/support-agent.md
The Output Directory
Theoutput/ directory contains all compiled outputs:
manifest.json tracks compilation state: document hashes, dependency edges, LLM call cache, and timestamps. Colin uses this to determine what needs recompilation.
Compiled documents are plain Markdown with all Jinja templating resolved and LLM outputs substituted. You can read them directly or serve them to other systems.
Cleaning Up
Remove all compiled outputs with:output/ directory. The next colin run performs a full recompilation.
Finding the Project
Colin searches forcolin.toml starting from the current directory and walking up to parent directories. This lets you run commands from any subdirectory:
colin.toml exists in the directory tree, Colin uses sensible defaults: models/ for source, output/ for output, and the current directory name as the project name.