collar

DAG-first AI agent harness — Entity→Target:verb(card). Reads .dag files. Rust router at 3ms.

v1.4.0 MIT Python 3.11+ Semver 2.0.0 dotdog validate semver guard
.dog = human spec format  ·  .dag = agent runtime format  ·  .md = last resort

Collar is forked from NousResearch/hermes-agent, rebuilt as a DAG-first harness. It reads .dag files as its behavioral ground truth. Skills auto-compile from .dog specs into .dag edges. No prose config, no baked-in prompts — just DAG paths.

Created by Justin DiClemente (@logohere).

Install

git clone https://github.com/specdog/collar.git
cd collar
python3 -m venv .venv && source .venv/bin/activate
pip install -e .
npm install -g dotdog

Requires Python >= 3.11.

Quick Start

collar              # interactive chat
collar chat -q "..."  # single query
collar setup          # first-time setup wizard

No API key? Use OAuth

collar auth add openai-codex   # ChatGPT Plus/Pro
collar auth add xai-oauth      # xAI SuperGrok
collar auth add qwen-oauth     # Qwen Plus/Pro
collar auth add nous           # Nous Portal

Then collar model to pick your provider. Or set OPENROUTER_API_KEY in ~/.dag/.env for pay-per-token access to 200+ models.

Architecture

LayerSourceFormatLoader
System promptdags/*.dagDAG-path plain text_load_dag_text()
Skillsskills/*/SKILL.dagDAG-path plain textskill_view()
Projects*.dagJSON v2/v3MCP dotdog

Key Numbers

95% compression383k → 17k (skills)
74% compression15k → 4k (system prompt)
0 legacy refs6974+ renamed

Links

GitHub · dotdog · specdog org