Build · March 2026

A decentralized agentic system

I built a system to help me manage my work and life. The idea is for it to keep track of things I need to do, remind me when I forget, and help me get things done. There are six specialized agents (email, calendar, tasks, notes, network, and code). Instead of having a central orchestrator who makes the calls, spawns and coordinates the agents, the system is decentralized. Each agent keeps track of their own domain, exercises judgment, and signals their own coordination needs through a thin router protocol.

Built by Claude Code.

AUTHOR Daniel Halvarsson
DATE March 2026
AFFILIATION The Ratio Institute

Four layers

Telegram
To communicate with the system, I use Telegram. One bot, one conversation.
Router — Classifies and Facilitates
Reads incoming messages for intent and dispatches to the right agent. Facilitates handshakes between agents but doesn't interpret their content.
Morning Prompt Evening Prompt
Agent Layer — Domain Ownership
Task Email Calendar Note Network Code
11 active coordination paths of 20 possible · Agents signal needs, the router facilitates
Governance & Infrastructure
A governance layer classifies agentic actions into three trust tiers. Dangerous actions require my approval via Telegram.
Auto-Allow Notify Require Approval

The navigator's OS

I don't work from schedules or to-do lists. I work the way I train at the gym: I know which domain I'm working in today, I start with whatever feels right, and each action creates the energy for the next. The system is built for this. Every morning at 07:30, it asks:

Waking System · Morning Prompt

What kind of day is it?
🔧 Pipeline — building, coding, data
📡 Outward — emails, people, visibility
✍️ Writing — papers, grants, drafts
🔭 Explore — learning, reading, experimenting
📋 Admin — invoices, forms, obligations

I pick one. The task agent surfaces the queue for that day type. The system doesn't schedule my day — it shows me the equipment and lets me navigate.

The server never sleeps

The entire system runs on a server in my apartment — a Lenovo X1 Carbon running Ubuntu, always on, always connected. I interact with it through Telegram on my phone.

Daniel → Waking System

XBRL repo: try parent category fallback for missing tags.

The code agent resolves the repo, starts a Claude Code session on the server, and reports back when it's done. I read the result while cooking dinner.

The gap between "I should do this" and "it's done" collapses.

Stack & numbers

6
Autonomous Agents
Task · Email · Calendar · Note · Network · Code
11
Active Coordination Paths
Of 20 possible directed paths. Agent-initiated handshakes.
24/7
Server Uptime
Always-on Ubuntu server. Telegram mobile interface.
3
Governance Tiers
Auto-allow · Notify · Approve via Telegram

Agents
Python + Claude (Haiku for classification, Sonnet for reasoning)
Google Workspace
gws CLI — unified access to Gmail, Calendar, Tasks, Drive
Governance
FastAPI hook server with YAML-configured trust tiers
Interface
Telegram Bot API
Code Execution
Claude Code CLI, dispatched from Telegram
Storage
Obsidian vault (notes, narrations), Google Tasks (day-type queues)
Server
Lenovo X1 Carbon, Ubuntu, systemd services