Projects and Blueprints
Colin organizes work into projects. A project is a folder with acolin.toml configuration file and a models/ directory containing your source templates. When you run Colin, it reads templates from models/, resolves their dependencies, and writes compiled output.
Blueprints are starter templates for projects. Instead of creating files manually, you can initialize a project from a blueprint that already has everything configured. We’ve prepared a quickstart blueprint so you can follow along without needing your editor open.
Create the project:
using-colin/ folder with everything you need. Move into it:
What’s Inside
The blueprint created this structure:colin.toml file is minimal—just the project name. The interesting parts are in models/.
The Skill
Here’smodels/SKILL.md, the main skill file:
name and description are what Claude Code sees when deciding which skills apply to your request.
Below that is the template body. Two things are happening here:
colin.github.file(...)fetches this very quickstart from GitHub and inserts its contentref('tips.md').contentpulls in content from thetips.mdfile in your project
The Supporting Document
Here’smodels/tips.md, a reference document that gets pulled into the main skill:
publish: false in the frontmatter. This tells Colin to compile the document but not include it in the output. The tips content gets composed into SKILL.md via ref(), so there’s no need for a separate output file.
Compile the Project
Now run Colin:models/, fetches the quickstart from GitHub, resolves the reference to tips.md, and writes the compiled output. By default, output goes to an output/ folder in your project.
Take a look at output/SKILL.md:
Incremental Builds
Here’s where Colin gets interesting. Make a change tomodels/tips.md—add a line about the HTTP provider.
If you’d rather not open an editor, here’s a shortcut:
SKILL.md because it depends on tips.md, which changed. But notice: it didn’t re-fetch from GitHub. The GitHub content hasn’t changed since last time, so Colin used its cached version.
This is the core value proposition. Colin tracks what sources went into each document and their versions. When you run again, it only refetches what’s actually changed. Your skills stay fresh without redundant work.
Output to Claude Code
So far, Colin has been writing tooutput/ in your project. To make this an actual skill that Claude Code can use, you need to configure an output target.
Add the output configuration to colin.toml:
colin run again.
Now instead of writing to output/, Colin writes directly to ~/.claude/skills/using-colin/. The skill is immediately available in Claude Code. Your agent now knows how to use Colin—and that knowledge will stay current every time you run colin run.
What You Built
You now have an agent skill that:- Contains the Colin quickstart, pulled live from GitHub
- Includes your own reference notes composed via
ref() - Rebuilds incrementally when sources change
- Lives in Claude Code, ready to help
Next Steps
- Providers: Connect to GitHub, Linear, Notion, HTTP, and more
- LLM Processing: Transform content with
| llm_extract()and{% llm %}blocks - References: Advanced dependency patterns
- Configuration: All project settings