LiveUI // ocuclaw
←  Main page
OcuClaw · LiveUI · your agent's interface generator for Even G2

Your agent can build its own interface.

OcuClaw already moved your agent onto a display in front of your eyes with the help of the Even G2 smart glasses, with the Even R1 ring on your finger to drive it. LiveUI is the next step. When text isn't the best answer, the agent draws a small interface on the display instead: a list you can scroll and tap, a checklist, a briefing you can flip through, a card that keeps itself fresh. You answer with the ring or the temple touchpad, and the agent carries on with your choice. Good ones get saved as Templates and Tasks and launched again from the menu.

Even Realities links are affiliate links · OcuClaw may earn a commission from eligible purchases.

01 Through the glasses, ring in hand

Seven moments where an interface beats a paragraph.

Pick a scenario; it plays on its own, or step with ← →. The feed beside it shows what actually travels: what you said, which tool the agent used, the paint, your gesture, and what the agent gets back.

ring
    02 What the agent can draw

    Five surface kinds.

    LiveUI is deliberately not a web page on your face. The agent picks from five surface kinds, fills them with text (and, in one mode, a small 1-bit image), and the engine refuses anything that would overflow the display.

    Fit first, then paint Titles up to 64 characters, bodies up to 1,000, lists up to 20 items, briefings up to 10 pages. Before any of that reaches the display, the engine measures it with the font the G2 draws with. Too long is rejected with a reason the agent can act on (item_too_long, page_too_long). What still runs long is trimmed where you can see it: a row label ends in .., an overlong page shows a +3 lines cue.
    03 Save it once, launch it from the menu

    Two things you can save: a Template and a Task.

    Both live in your Library, both launch with a tap on the glasses. A Template is a saved surface: it just paints. A Task is a saved request: it starts an agent turn that can use tools and draw whatever it needs.

    Template
    A surface you can reopen.
    WhatA saved surface the agent writes itself: layout, text and image slots, what to show while loading, when empty or on error. Nothing in it runs as code. Say "keep this layout" while saving a Task and the surface on the glasses becomes that Task's helper Template.
    Opening itTap the row. It paints. No agent turn, no tools, nothing leaves your devices unless it carries a refresh recipe.
    Stays freshA refresh recipe fetches a URL, asks the model, or reads system stats on a timer, without waking the agent.
    ExampleA CI status card for a repo, refreshing every minute.
    Task
    A request you can re-run.
    WhatThe exact words of your request, which agent runs it, whether it gets a fresh session, and any settings like a location.
    Made byThe agent drafts it. You approve it on the phone. Until then it doesn't appear on the glasses.
    Opening itTap the row. A session starts, your chat switches to it, and the request goes in as the first message.
    VersionsOne approved, one pending draft, one previous. Change the words and it needs approval again; rename it and it doesn't. One-step Undo.
    Example"Auckland weather", with location as a setting you can change on the phone.
    On the glasses
    Hold, LiveUI, tap the row
    The Library is a row in the same OcuClaw menu as your sessions and skills. Tasks say Ready, Needs setup (the agent it names isn't there) or Unavailable (its host isn't connected). A Task shows Starting… until its first surface lands; double-tap backs out and asks the agent to stop. One Task runs at a time.
    On the phone
    Settings → LiveUI
    Review drafts, reorder, show or hide, pick the agent, edit settings, see past Runs, Undo. A Task only ever starts from the glasses. Next, in review: pin a Task, Template or agent straight into the OcuClaw menu, one hold and one tap. The menu holds ten rows and nine ship filled, so the first pin is free.
    04 How the agent knows

    Nothing to set up. The agent already knows how.

    No builder, no settings page, no file to fill in. The agent arrives knowing what fits on the display, what you'd rather hear than see, and to ask before keeping anything. "What's the surf at Lyall Bay? I'd like it every morning" is one conversation: it looks it up, draws it, offers to keep it, and hands you the Approve button.

    It's reminded
    A quiet word, every time
    Every conversation opens with two reminders. If the answer is a handful of choices or one thing worth a glance, put it on the glasses. Before doing a job from scratch, check whether it's already saved.
    two lines of system prompt · always on · both hosts
    It reads the labels
    The rules are on the tools
    The rules are written on the tools themselves. When a list beats a paragraph. When to keep it quiet because your hands are busy. When to offer "Save this as a Task?", and to draft nothing until you say yes.
    render when · chat when · the moment · one move per paint
    It has the manual
    A longer guide for the hard bits
    For a card that refreshes itself, a picture, or a multi-page briefing, it pulls up the full guide: the order to decide things in, worked examples, and the easy mistakes.
    glasses-ui skill · 600 lines · loaded on demand
    fig.03 — it tries it on before you see itdry run · measured reason · fix · paint
    agentrender_glasses_ui  validateOnly: true  list_surface · 6 items
    engineok: false · item_too_long
    item 4 wraps to 2 lines at 372 px; max 1 line (about 34 chars at this size) — shorten it
    agentrender_glasses_ui  list_surface · 6 items · item 4 → "Vendor call · moved to 14:00"
    engineok: true · painted · listening 90 s
    youtap · index 3
    engineresult: selected · "Vendor call · moved to 14:00"
    later[glasses-ui feedback] render REFUSED since your last turn: code=page_too_long. Fix the named code and re-author.

    If a paint was turned down, the agent's next turn opens with a one-line note saying why, so it fixes it instead of trying again. It sees the reason, never what you were reading.

    05 How it all connects

    Anything the agent can do with a tool, it can now show you.

    LiveUI adds no new powers to the agent, just a place to put the result and a way for you to answer without speaking. Web fetch, messages, shell, files, sessions, skills, a calendar tool if your host has one: the agent uses its normal tools, then renders.

    fig.02 — the loopask · tool · fit · paint · gesture · answer
    flowchart TB
      classDef you fill:#0e1622,stroke:#7ad3ff,color:#dbeeff,stroke-width:1px;
      classDef cc fill:#0c1a10,stroke:#4dd58a,color:#dff5e6,stroke-width:1.2px;
      classDef box fill:#1a1408,stroke:#ffb454,color:#ffe7c2,stroke-width:1px;
      classDef dim fill:#0f1310,stroke:#4a5048,color:#cfe8d4,stroke-width:1px;
      V["you ask<br/>voice · text · a Task row"]:::you
      subgraph H[" agent host · OpenClaw or Hermes "]
        direction TB
        AG["agent"]:::cc
        T["its tools<br/>web_fetch · message · shell · files · skills · MCP · your plugins"]:::box
        RG["render_glasses_ui"]:::cc
      end
      subgraph E[" LiveUI engine "]
        direction TB
        FT["fit gate<br/>measured with the G2 font"]:::cc
        ST["stage lease<br/>one session holds the display"]:::cc
      end
      G2["Even G2 display"]:::cc
      R["you answer<br/>ring or touchpad · swipe · tap · double-tap"]:::you
      RC["refresh recipe<br/>http · llm · system stats"]:::dim
      V --> AG
      AG --> T --> AG
      AG --> RG --> FT --> ST --> G2 --> R
      R -->|"selected · back · dismissed"| AG
      RC -.->|"patch · no agent turn"| G2
    
    TOOL 1
    render_glasses_ui
    Paints one surface and waits for your answer. update picks replace, patch (in place, keeps the cursor) or push (a child on top); refresh adds a recipe; validateOnly dry-runs the fit gate.
    TOOL 2
    get_glasses_ui_state
    What's on the display right now, the surface stack, whether a paint is pending, how many taps are parked, and how far the last frame got (sent vs confirmed). Read-only, and never your content; the agent asks before it assumes.
    TOOL 3
    manage_liveui_templates
    save · read · list · list_library · render. Saving validates and hashes a declarative artifact; render paints a saved Template by id with fresh slot values. Templates need no approval; they're just surfaces.
    TOOL 4
    manage_liveui_tasks
    create_draft · update_draft · read · list · find_tasks · save_ui_as_helper. Draft only. Approve, show, reorder and delete don't exist in this tool; they're buttons on your phone.

    Same four tools, same teaching text, on OpenClaw and Hermes. On OpenClaw they're hidden from Even AI quick-action sessions, so a stray "hey" can't paint anything.

    Approvals
    Tools still ask
    A Task grants no extra permissions. On OpenClaw a tool that needs a yes raises the usual Approval prompt on the glasses mid-run. Hermes agents approve their own tools by policy. OpenClawHermes · n/a
    Live data
    Owner allow-lists each domain
    HTTP refreshes stay off until the owner turns them on and lists the web domains they may reach; LAN and private addresses are refused regardless. Model-backed refreshes have their own switch, also off by default. OpenClawHermes