Your morning cockpit for cross-channel obligations
Locus is an Apache-2.0 Python framework that turns scattered signals from email, calendar, messaging, banking, files, and machine pulse sources into one finite morning brief.
- BYOK
- User-owned provider routing
- Audit
- Every mutation is reversible
- Adapters
- Protocol-driven plugin model
- Local
- Fixture-safe by default
| Obligation | Source | Due | Status |
|---|---|---|---|
| Review contract evidence | Gmail + WhatsApp | Today | Decision |
| Studio X invoice | Qonto | Closed | Resolved |
| Calendar risk window | Calendar | 14:00 | Risk |
| Signed PDF attached | Local files | Trace | Audit |
$ uv run locus brief today
Changed: 6 Open: 23 Needs decision: 8
Next: review contract evidence
Try the full product loop without live accounts
The default demo uses synthetic fixtures only. No Gmail, Calendar, WhatsApp, Qonto, Telegram, Notion, or package publishing path is touched unless explicit live gates are opened.
git clone https://github.com/Niko96-dotcom/locus.git
cd locus
uv sync --dev
uv run locus brief today
uv run locus status --config examples/dogfood/locus.yaml
Ports, adapters, and one event log
Core stays pure. Every adapter implements a Protocol, contract tests pin behavior, and every state change appends to the audit log.
| Layer | Examples | Contract | Default access |
|---|---|---|---|
| Channels | Gmail, Calendar, Qonto, WhatsApp, local files | Required | Fixture or read-only gate |
| Backends | SQLite, Obsidian, Notion | Required | Local first |
| Surfaces | CLI, web cockpit, Telegram, Webhook | Required | Dry-run or local |
| Inference | Capacity, relationship drift, project decay, anomaly | Required | Fixture first |
How Locus thinks
- ObserveRead configured sources through adapters.
- NormalizeProject signals into Events and Obligations.
- ReasonUse deterministic guards plus BYOK semantic extraction.
- SurfaceBatch what matters into a morning cockpit.
- CloseAudit decisions, auto-actions, and undo paths.
Built for developers and careful operators
Start from runnable examples, then bring your own providers, policy, channels, surfaces, and storage.
Open source by design
Apache-2.0, no CLA, fixture-first tests, and public ADRs for durable architectural choices.