Colin keeps agent skills fresh. Write templates that reference live sources like GitHub files, MCP servers, and other documents. Colin compiles them, tracks dependencies, and rebuilds only what’s stale.
colin run. Colin fetches the deployment guide from GitHub, resolves the reference to your environments doc, extracts incident summaries through an LLM, and writes the compiled skill. Run it again tomorrow—if nothing changed upstream, nothing rebuilds. If the deployment guide in GitHub was updated, Colin detects the new commit and recompiles.
Context as Code
When Colin compiles a document, it records what sources were used and their versions—commit SHAs for GitHub files, timestamps for HTTP resources, version identifiers for MCP resources. This information is stored in a manifest alongside the compiled output. On subsequent runs, Colin checks the manifest against current source versions. Documents whose sources haven’t changed skip compilation entirely. When a source does change, Colin recompiles the affected document and any documents that depend on it. LLM calls are cached separately by input hash. If a document recompiles but the input to an LLM block is unchanged, the cached LLM response is reused.How It Works
References:ref('other-doc') fetches content from another document and registers a dependency. When other-doc changes, documents that reference it recompile. See References.
Providers: Built-in providers connect to external sources: GitHub repositories, HTTP endpoints, S3 buckets, and MCP servers. Each provider tracks source versions for staleness detection.
LLM Processing: The | llm_extract() filter and {% llm %} blocks send content to language models. See LLM Provider for the full API.
Manifests: The manifest records what was compiled, from what sources, at what versions. This powers incremental builds and enables colin run --update from any location.
Beyond Skills
Colin is a general-purpose context engine. Skills are the most common output because they’re how agents like Claude Code, Codex, and Cursor consume context autonomously—but Colin compiles any document that needs to stay current. Change the output target to write directly to Claude Code’s skills folder:colin.toml
target = "local" and path = "dist/" to write to a directory. The compilation model is the same regardless of where the output goes. See Configuration for all output options.