Small apps that snap in beside your work.
Offsider turns a folder of HTML into a floating Mac window. Your AI agent opens it, hands it data and hears every click as JSON. Its tools run in your own terminal, once you say yes.
macOS 26 or later · arm64
- Log in works
- Checkout flow
- Empty states
How it goes together
Six steps from an empty folder to a panel your agent can drive. Step 3 works right here on the page.
-
1xreview/$ offsider init reviewreview/ panel.json index.html
Start a panel
A panel is a folder.
index.htmlis the app;panel.jsonsets the window’s size, style and tools. No framework, no build step.offsider init review -
1xwindow$ offsider open review
- Log in works
- Checkout flow
- Empty states
Open it beside the work
The panel floats in a native window next to your editor. The command that opened it keeps running and owns the window: stop it, and the panel closes.
offsider open review --input '{"title":"Review","items":["Log in works","Checkout flow","Empty states"]}' -
1xpanel 1xevent
Try it: tick a box. Demo, running in this page.
- {"type":"opened","panel":"review"}
Click. Your agent hears it.
Everything that happens in the panel comes out of
offsider openon stdout, one JSON object a line. Your agent runs it in the background and reads along: ticks, messages, errors, and the moment the window closes. -
1xnew data$ offsider send review '{…}'
- Log in works
- Run the checks
- Confirm the result
Send it new data
From any terminal, hand the open panel fresh input. The app decides what to do with it: replace everything, or merge.
offsider send review '{"items":["Run the checks","Confirm the result"]}' -
1xtool
- PR 377
- PR 380
Give it a tool
Declare commands in
panel.json. Before the panel loads, Offsider shows every command, its executable and working directory: allow them all, or cancel. Tools then run in the terminal that opened the panel, with your directory,PATHand logins, sogh,gitandbin/railsjust work."tools": { "prs": { "command": ["./tools/prs"] } } -
0xwindows$ offsider close review{"type":"closed","panel":"review"}
Put it away
Use the close button, run
offsider close, or stop the command. The opener printsclosedand exits cleanly, so your agent knows the job is done.offsider close review
Your agent reads the same instructions
offsider docs
Prints the whole panel reference in the terminal, so an agent can learn the manifest and JavaScript API without leaving the session.
An agent skill, ready to copy
The repository ships skills/offsider/SKILL.md. Copy its folder into your agent’s
skill directory and it knows how to open, update and close panels.
Data, never orders
Panel events and tool results are data. They never widen what your agent is allowed to do, and every tool needs your approval first.
That’s the whole build.
A folder, a window, a stream of JSON. Everything else is your HTML.
macOS 26 or later · arm64