Skip to content

02 / Spatial AI workspace

FLYSPACELive preview

See the sources behind an answer.

A spatial workspace for thinking with AI over live data, with APIs on the fly. Drop Data blocks that pull real numbers, wire them into AI personas, and ask a question that is answered only from what the wires actually carry. Formerly OmniOS.

A limited public preview is live at omni.syberlabs.io: the canvas, the Shell Store and every keyless public data source run in your browser. AI answers and keyed sources are switched off there; the full app runs on your own machine with your own model keys.

Live preview · omni.syberlabs.ioYour canvas stays in your browser. Public data blocks are live; AI answers and keyed sources are disabled in the preview. Open

Demo film

The morning: one question, cited sources, a crystal, a second persona

Recorded on 2026-10-05 from a local production build of OmniOS@e95ae73, driven through the “morning” journey its own acceptance test specifies. The data in the blocks and the two persona answers are that test’s fixed fixtures, not live markets or a live model; the canvas, wires, provenance chips and lineage are the real interface. Silent, 30 seconds.

Why

Why a canvas.

When you ask an AI about the world, its context is invisible: you cannot see which numbers it was given, which it was not, and whether a source it cites carried anything at all. FLYSPACE makes the context physical. A block is a live view of one source. A wire says this feeds that. A persona is a mind whose entire context is what its incoming wires carry.

So the question “what does this thing actually know?” has a literal answer you can point at on screen. A source that carried no data is never cited, and an answer records which runs fed it, however many personas deep.

Use

What you can do in the preview

Everything below the first three steps needs a model key, so it runs locally, not on the public preview.

  1. 01 / Shell

    Open a pre-wired shell

    The Shell Store spawns saved canvases. The Investor shell arrives with Polymarket, CoinGecko, World Bank and Hacker News already wired into an Analyst, and the Analyst into a Strategist.

  2. 02 / Blocks

    Pull real numbers

    Add blocks for prediction markets, crypto prices, economic series, research and news. Every built-in source is public and needs no key.

  3. 03 / Wires

    Say what feeds what

    Draw a wire from a block to a persona. Ports are typed; a wire that does not fit is refused with a sentence naming both ports, and the graph is left unchanged.

  4. 04 / Ask

    Locally, with your key

    Ask a persona a question. The answer cites only the sources its wires carried, and the inference ledger records provider, model, latency and which runs fed the turn.

  5. 05 / Talk

    Spoken canvas control

    Hold Talk and say a command from a fixed grammar: “wire hacker news to the analyst”, “delete this”, “undo”. Speech only proposes; the interaction engine decides, previews a delete, and refuses ambiguous names.

Inspect

Which sources reach an answer.

The Investor shell, stepped through by rule: a feed fails, a feed goes stale, and the record says exactly which sources each answer used. Open any node to see who owns it.

This map needs JavaScript. It steps through the Investor shell: four sources wired into an Analyst, a failed and a stale feed excluded from the answer, and the lineage from the Strategist back to the two sources that reached it.

Design

How it is built

  • Blocks, wires, personas

    A block is a live view of one source; a wire is an admitted edge, not a line drawn first; a persona answers from its inbound active wires and cannot choose its own inputs.

  • Typed ports

    Declared ports are enforced when a wire is created. Compatible schemas connect; a mismatch is refused unless a text projection is chosen. Blocks with no ports stay connectable as untyped.

  • The inference ledger

    Optional PostgreSQL records every model execution and the exact sources that fed it. When one persona feeds another, the ledger records which run was consumed, so a cascade stays walkable after the upstream blocks refetch. The canvas itself stays in IndexedDB and works with no server.

  • Capability compiler

    An OpenAPI document, MCP tool schemas or a structured description compile into a capability manifest. One function registers it; write and destructive capabilities stay pending until approved; a manifest never grants itself authority; execution carries idempotency keys and reports an uncertain effect rather than guessing.

  • Keys stay server-side

    Provider keys are read from the server environment and never sent to the browser. CI builds with canary values for every secret and fails if any reaches the client bundle.

  • Deployment posture

    The full app is local-first and single-user. The public preview sets a demo flag that disables paid generation, keyed sources and ledger reads at the route level; the deployment checklist is published with the code.

Evidence

  • Deployed

    The limited public preview has run at omni.syberlabs.io since 2026-10-03, deployed by hand from a recorded commit on Cloudflare Workers.

  • Tested

    Unit tests across the stores, services and capability engine, and six Playwright specs including the “morning” golden path: shell → question → cited sources → crystal → second persona.

  • Implemented

    The capability compiler and the server-side broker are implemented and hardened against fixtures and stubbed transports.

  • Not yet

    No third-party API or MCP server has been measured in production use. Speech is tested with typed transcripts; there is no live microphone measurement. The hosted identity boundary exists in code with no provisioned issuer.

Reflects SyberLabs/Flyspace@e95ae73 · verified 2026-10-05. Each state is earned by code, a named test, a measurement under stated conditions, or a deployment; none is promoted by wording.

Facts

Status
Live preview
Stage
Local-first, single-user app with a limited public preview
Formerly
OmniOS, renamed in October 2026; the preview address, omni.syberlabs.io, keeps the old name for now
Technology
TypeScript, Next.js, React, Zustand, IndexedDB, PostgreSQL (optional), Tailwind CSS, Vitest, Playwright, Cloudflare Workers
AI models
Anthropic Claude, Google Gemini, and local models through Ollama; optional Kev persona suggestions
Data sources
Polymarket, CoinGecko, Hacker News, World Bank, OpenAlex, Metaculus, NewsAPI (keyed)
License
No license file yet; the repository is public

Other projects

All work