Skip to main content
Colin provides a command-line interface for managing projects and running compilations. The CLI is designed around a simple workflow: initialize a project, add your documents, and run the compiler.

init

The colin init command creates a new project:
colin init
This creates colin.toml and a sample model in the current directory:
Created:
→ colin.toml
→ models/hello.md

Run `colin run` to compile your project.

Options

Customize the project during initialization:
colin init --name my-context --models src/docs --output dist
OptionDescriptionDefault
--nameProject nameDirectory name
--modelsSource documents directorymodels
--outputCompiled output directoryoutput
Non-default values are written to colin.toml. You can also initialize an existing directory:
cd existing-project
colin init
If colin.toml already exists, the command fails with an error rather than overwriting.

run

The colin run command compiles your project:
colin run
See Running the Compiler for detailed documentation on compilation behavior, output interpretation, and flags.

Quick Reference

colin run                    # Compile changed documents
colin run --no-cache         # Recompile everything
colin run --ephemeral        # Don't write to .colin/ (for testing, CI)
colin run -q                 # Suppress progress output
colin run --output ./out     # Override output directory
colin run --update           # Update outputs from their source project
colin run --var key=value    # Override a variable
colin run --no-banner        # Hide the logo banner
colin run --no-clean         # Skip auto-clean after compilation

skills

The colin skills command group manages installed skills.

update

Update all Colin-managed skills in a skills directory:
colin skills update
By default, this scans ~/.claude/skills/ for subdirectories containing .colin-manifest.json files and updates them in parallel. Specify a different directory:
colin skills update ~/.codex/skills/
Colin reads each manifest’s source project location, recompiles it, and writes updated outputs back to the skill directory. This keeps all your skills fresh with a single command. Combine with cron or CI to automate skill updates:
# Update skills every hour
0 * * * * colin skills update -q

clean

The colin clean command removes stale files from outputs:
colin clean
Stale files are outputs no longer tracked by the manifest—they appear when you delete or rename model files.

From a Project

When run from a project directory (with colin.toml), Colin finds the output location and checks for stale files:
Project: my-context
Output:  output/

Will remove stale files:
  output/old-report.md
  output/renamed-doc.md

Continue? (y/N)

From an Output Directory

Colin can also clean output directories directly. This works with any directory containing Colin manifests:
cd ~/.claude/skills
colin clean
Colin scans for .colin-manifest.json files and groups stale files by project:
Will remove stale files:

[team-context]
  team-context/old-doc.md

[deployment-guide]
  deployment-guide/deprecated.md

Continue? (y/N)
Each manifest defines its own scope—Colin only removes files the manifest tracks. Multiple skill projects can coexist in the same directory safely.

Ignore Patterns

Colin ignores common system files by default (.DS_Store, Thumbs.db, etc.). For additional patterns, create a .colinignore file in your output directory:
# .colinignore - gitignore-style patterns
*.bak
scratch/
temp-*

Include Cache

Use --all to also remove stale files from .colin/compiled/:
colin clean --all
This checks both output/ and .colin/compiled/ for stale files. Your manifest and LLM call history remain intact—only orphaned compiled artifacts are removed.

Skip Confirmation

Use -y or --yes to skip the confirmation prompt:
colin clean -y
colin clean --all -y

Auto-Clean

By default, colin run and colin update automatically clean stale files after compilation. Skip this with --no-clean:
colin run --no-clean
colin update --no-clean

mcp

The colin mcp command group manages MCP server configuration. MCP servers connect Colin to external data sources like project trackers, databases, and APIs.

add

Add an MCP server to your project:
# Stdio server (local process)
colin mcp add github uvx mcp-server-github

# With additional arguments
colin mcp add linear npx -y @linear/mcp-server

# With environment variables
colin mcp add postgres npx @anthropic/mcp-server-postgres -e DATABASE_URL=postgres://...

# HTTP/SSE server (remote)
colin mcp add remote-api https://api.example.com/mcp --transport http
The first argument is the server name you’ll use in templates. The second is the command (for stdio) or URL (for http/sse).
OptionDescription
-t, --transportTransport type: stdio, sse, or http
-e, --envEnvironment variables in KEY=VALUE format
Transport defaults to stdio for commands and http for URLs.

list

View configured servers:
colin mcp list
Output:
┌────────┬───────┬─────────────────────────────┐
│ Name   │ Type  │ Connection                  │
├────────┼───────┼─────────────────────────────┤
│ github │ stdio │ uvx mcp-server-github       │
│ linear │ stdio │ npx -y @linear/mcp-server   │
└────────┴───────┴─────────────────────────────┘

remove

Remove a server from configuration:
colin mcp remove github

test

Verify a server connection works:
colin mcp test github
Colin starts the server, connects to it, and lists available resources:
Testing connection to github...
✓ Connected to github

Resources (3):
  repo://owner/repo/readme - Repository README
  repo://owner/repo/issues - Open issues
  repo://owner/repo/pulls - Pull requests
Use this to discover what resources a server provides before referencing them in your documents.

auth

Manage OAuth authentication for MCP providers like Linear and Notion.
colin mcp auth clear      # Clear all OAuth tokens
colin mcp auth clear -f   # Skip confirmation
This removes cached OAuth tokens, requiring re-authentication on next use. Useful when experiencing authentication errors (401s, 500s) or when you need to switch accounts. Tokens are stored at ~/.colin/mcp-oauth/. Clearing tokens affects all providers that use OAuth.

Project Resolution

Colin finds your project by searching for colin.toml starting from the current directory and walking up parent directories. This lets you run commands from any subdirectory:
cd my-project/models/products
colin run  # Finds colin.toml in my-project/
Most commands accept a --project option to specify a different project directory:
colin run --project /path/to/other-project

Exit Codes

Colin uses standard exit codes:
CodeMeaning
0Success
1Error (compilation failed, project not found, etc.)
In scripts, check the exit code to determine success:
if colin run -q; then
    echo "Compilation succeeded"
else
    echo "Compilation failed"
    exit 1
fi