Chan manual
Extensions
Add your own applications as sandboxed tabs and integrate them through the host bridge and cs.
Your tools as tabs
Extensions add applications to Chan as sandboxed tabs. An extension is a separate program serving a local web app, written in any language. Chan starts it, proxies its traffic through the existing connection, and adds an entry under Apps in the command launcher.
The application runs on the machine serving Chan, including a devserver. Its tab works over the same ssh or gateway connection as the rest of the workspace.
Extensions to try
- chan-ext-doom: play DOOM inside a Chan tab.
- chan-ext-mobile-chat: chat with and steer your agents from a phone.
- chan-ext-strudel: live-code music with Strudel in a Chan tab, with patterns and settings kept on the devserver.
Each repository includes source code and installation instructions.
Configure an extension
Follow the extension's installation instructions. Its declaration lives at <chan-home>/extensions/<id>.toml, normally under ~/.chan/extensions/, and specifies the name, command, arguments, and host capabilities. Restart the serving Chan process after installing or changing a declaration, then open the extension from Apps.
Declarations run local programs as your user. The tab is sandboxed from Chan's browser state; the extension process has the same machine access as other programs you run.
Build your own
Serve a loopback web application, publish Chan's startup handshake, and connect the frontend through the host bridge. The bridge carries declared commands, keyboard shortcuts, and optional session context or presentation controls. A backend can drive Chan through cs, using the same commands available in your terminal.
The extension authoring guide covers the handshake, sandbox, lifecycle, and working examples. The configuration reference documents declaration fields.