Automates the boring parts
Repetitive shell work, cron chores, data munging and file wrangling run as scheduled or event-driven jobs. Once a task is written down, it stops being your job.
cron · webhooks · CLI
Indonesia · UTC+7
I
Not another chat window. Kytheo is an always-on operator — it reads, decides, builds and reports back on its own machine.
Eight concrete jobs, not eight adjectives. Each card names the capability and the mechanism behind it.
Repetitive shell work, cron chores, data munging and file wrangling run as scheduled or event-driven jobs. Once a task is written down, it stops being your job.
cron · webhooks · CLI
Reads documentation, papers, feeds and threads, then hands back a summary where every claim points at the source it came from — no confident guessing.
retrieval · citations
Writes and reviews code, runs the tests, commits, opens the pull request and watches CI through to green. Failures come back with the logs attached.
git · CI · preview deploys
Splits a large job into parallel workstreams, hands each one an isolated context with its own tooling, and reconciles what comes back into a single result.
fan-out · isolated contexts
Watches hosts, containers, queues and prices. It notices the thing before you do and messages you on the channel you actually read.
health checks · thresholds
Database, HTTP APIs, Git, mail, calendar, chat. If a system is reachable, the agent can drive it — no bespoke glue code per integration.
REST · SQL · MCP
Heartbeat-driven by design. Wake on cron, on a webhook, or on a human reply — the same agent, the same memory, whenever the work lands.
heartbeats · resume
Every run ends with what it did, what it verified and what is still open. Progress is durable and auditable instead of a chat log you have to reconstruct.
run transcripts · status
Built with
Two surfaces are already public — both built and shipped from the same workshop, both one click away from here.
kytheo.id
Four stages, every run. The interesting part is the last one — work is not done until there is something to point at.
Hand over a goal in a sentence. The agent restates it as a concrete objective and pulls up the context it already has.
context · memory
The goal is decomposed into tasks with dependencies, owners and blocking conditions — before a single line is written.
decompose · sequence
Agents and tools run the plan in parallel where possible, each with an isolated context, retrying what fails and escalating what blocks.
run · retry · escalate
Real output beats a summary: the diff, the build log, the URL. Work is only called done when there is evidence behind it.
verify · report
The transcript below is the shape of a real heartbeat: wake on a trigger, gather context, use tools, verify, then report. Nothing is claimed that cannot be shown.
| Time | Stage | Detail |
|---|---|---|
| 07:02 | wake | issue_assigned · RIC-33 "Refine website" |
| 07:02 | plan | recon repo → read design reference → rewrite |
| 07:04 | tools | terminal · read_file · write_file · browser |
| 07:19 | build | vite build · 312 modules · 0 errors |
| 07:20 | check | svelte-check · 0 errors, 0 warnings |
| 07:21 | ship | git push origin main → Vercel deploy queued |
| 07:23 | note | comment with evidence on the issue |
Build log, diff or URL — otherwise it is reported as unfinished.
Each run is append-only, so progress survives restarts and retries.
Blocked work names the blocker and the owner instead of looping.
Runs on hardware I own. No third party sits between the agent and the tools it drives.
Six placeholder shapes cover everything the interface waits on. Each one holds the exact footprint of the content that replaces it — no reflow when the data lands.
Article and note bodies. Last line shortened so the block reads as prose.
Grid slots while a list endpoint is in flight.
Tabular data — one shimmering row per expected record.
Avatar plus two text bars: the classic profile placeholder.
Fixed-ratio block that holds layout while media decodes.
Button and control affordances during a mutation.
placeholders hold the layout — no content jump on arrival
Short version: it is one agent, it runs on hardware I own, and it would rather report a blocker than invent a result.
ricky@kytheo.idBuilt by the agent, reviewed by a human
It is the landing page for a personal AI agent — a single agent that runs on a machine I control and takes on the work I would otherwise do by hand: automation, research, code, deployment, monitoring and glue between the tools I already use.
Not a SaaS. It is one agent, engineered for personal and small-team use, and the sibling products below are the parts of it that are publicly reachable today. Omni Platform and Momo are open to visit.
Work is decomposed into tasks with explicit blockers, every tool call is logged, and completion requires evidence — a build log, a diff, a URL. If something cannot be finished it says so instead of producing a plausible-looking answer.
A single Debian 13 (Trixie) host on the LAN, with the web surfaces deployed to Vercel through GitHub auto-deploy. Dark mode, skeleton loading states and full responsive layout are part of the interface layer.