PERSONAL R&D · APR 2026 — PRESENT

AIKO — Personal OS Agent

Aiko is the agent layer I am building over my own machine: a local daemon, mobile app, Telegram bridge, tool runtime, and memory system wired into one loop. It gives me one interface for files, shell, Git, Docker, calendar, web, voice, image generation, and long-running build work.

Under the hood — local Ollama by default; OpenRouter (Minimax-M2.5) when I want speed. Skills include FLUX.2 Klein image-gen on ComfyUI, local Whisper STT, ElevenLabs TTS, shell/git/docker plumbing, file ops, calendar, web fetch, diary, and system control. It also runs a 3-lane Gemini CLI software factory (architect / executor / auditor) for background builds.
System shape Daemon, memory, tool runtime, phone surface, Telegram bridge, and factory orchestration are one loop. The mothership layer is the Skill Graph below: the part that turns scattered builds into callable capability.
Aiko — character portrait
A · I · K · O
54
Callable Skills (DAG)
5
Memory Tiers
6
Limbic Dimensions
3
Factory Agents
29
Spawned Builds

Three surfaces.
One mothership.

Aiko is not a single binary. It is a coordinated system of three pieces: a TypeScript daemon that holds the identity, a React Native phone app that reaches Aiko over a Tailscale WireGuard tunnel, and a Telegram bridge for casual contact and on-the-go control. Everything writes to one unified event stream.

⌬ Core

aiko-core daemon

The brain. A Linux background process running on Minimax via OpenRouter. Holds the appraisal engine, limbic state machine, memory store, skill executor, proactive engine, and the FSM that drives the project factory.

TypeScriptNodeSQLite WALFTS5OpenRouter
📱 Mobile

aiko-app

Android (Expo / React Native) client. Reaches the daemon's 100.x.y.z:8080 Tailscale IP and opens a long-lived WebSocket — zero public internet, zero cloud, encrypted end-to-end by WireGuard.

React NativeExpoTailscaleWebSocketMMKV
Aiko mobile app — intro screen
✉ Bridge

Telegram bridge

A persistent Telegram bot for casual contact and on-the-go control. Destructive actions are gated behind a TOTP challenge; the same shared logger streams ACK events back into the unified pipeline.

Telegram Bot APITOTPAuth GatePersistent Session

The conscious pipeline.

Every inbound message — Telegram or mobile — runs through the same six-stage pipeline. Two of those stages are fast pattern matchers that never touch the LLM. Two background ticks run in parallel: a 60-second decay loop and a 3 AM distiller that compresses yesterday's diary into long-term facts.

01 / FAST

Appraisal

Pattern matcher reads the user message and emits a limbic delta — no LLM call.

02 / STATEFUL

Limbic Update

Delta applied to persisted state. Mood overlay derived for the system prompt.

03 / LLM

Brain Turn

Dynamic 8-section system prompt assembled per turn; reply streamed back.

04 / AGENTIC

Tool Loop

Inline markers [EXEC:] [OPEN:] [READ:] parsed, executed, fed back.

05 / COST

Response Appraisal

Energy spent. Annoyance partially cathartically released. Trust adjusted.

06 / PERSIST

Episodic Write

Turn appended to today's diary. Event mirrored to mobile + dashboard.

60s

Background tick — limbic decay applied, queued proactive messages delivered to whichever surface is connected.

3 AM

Nightly distillation — yesterday's diary read, compressed into a summary, relationship facts extracted and persisted to facts.json.

Five tiers, five lifetimes.

Memory in Aiko is not one bucket — it is a layered store, each tier with its own lifetime, write cadence, and access pattern. Identity is permanent and read every session; relationship facts are extracted nightly; episodic diaries grow append-only; working memory is per-session; world-state is live.

Identity

Lifetime · Permanent

Who Aiko is, who the user is, the relationship contract. persona.md, style doctrine, hard rules. Loaded every session.

Relationship

Lifetime · Long-Term

Preferences, habits, opinions, triggers. JSON key-value store extracted nightly by the distiller from raw diary text.

Episodic

Lifetime · Append-Only

Daily diary files at episodic/YYYY/MM/DD.md. Every turn appended. Summarized and compressed at 3 AM the following night.

Working

Lifetime · Session

Last 20 turns. What was just said. Cleared when the daemon restarts; reseeded from the diary on warm boot.

World State

Lifetime · Live

Machine state, time, environment, connected surfaces, currently-running skill jobs. JSON, rewritten on every tick.

The limbic layer.

Six dimensions. Each one persisted across restarts, mutated by the appraisal engine on every message, decayed on a 60-second tick, and overlaid onto the system prompt as a mood directive. Baseline-locking means that if affection and trust stay high for enough consecutive turns, the resting floor permanently rises.

AFFECTION
−100 … +100
Decay starts 48 h · 1 pt/hr
TRUST
−100 … +100
Decay starts 72 h · 0.5 pt/hr
ANNOYANCE
−100 … +100
Decay starts 30 m · 10 pt/hr
PROTECTIVENESS
−100 … +100
Decay starts 24 h · 2 pt/hr
CURIOSITY
−100 … +100
Decay starts 15 m · 15 pt/hr
ENERGY
0 … 100
Recovers from 2 h · 5 pt/hr
Proactive engine. Aiko can queue messages of its own. Four tiers — silent (A), queued (B), immediate push (C), and check-in (D) — are gated by current annoyance and focus mode. The 60-second tick decides which queued messages fire, and which surface they fire on. Late-night softness, post-silence check-ins, and focus-mode lockouts are tactical shifts derived from this layer alone.

54 hands. One DAG.

Skills are arranged as a directed graph, not a flat list. Tier-0 primitives must exist before higher tiers can compose them. Every skill ships a manifest validated against the constitutional SKILL_LAW.md (20+ required fields). The project-build skill at Tier 3 wraps the entire three-agent factory below.

Mothership Definition

Where abandoned projects become working limbs.

This is the mothership: not a folder of old repos, but a core that can wrap them, validate them, route them, and let Aiko use them. A hackathon bot, a CLI utility, a media script, a model pipeline, or a weekend automation stops being a dead project once it ships as a manifest-backed skill. The graph records its dependencies, inputs, outputs, permissions, safety rules, and tier placement, so Aiko can compose it with everything else instead of treating it as another isolated codebase.

repo -> manifest script -> skill skill -> graph node graph node -> callable by Aiko project-build -> factory wrapper
TIER 0Primitives
shell-exec file-read file-write file-find file-move file-delete dir-list process-list network-status-get system-info-get power-set service-set log-read totp-verify
TIER 1System & State
git-run docker-run docker-manage deps-install dependency-set package-set health-check job-schedule task-schedule task-control calendar-set sandbox-run
TIER 2Memory & Media
memory-save memory-search memory-decay diary-write knowledge-fetch text-extract text-summarize generate-image upscale-image passport-photo transcribe-audio speech-say deliver-media reaction-gif get-media-info watch-video weather-get url-fetch web-content-fetch web-act web-drive consult-gemmy cascade-bridge code-analyze problem-analyze zoltraak-scan self-bucket-list
TIER 3Autonomy
⌬ project-build → 3-agent factory

The software factory.

When Aiko is asked to build something, it does not write the code itself — it spawns three Gemini CLI sub-agents that operate as a finite-state-machine. The Architect plans and talks to me; the Executor writes code; the Auditor verifies and gatekeeps. Every project gets its own war room. All 29 historical projects are consolidated into a cross-project SQLite with full-text search over 42,847 events.

⌬ Lane · Planner

Architect

The only agent that talks to me. Source code is read-only. Owns the canonical task plan (CSOT.md). Drives BRIEFING → ALIGNING → REVIEW phases.

Phase: BRIEFING / ALIGNING / REVIEW Time budget: Untimed Source role: blueprints.ts (~12 KB)
⚙ Lane · Implementer

Executor

Pure code implementer. Never plans, never talks to me. Full CRUD on source + tests. Stages clean commits in the [AIKO:TASK] format. Never touches node_modules, .aiko/, or Aiko.md.

Phase: CODING Time budget: 15 min wall clock Source role: blueprints.ts (~3.7 KB)
⚖ Lane · Gatekeeper

Auditor

Verification gatekeeper. Read-only on source code, full write on tests. Never rewrites production code. Routes the FSM forward, back, or to BLOCKED.

Phase: AUDITING Time budget: 5 min wall clock Source role: blueprints.ts (~4.6 KB)
$build BRIEFING CODING AUDITING ALIGNING REVIEW DONE

Factory run — demo reel coming soon

BRIEFING → CODING → AUDITING → DONE, recorded end-to-end

See Aiko in motion.

Aiko is not a public product. The case study above is the public face; the live system is private. Demo is available on request — a short walk-through of the mobile surface, a real proactive message firing, a factory run from $build to delivery, and the live structured event stream straight from the daemon.

▶ Aiko v1 · Mobile Surface Walk-Through

Recorded 29 April 2026 — portrait capture from the React Native phone app over Tailscale.

v1 concluded · 29 Apr 2026 — for the latest version, email me if interested

Welcome.

Holo