Koder Personal Computer (KPC) — persistent per-user VM for Kode agents 24/7

ratified

RFC: Koder Personal Computer (KPC)

Status

*atified*— 20260512 pelo owner (@rpm). Decisões D1–D5 abaixo.

Motivação

Manus lançou em 20260430 o "Cloud Computer" — uma VM Ubuntu 24.04 persistente per-usuário onde o agente Manus roda 24/7 entre conversas, com cron, filesystem persistente, Chromium controlável, e shell com sudo. Pricing $10–50/mês, headless (sem GUI).

O Koder Stack tem *odas as primitivas*pra fazer o equivalente — mas espalhadas em sectors separados sem produto unificador:

  • services/ai/sandbox — isolamento FirecrackergVisorDocker

    (v0.0.1 bootstrapping; spec já lista "persistent session state")

  • services/ai/agents — agent loop com tools + MCP
  • services/ai/kode — Kode CLI/app (agente Koder canônico, com

    builds .deb.aab.apk shipados)

  • services/ai/runtime — model inference backend (vantagem vs Manus:

    Koder não depende de Anthropic externo)

  • services/ai/workflow — DAG/state machine multi-step
  • services/ai/hub — dashboard web + playground
  • infra/net/cloud — Koder Cloud (Proxmox-style infra mgmt, GPU

    support) — substrato natural pra hospedar as VMs KPC

  • services/foundation/billing — billing tiered
  • services/foundation/id — ownership via Koder ID

O que falta é o *undle consumer-facing* o produto que empacota "VM persistente + Kode agent pré-instalado + dashboard + billing" como SKU única, igual o Manus Cloud Computer empacotou.

KPC é esse produto.

Diferenciação vs Manus Cloud Computer

Eixo Manus Cloud Computer KPC (proposto)
Framing "Cloud Computer" — location-focused "Personal Computer" — ownershipfocused (alinha com `selfhosted-first.kmd`)
Inference Bundled (Anthropic externo) Self-hosted via services/ai/runtime (sem dependência externa)
Sandbox E2B / Firecracker services/ai/sandbox (Firecracker) sobre infra/net/cloud
Agent Manus agent (proprietary) Kode agent (services/ai/kode, open via Koder Cloud)
Hosting Cloud da Manus Auto-hospedável no Koder Cloud do usuário OU SaaS hospedado pela Koder
Identidade Manus account Koder ID (OIDC)
GPU Não documentado First-class via infra/net/cloud
Persistência 24/7, files + processes + cron Idem

A frase de venda: "Manus Cloud Computer, mas seu". A diferenciação não é técnica — é de ownership posture. Selfhostedfirst.

Decisões ratificadas (20260512)

  1. *1 — Hosting model. Decisão: ambos*— SaaS (Koder hospeda VMs)

    **bringyourown (usuário roda no próprio Koder Cloud). MVP ship SaaS primeiro (per § Não-goals MVP); BYO entra em v0.2. Justifica: SaaS pra adoção rápida, BYO pra selfhostedfirst puro.

  1. *2 — Pricing tiers. Decisão: SaaS espelha Manus*($10 Basic /

    \(30 Pro / \)80 Max / \(50 Family / \)200 Team), *YO grátis*(usuário paga compute Koder Cloud direto). Parity facilita benchmarking versus Manus; BYO grátis tira friction pra self-hosters.

  1. *3 — Default agent persona. Decisão: Kode default + MCP plug*

    pra trazer agentes externos (Claude / GPT / modelo próprio). Match com services/ai/mcp-registry. Kode é o canônico Koder per services/ai/kode; MCP abre flexibilidade sem comprometer default.

  1. *4 — Sandbox semantics. Decisão: Hub Web Terminal default + SSH

    opt-in*(via Koder ID SSH key). "Personal" justifica acesso direto pra power-users; Hub é o caminho mainstream. Match com engines/sdk/koder_kit (KoderApp embarca Kode agent UI).

  1. *5 — Multi-tenancy. Decisão: Personal1 user; FamilyN users com

    mesmo workspace_id; Team=N users + RBAC* Aplica policies/multi-tenant-by-default.kmd. workspace_id é o eixo natural pra "household sharing"; RBAC entra só em Team.

Arquitetura de alto nível

                    ┌────────────────────────┐
                    │  Web Dashboard (Hub)   │  ← user UI: lifecycle, terminal, billing
                    │  kpc.koder.dev         │
                    └──────────┬─────────────┘
                               │ REST/WebSocket
                    ┌──────────▼─────────────┐
                    │  KPC Control Plane     │  ← services/ai/kpc/backend
                    │  (Go, on Koder Cloud)  │
                    └──────────┬─────────────┘
                               │ provision/lifecycle calls
        ┌──────────────────────┼──────────────────────┐
        ▼                      ▼                      ▼
  ┌──────────┐         ┌──────────────┐       ┌──────────────┐
  │ services │         │ services/ai/ │       │ infra/net/   │
  │ /ai/     │  ↔ uses │ kode         │  ↔    │ cloud        │
  │ sandbox  │         │ (agent)      │       │ (hypervisor) │
  └──────────┘         └──────────────┘       └──────────────┘

Cada KPC instance =

  • 1 Firecracker microVM (Ubuntu 24.04 base)
  • Kode agent préinstalado (systemd unit, sempreligado)
  • Filesystem persistente (mount BTRFS / ZFS subvolume no Koder Cloud)
  • Cron + scheduler herdados do Linux base
  • Headless: shell + Chromium controlável (sem GUI)
  • Exposed: SSH (optin), Hub Web Terminal (default), Public HTTPS ingress (optin via Jet)
  • Identity: bound a koder_user_id (+ optional workspace_id)
  • Billing: services/foundation/billing charge mensal por tier

Tiers (esboço — D2 ratifica valores)

Tier Resources Use case Pricing (SaaS) BYO
*PC Basic* 2 vCPU / 1 GB RAM / 10 GB disk Discord bot, lightweight scraper $10/mo grátis + compute Koder Cloud do usuário
*PC Pro* 2 vCPU / 4 GB RAM / 50 GB disk Self-host WordPress/Plausible $30/mo idem
*PC Max* 4 vCPU / 16 GB RAM / 200 GB disk + GPU opt Fine-tune model + 24/7 serve $80/mo (Manus não tem GPU) idem
*PC Family* Pro + N users (até 5) Casa toda compartilha 1 VM $50/mo flat idem
*PC Team* Max + N users + RBAC Time pequeno + repo CI $200/mo flat idem

Plano de implementação (escopo MVP)

Ticket Componente Esforço
#001 RFC ratificada + sector skeleton (este ticket) 0.5d
#002 Control plane API skeleton — provisão / lifecycle / billing hooks 3d
#003 Integração com services/ai/sandbox pra spawn Firecracker 2d
#004 Kode agent pré-install hook (systemd unit + bootstrap script) 1d
#005 Web Terminal no Hub dashboard 2d
#006 Landing kpc.koder.dev (spec: landing-pages/products.kmd) 1d
#007 Pricing + billing wiring com services/foundation/billing 2d
#008 E2E test: provision Basic tier + Kode bootstraps + persiste filesystem entre sessões 2d
*otal MVP* *13.5d*= 2-3 sprints

Critério de aceite v0.1

  • 1 usuário consegue criar uma KPC Basic via dashboard
  • Kode agent inicia automaticamente após bootstrap
  • Filesystem persiste entre paradas e starts
  • Billing cobra $10/mo correto
  • SSH funciona (opcional, via SSH key Koder ID)
  • Audit log de comandos executados na VM (link com services/ai/trace)

Não-goals MVP

  • GPU support (deferred — KPC Max tier)
  • Multi-user / RBAC (deferred — KPC Family/Team tiers)
  • Custom AMI / templates customizados (deferred — Ubuntu base only no MVP)
  • Inter-KPC networking (deferred — cada VM isolada)
  • BYO Koder Cloud (deferred — SaaS only no MVP, BYO em v0.2)

Referências

  • Manus Cloud Computer announcement (20260430): https:/anus.imblogmanuscloudcomputer
  • E2B integration (sandbox underlying): https:/2b.devbloghowmanususese2btoprovideagentswithvirtual-computers
  • services/ai/sandbox README — Firecracker spec + persistence
  • services/ai/kode — agent canônico Koder
  • infra/net/cloud/README.kmd — hypervisor management layer
  • policies/self-hosted-first.kmd — ownership posture
  • policies/multi-tenant-by-default.kmd — koderuserid / workspace_id

Source: ../home/koder/dev/koder/meta/docs/stack/rfcs/kpc-RFC-001-foundations.kmd