How cankalsoftware/ecc works
ECC is a harness-native agent operating system: it installs agent skills and hooks into supported coding harnesses, and includes a Rust session-orchestration CLI for starting and monitoring agent work. A typical setup begins with a user invoking guided installation; during operation, the ECC CLI manages sessions and persists state, with messaging, worktree support, and a terminal dashboard as distinct capabilities. The tree and excerpts support the named subsystems, but do not establish all their runtime wiring, so uncertain connections are omitted.
Main entry points: main.rs ECC2 CLI · install-guided.js Guided Setup · registry.js Harness Targets · manager.rs Session Manager
Components 21
Setup and Install
- Guided Setup
scripts/install-guided.js - Install Planning
scripts/install-plan.js - Install Apply
scripts/install-apply.js - Harness Targets
scripts/lib/install-targets/registry.js
Harness Resources
- Agent Skills
skills - Agent Hooks
scripts/hooks
Session Orchestration
- ECC2 CLI
ecc2/src/main.rs - Configuration
ecc2/src/config/mod.rs - Session Manager
ecc2/src/session/manager.rs - Session Runtime
ecc2/src/session/runtime.rs - Session State
ecc2/src/session/store.rs - Agent Messaging
ecc2/src/comms/mod.rs
Operations and Visibility
- Git Worktrees
ecc2/src/worktree/mod.rs - Terminal Dashboard
ecc2/src/tui/app.rs - Tool Observability
ecc2/src/observability/mod.rs - Notifications
ecc2/src/notifications.rs
LLM Support
- LLM CLI
src/llm/cli/selector.py - Model Providers
src/llm/providers/resolver.py
Other components
- User
- Coding Harnesses
- Agent Process
Connections 20
- User → Guided Setup: invokes setup
- Guided Setup → Install Planning: creates plan
- Guided Setup → Install Apply: applies setup
- Install Apply → Harness Targets: selects targets
- Harness Targets → Agent Skills: installs resources
- Harness Targets → Agent Hooks: installs hooks
- Coding Harnesses → Agent Skills: loads skills
- Coding Harnesses → Agent Hooks: runs hooks
- User → ECC2 CLI: runs commands
- ECC2 CLI → Configuration: loads config
- ECC2 CLI → Session Manager: manages sessions
- ECC2 CLI → Terminal Dashboard: launches dashboard
- Session Manager → Session State: persists state
- Agent Messaging → Session State: stores messages
- Session Manager → Agent Process: spawns sessions
- Agent Process → Git Worktrees: uses worktree
- ECC2 CLI → Tool Observability: records tool activity
- Terminal Dashboard → Session State: reads session state
- User → LLM CLI: requests model task
- LLM CLI → Model Providers: selects provider