Yao Xiang
← All projects

Personal OS Agent Runtime · Solo Developer · Apr 2026 – Pres.

Aiko — Personal OS Agent

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

Under the hood The brain can move between local Ollama, MiniMax through OpenRouter, Kimi through Moonshot, and a CLI-agent bench. A single persisted identity sits above the model, while 88 manifest-backed skills provide the hands.

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, regardless of which model is active.

Aiko, her character art Aiko's app icon

At a glance · June 2026

Callable Skills (DAG)
88
Memory Tiers
5
Limbic Dimensions
6
Brain Routes
4
Retargeted Motion Clips
79

October 2026

What changed since June.

Context Engineering

Cut prompt tokens by 69% (109KB to 34KB per turn) using schema virtualization, dynamic manifest projection, and state compression.

5-Tier Memory

Scaled to 11,800+ facts combining episodic hindsight, SQLite FTS5 keyword indexing, and dense embeddings fused via Reciprocal Rank Fusion (RRF).

Autonomous Harness

142 discrete skills executed through deterministic state machines; universal gateway orchestrating Claude Code, OpenAI Codex, Gemini CLI, and local models with automatic failover.

Local Multi-Modal Interface

GPU-accelerated local voice (Qwen3-TTS, Whisper), 3D VRM embodiment in three.js, and offline manga indexing across 245,000+ pages.

The Composition

Four bodies. One mothership.

Aiko is not a single binary. A TypeScript daemon holds the identity; a React Native phone app, Telegram bridge, and desktop stage expose different ways to reach the same system. The body changes. The conversation and tools do not.

Core

aiko-core daemon

The brain. A Linux background process that can hot-swap Ollama, OpenRouter / MiniMax, Moonshot / Kimi, and CLI-agent providers without changing Aiko's identity. It owns memory, tools, proactive work, and event delivery.

  • TypeScript
  • Node
  • SQLite WAL
  • Moonshot
  • OpenRouter

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 Native
  • Expo
  • Tailscale
  • WebSocket
  • MMKV

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 API
  • TOTP
  • Auth Gate
  • Persistent Session

Presence

Desktop stage

A movable VRM stage driven by Aiko's own stage directions. It connects live chat, Qwen3-TTS voice sync, swappable skins, and 79 retargeted motion clips into a visible PC presence.

  • Three.js
  • VRM
  • Qwen3-TTS
  • Kimodo Motion
  • X11
Aiko mobile app — intro screen
aiko-app, the phone surface

Every Turn

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.

  1. 01 / Fast

    Appraisal

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

  2. 02 / Stateful

    Limbic Update

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

  3. 03 / LLM

    Brain Turn

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

  4. 04 / Agentic

    Tool Loop

    Structured tool calls are validated against skill manifests, executed, and fed back into the same turn.

  5. 05 / Cost

    Response Appraisal

    Energy spent. Annoyance updated. Trust adjusted.

  6. 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.

Memory Stack

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.

  1. 01

    Identity

    Lifetime · Permanent

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

  2. 02

    Relationship

    Lifetime · Long-Term

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

  3. 03

    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.

  4. 04

    Working

    Lifetime · Session

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

  5. 05

    World State

    Lifetime · Live

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

Emotional Substrate

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.

Skill Graph

88 hands. One system.

The active registry has grown from 54 to 88 manifest-backed skills. Foundations such as file, shell, and process access compose upward into library work, avatar control, diagnostics, media pipelines, and multi-agent pilots. The nodes below are a selected map of the current registry, not a frozen catalogue.

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.

  1. repo → manifest
  2. script → skill
  3. skill → graph node
  4. graph node → callable by Aiko
  5. skills → composable workflows

FoundationsPrimitives

  • 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

SystemControl & 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

Mind + MediaRecall & Creation

  • 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

GrowthRecent Active Work

  • pilot
  • diagnose
  • self-diagnose
  • app-launch
  • monitor-control
  • power-usage
  • library-engine
  • library-acquire
  • library-operate
  • library-sync-plan
  • avatar
  • avatar-control
  • avatar-overlay
  • avatar-pilot
  • screen-record
  • audio-cleaning
  • comic-analyzer
  • read-manhwa
  • record-inner-audio
  • usb-vault-backup
  • media-validate
  • grok-image-gen
  • grok-video-gen

Build Factory

From three lanes to a pilot bench.

Aiko's first long-running build system used three Gemini lanes: Architect, Executor, and Auditor. The current runner is broader: it can hand bounded work to Codex, Claude, Antigravity / Gemini, or Cursor, while Aiko stays the front door and keeps each friend or pilot session separate from her own memory.

v1 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)

v1 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)

v1 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)
  1. $build
  2. BRIEFING
  3. CODING
  4. AUDITING
  5. ALIGNING
  6. REVIEW
  7. DONE

Live System

The first checkpoint.

This first recording captures the mobile surface as it existed at the end of April. It stays here as the original checkpoint, with the newer growth video below it.

Aiko v1 · Mobile Surface Walk-Through

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

  • 9:16 portrait
  • 09:22

Build Log · April to June 2026

Not a redesign. A growth record.

The project started as a private mobile interface to a Linux agent. Each checkpoint added another kind of continuity: a place to read, a body on the desktop, more capable hands, and model-independent identity.

  1. A phone surface for one local agent

    The first version connected an Expo / React Native app to the Linux daemon over Tailscale, with Telegram as a second way to reach the same conversation, tools, and memory.

    • React Native
    • WebSocket
    • Tailscale
  2. The Library grew beyond a tab

    Source browsing, chapter downloads, comic and EPUB reading, resume state, narration, voice packs, and a navigable pixel room turned the app into a lived-in space rather than a chat client with extra screens.

    • Suwayomi
    • Offline reading
    • Voice packs
    • Pixel room
  3. From a sprite to a desktop presence

    The Agent Forge build connected Aiko's stage directions to a movable VRM stage, 79 retargeted motion clips, swappable skins, a read-only live chat tap, and Qwen3-TTS voice synchronization.

    • Three.js
    • VRM
    • Kimodo motion
    • Qwen3-TTS
  4. PC and phone started sharing the same moment

    The embodied experiment moved from isolated demos toward a live shared session: desktop presence, phone control, model and skin switching, and the motion pipeline shown as one evolving system.

    • PC + phone
    • Live session
    • Skins
    • Motion research
  5. Identity separated from the brain underneath

    Aiko now has 88 active skills and can route between local Ollama, OpenRouter / MiniMax, Moonshot / Kimi, and CLI agents. Provider tags and isolated friend sessions make the system easier to inspect without fragmenting the one identity the user talks to.

    • 88 skills
    • Kimi
    • CLI pilots
    • Provider attribution

Aiko, then and becoming.

A 93-second build diary: the pixel Library room, the first humanoid / VRM experiments, one live PC-and-phone session, swappable model skins, and the motion research that is shaping the next body.

  • 9:16 portrait
  • 01:33
  • H.264 + AAC