hcom run # List available scriptshcom run <script> # Execute a scripthcom run <script> --help # Show script optionshcom run <script> --source # View script source codehcom run docs # Full documentation
Agents: 3 (calibrator, judge, and confessor or caller)Honesty self-evaluation based on OpenAI’s confessions paper.
hcom run confess # You confess, 2 agents verifyhcom run confess --task "auth refactor" # Evaluate specific taskhcom run confess --fork # Fork mode (3 agents)hcom run confess --target nova --fork # Evaluate another agent
How it works:
1
Default mode: You are the confessor
You generate a ConfessionReport about your recent work. A calibrator analyzes your transcript independently (baseline). A judge compares both reports and sends a verdict.
2
Fork mode (--fork)
Spawns a forked agent with your memory as confessor. Requires Claude.
Agents: 1 headless oracleA dedicated codebase oracle that deeply reads files and answers questions on demand.
hcom run fatcow --path src/tools # Live fatcowhcom run fatcow --path src/ --focus "auth, middleware" # With focushcom run fatcow --path src/tools --dead # Dead modehcom run fatcow --ask fatcow.tools-luna "what does db.py export?"
Two modes:
Live (default)
Stays running in background, subscribes to file changes, answers questions in real-time.
hcom run fatcow --path src/authhcom send "@fatcow.auth where is JWT validation?"
Dead (--dead)
Ingests files then stops. Resumed automatically when queried.
hcom run fatcow --path src/auth --deadhcom run fatcow --ask fatcow.auth-luna "where is JWT validation?"
How it works:
1
Ingestion
Reads EVERY file in the specified path. Not skimming - full reads with line numbers, structure, exports, imports.
2
Indexing
Builds mental map of modules, functions, classes, constants, integration points.
3
Subscription (live mode)
Subscribes to file change events. Re-reads files when they change.
4
Answering
Responds with file:line precision when asked questions via hcom.
LAUNCHED_NAMES=()track_launch() { local names=$(echo "$1" | grep '^Names: ' | sed 's/^Names: //') for n in $names; do LAUNCHED_NAMES+=("$n"); done}cleanup() { for name in "${LAUNCHED_NAMES[@]}"; do hcom kill "$name" --go 2>/dev/null || true done}trap cleanup ERRlaunch_out=$(hcom 1 claude --tag worker --go --headless 2>&1)track_launch "$launch_out"