Core concepts

LYBO Harness — one agent, many places

Run each task on the device first, and hand it to your desktop, a Windows 365 / WorkSpaces desktop or a cloud runtime only when it needs to — with a small, redacted memory capsule and one trace.

The Edge Runtime is the agent on one machine. The LYBO Harness is the framework around it that lets the same agent work across every place you have: the device in your hand first, then — only when a task needs it — your own desktop, a hosted desktop (Windows 365, Azure Virtual Desktop, AWS WorkSpaces, a GCP VM) or a LYBO cloud runtime. The runtime on each node, the harness joining them and the plane behind them together make up LYBO OS.

LYBO Harness: a task and your memory enter the harness on the device, which works out what the task needs, where it should run, writes an envelope, packs a memory capsule, runs it on this device, your desktop, a cloud desktop or a cloud runtime, brings lessons home as proposals and keeps one stitched trace.

How a task moves

  1. 1

    What does it need?

    Keyword rules always run on the device. When the device has a scorer, a quick typed decision (decide, tier local) adds what the rules missed — desktop app, web, how much work, how sensitive. It can add a need or raise sensitivity, never lower it.

  2. 2

    Where should it run?

    Privacy first (a local_only device never hands off; health, money and credentials stay home; personal data only goes to your own nodes), then capability (desktop apps, browser, GPU, context size), then an edge-first score. Every node that wasn't chosen is listed with the reason.

  3. 3

    Write it down

    The task becomes a durable envelope on the device. If the only capable node is offline it parks and runs on the next run_pending — the phone can hand off a long job and sleep.

  4. 4

    Pack the memory

    A handover capsule carries only memories you let follow you, only the kinds that node is granted, with personal details removed (the task text too). It expires and is digest-signed.

  5. 5

    Run it

    Every node speaks the same LYBO protocol the SDKs use — in process, or over HTTPS to lybo serve --http.

  6. 6

    Bring lessons home

    What the node noticed comes back as proposals waiting for your approval. The node keeps nothing: the capsule is borrowed for one session.

  7. 7

    One trace

    The device's placement, the node's run (with its own audit-chain hash) and the memory return are stitched into one tamper-evident record.

Nodes

KindTypicalGets by default
devicePhone, tablet, laptop — always tried firsteverything (it's already here)
desktopYour PC or Macmemories you shared + the thread summary
cloud_desktopWindows 365 · Azure Virtual Desktop · AWS WorkSpaces · GCP VMsame as desktop
cloud_runtimeLYBO runtime on Cloud Run, AKS or ECSprocedures and corrections only

Try it

Three nodes in one process
lybo harness demo
Plan or run against a real node
# on the node (your PC, a Cloud PC, a cloud runtime)
LYBO_SERVE_TOKEN=… lybo serve --http --bind 0.0.0.0 --port 8790

# on the device / your laptop
lybo harness plan "Update the forecast in Excel" --node pc=desktop@http://192.168.1.20:8790
LYBO_NODE_TOKEN=… lybo harness run "Research our competitors in depth" \
  --node cloud=cloud@https://lybo.example.run.app
Embed it
let mut h = Harness::new(device_rt.clone(), NodeCard::device("phone", "android", 4096), store);
h.add_node(Box::new(InProcessNode::new(NodeCard::own_desktop("pc", "windows"), pc_rt)));
h.add_node(Box::new(ProtocolNode::new(NodeCard::cloud_runtime("cloud", "azure"), transport)));

let env = h.dispatch("Update the sales forecast in Excel", None)?;  // runs now
let id  = h.submit("Monitor competitor prices overnight", None)?;  // later
h.run_pending()?;
Before changing node cards or policies, run a placement check (eval::check_placement) — "this task should land there" cases, checked without running anything — and eval::run_on_nodes to compare nodes on the same eval suite.