Chronis
Event-sourced task CLI powered by AllSource, the embedded event database. Every action is an immutable event — state is derived from projections over the event stream.
Binary: cn | Crate: chronis | Storage: .chronis/ | Author: Decebal Dobrica
Install
Quick Start
Commands
Task Lifecycle
| Command | Alias | Description |
|---|---|---|
cn init |
Initialize a .chronis/ workspace in the current directory |
|
cn task create <title> |
Create a task (see flags below) | |
cn list [--status=open] |
cn ls |
List tasks, optionally filtered by status |
cn ready |
cn r |
Show tasks that are open and unblocked |
cn show <id> |
cn s |
Task details, children, and event timeline |
cn claim <id> |
cn c |
Claim a task (uses CN_AGENT_ID env var, defaults to "human") |
cn done <id> [--reason=...] |
cn d |
Mark a task as done |
cn approve <id> |
Approve a task |
Task Creation Flags
--type=epic \ # Type: task (default), epic, bug, feature
--parent=<id> \ # Parent task ID (for hierarchy under epics)
--blocked-by=<id1>,<id2> \ #
Dependencies
Visualization
Sync & Migration
Workflow
cn ready --> cn claim <id> --> (do work) --> cn done <id> --> cn sync --git
For agent orchestration, set CN_AGENT_ID to identify which agent claims tasks:
Architecture
Chronis wraps AllSource's embedded library. Every mutation (create, claim, done, approve, dependency change) emits an event into the WAL. A TaskProjection folds these events into queryable task state stored in a DashMap (~12us reads).
cn CLI (clap)
|
v
TaskRepository trait
|
v
EmbeddedCore (allsource-core)
|
+--> WAL (CRC32, fsync) --> Parquet (Snappy)
+--> DashMap (in-memory reads)
+--> TaskProjection (event folding)
Data lives in .chronis/ at the project root:
.chronis/
wal/ # Write-ahead log segments
parquet/ # Columnar event storage
config.toml # Workspace config
Event Types
All state is derived from these events:
| Event | Emitted by |
|---|---|
task.created |
cn task create |
task.updated |
(future: cn task update) |
task.dependency.added |
cn dep add or --blocked-by flag |
task.dependency.removed |
cn dep remove |
workflow.claimed |
cn claim (first-write-wins) |
workflow.step.completed |
cn done |
workflow.approval.granted |
cn approve |
Quality Gates