← Insider Cat: code, architecture, and sources

The Cat, from your side

Behavior scenarios · updated 20 September 2026

Insider Cat is a saved OpenHands agent inside Agent Canvas, with a Cat-shaped page and optional Voice. The current interface has one Talk control and a compact companion while navigating elsewhere. Codex Voice hands requests directly to that saved Cat; the separate OpenAI API path uses a browser tool bridge. Both depend on the Cat’s actual configured tools. Normal terminal access and OpenHands skills can use the backend API; bespoke coordination tools are optional. Physical iPad audio checks remain outstanding.

01 · Find the companion

“I want to talk to the Cat.”

Canvas App: install Insider Cat on the selected Agent Server, enable it in Customize → Apps, and open Projects. Choose a saved Cat, or select New Cat and send the first typed message using a configured OpenHands profile and workspace. The Cat conversation is saved on that backend. The avatar rests until something needs it; installation never starts the microphone.

Current controls: Talk starts Voice explicitly after a backend availability check. Before selecting a Cat, Talk remains visible with a disabled state and explanation. New Cat is a separate action. The compact controls outside Projects retain the same call; they do not silently follow the regular conversation you are viewing.

02 · Get oriented

“Which conversations need me?”

Canvas App: the board reads conversations from its owning backend, with Refresh, Load more, and workspace filtering. Approval requests, errors, paused work, and ended runs have distinct labels. Loaded coverage is visible; a workspace filter applies to the conversations loaded so far.

OpenHands agent: use the normal terminal tool and enabled API skill with the actual backend URL and authentication source. Prefer the count endpoint for a total; fetch every relevant list/search page for details, explain incomplete coverage, and show when the data was refreshed. A bare fixture with only reasoning and finish tools needs its normal configuration restored; a new custom inventory tool is not required. Separate a real approval or question from an error or paused run. Each answer includes the conversation title and a direct link. Project filters narrow the same source of work rather than creating another task database.

03 · Continue the right work

“Continue this, using the approach we just discussed.”

Canvas App: select a worker to attach its full ID and backend as context for a typed Cat request. The request continues the Cat controller, preserving its discussion. Selecting a worker does not itself send that worker a message. The Cat can act through its normal terminal/API workflow when its backend context and permissions support the request.

Recommended: bind “this” to the full ID and backend of the currently selected worker. Send a follow-up to that worker, with relevant context from the Cat conversation. Keep its previous history. If two targets match or backend context has changed, resolve the target before acting. A title chip makes the choice visible.

04 · Keep a draft safe

“Add that explanation to my prompt.”

Canvas App: selecting a card leaves the prompt draft intact. A target label keeps selection separate from the message. Sending is an explicit action, and a failed or uncertain submission retains the draft instead of claiming success.

Further work: allow the shell companion to help edit the draft while making “added to draft” distinct from “sent.” Preserve unsent work across the intended navigation and reload boundaries; do not treat a server-saved conversation as proof an unsent draft was saved.

05 · Hand off a task

“Start a separate agent to investigate that failure.”

Canvas App: the controller has an explicit identity and a durable conversation. Its skill explains how to distinguish controller and workers and how to report accepted work. The Cat can use the OpenHands API skill and terminal to create a worker through the normal backend API. The App does not supply a separate dispatcher or conflict manager, and the request remains subject to existing permissions and approval policy.

Recommended: create a worker on the intended project/backend, retain its full ID, and show its link in the Cat conversation. Acknowledging dispatch means work was accepted, not completed. Keep the long result in the conversation and speak the important findings.

06 · Correct and interrupt

“Stop. I meant the other project.”

Current Voice: Mute and End call affect the audio connection, not accepted OpenHands work. Stop speaking is available on the OpenAI API transport; the Codex path hides that unsupported control. A typed worker selection is explicit, but the Codex session starts from saved Cat context and does not receive that board selection.

Recommended: “stop” during a spoken reply stops speech first. Preserve useful worker execution unless the person asks to cancel it. Before applying the corrected target, check whether the original action has already started; never silently execute the same request twice. Show Mute, End call, and Stop task as different actions.

07 · Leave and return

“I’ll come back later. Keep the result.”

Canvas App: submitted messages and results live in the backend’s controller conversation. Returning can recover that record through controller discovery and its conversation link. Leaving Projects unmounts the page; it does not erase the backend conversation or cancel its work.

Recommended: persist the Cat conversation, worker links, confirmed results, and pending actions on the correct backend. Reconnect voice to that work without replaying commands. Keep spoken excerpts distinct from full results and distinguish the Cat’s memory from SmolPaws’ other channels.

08 · Follow progress

“Tell me when it finishes.”

Canvas App: the page can read progress while open, but it does not install a durable scheduler or promise notifications after closing Canvas.

Recommended: use an available status/wait mechanism during the current interaction. For notification after the interaction ends, create a durable follow-up through the configured Automation service. Speak on a result, failure, or real need for input; do not repeat unchanged status. Say plainly when that capability is unavailable.

What makes the experience trustworthy

The person should always be able to tell who they are speaking with, which work will change, whether the microphone is on, and where the result was saved. Personality comes through concise, curious, candid speech. Trust comes from correct targets and visible records.

The two implemented Voice transports · The Insider skill and its activation boundary · Implementation priorities.