Guides

Cloud Canvas & companion packages

Build, test, sign and ship packs from the browser — no local toolchain.

The Canvas in [Edge Studio](/studio) is fully cloud-based: designing, validation, the eval gate, Try-it simulation, publisher keygen, pack signing and OTA publishing all run on LyboAI Cloud. Nothing to install — no Rust, no CLI. (Connecting a self-hosted runtime remains an optional override via the *runtime* button.)

Projects & workspaces

Each project is one companion package for one use case — the canvas draft (workflows, skill, knowledge, evals) plus any attached n8n automations — grouped under a workspace and saved to your account (Firestore, owner-only). Create one in *Studio → Projects & Workspaces*, seeded from a blank canvas or one of the demo-app templates (beauty salon, tradie, restaurant, education, accountant, retail, real estate). Changes on the Canvas sync automatically.

The node palette

GroupNodes
InputAsk user · Voice → text (STT, audio.transcribe) · Photo → text (OCR) · Camera capture
AI · on-device modelClassify · Extract · Summarise — these run on the device model
RAG · vector storeRetrieve (RAG) · Answer from docs · pack documents (Knowledge tab)
AgentsDelegate → cloud · Tag @agent (A2A) · Trigger n8n flow (n8n.trigger)
OutputSpeak (TTS, speech.tts) · Send email · Export summary · Progress · Confirm
Tools / FlowWeb search, records, notes, reminders, custom tool_call · Set data, Checkpoint, End
Integration nodes are pre-configured tool_call steps — every tool id shown is one your host app registers on the runtime, so everything on the palette actually executes. A fresh canvas pre-loads the Voice FAQ starter (STT → RAG → answer → TTS) so you start from a working example.

Mixing n8n automations into a pack

A companion package can carry both on-device intents and n8n-type workflows. Attach them in the Canvas' *Automations (n8n)* tab — from the built-in n8n Library (community templates stored in Firestore), the AI Builder (natural language → n8n JSON), or a JSON import. They ship inside the pack as content.automations, deployable to your n8n instance, and the canvas bridges to them with the Trigger n8n flow node.

Seed the n8n Library (server env with FIREBASE_ADMIN_*)
node scripts/import-n8n-templates.mjs --from-kit          # local ai-n8n-kit corpus
node scripts/import-n8n-templates.mjs --from-n8n-api 200  # top up from n8n.io (attribution kept)

AI Builder

Describe the workflow in plain English and the AI drafts it — as an Edge pack draft loaded straight onto the canvas (validated, with a self-repair pass) or as an importable n8n workflow JSON. Uses the site's LLM config (ANTHROPIC_API_KEY, with an OpenAI-compatible fallback).

Prove, sign, run

  1. 1

    Validate + Evals

    Structural checks, then your eval cases run on the cloud simulator — the gate must be green before signing.

  2. 2

    Register & try

    The Try-it runner executes your draft on the cloud simulator with a step-by-step trace.

  3. 3

    Sign & download

    Compose → keygen (save the secret once, in a vault) → sign. No licence = dev channel (watermarked); a lybo_live_ licence stamps a production pack.

  4. 4

    Run it

    Cloud simulator (zero install) · your own Expo app + .lybopack on an emulator or phone · the planned LyboAI Core playground app (Google Play) that installs packs directly.

    npm i @lyboai/runtime expo-lyboai
    npx expo run:android

Observability, prompts & sandbox runtimes

Observability (Canvas → Govern): every Try-it and eval run on the cloud simulator is recorded with its full step trace — inputs, transitions taken, outputs, final result — viewable and exportable as JSON, and saved with the project. Traces from packs running on devices stay on the device by design (observability: local_only in the manifest). Prompts (Canvas → Build): author the pack's prompt templates and test them against the live model (the site's LLM config) with {{variables}} filled in — real prompt engineering before anything ships.

Sandbox runtime — to exercise the *real* Rust runtime (real on-device models, real tool execution, its own trace inspector) without touching a phone, run it yourself in a container or VM and point the Canvas at it (*runtime* button → self-hosted):

Your own sandbox runtime (any Docker host / VM)
# inside the cloned runtime repo
cargo build -p lybo-cli --release
./target/release/lybo serve --http --port 4242 --token <token>
# expose it (Cloud Run / Fly / your VM), set LYBO_STUDIO_CORS_ORIGIN to the site,
# then Canvas → runtime → Self-hosted → paste URL + token
A hosted one-click sandbox (ephemeral runtime instances with a downloadable on-device model, spun up per session) is on the roadmap — the Canvas' runtime switcher is already the integration point. New to this? Studio has an end-to-end guided course: Studio → Learn — first package walks you from a blank project to a signed pack running on a device, with progress saved to your account.