Build Themes and Add-ons for AIVory Code
AIVory Code is open by design. A theme changes the whole screen, and it is only data: no code runs. An add-on is any program that talks to the daemon API: a status light, a bot, a key on your desk, a new client. You do not need permission to build either one.
- Themes are folders of TOML and JSON files: tokens, screen layouts, strings and assets
- Add-ons use the daemon API: JSON-RPC 2.0 over a local pipe, a WebSocket or iroh
- Your work stays yours: publish it in your own GitHub repo, with your own license
- The project is MIT: read the code, change it, and send pull requests
Make a Theme
A theme can turn the War room into anything that shows agents and their state: a city, a factory floor, a cockpit, a board game, your company brand, or a calm high-contrast board. The validator checks the files, so a broken theme cannot break the app.
Three commands take you from an idea to a package:
aivoryd theme init my-theme # a starter folder, copied from Minimal
aivoryd theme dev my-theme # check the folder on each save
aivoryd theme pack my-theme # make my-theme-0.1.0.aivory-theme.zip
Some theme ideas that nobody has built yet:
| Idea | What changes |
|---|---|
| A board game | Codebases become fields, agents become pieces, a question is your turn |
| A factory | Each agent is a machine. Blocked agents stop the line |
| An aquarium | Agents swim. The ones that need you come to the glass |
| Your brand | Your colors, fonts and logo, for the screen in the team room |
| High contrast | Large type and strong colors for long days or a wall screen |
Start with the tutorial, and keep the reference open:
- Make your own theme: a step-by-step tutorial
- Theme reference: every file, token, component and binding
- Publish and install themes: GitHub releases, registries and updates
Build an Add-on
The daemon aivoryd knows the state of every session. Any program can ask it, follow the changes, and answer for you. The desktop app and the phone app use the same API, so an add-on can do what they do.
Try it in two terminals, with demo data:
aivoryd serve --demo --endpoint try
aivoryd call warroom/snapshot --endpoint try
Some add-on ideas:
| Idea | Methods to start with |
|---|---|
| A smart light that turns red when an agent needs you | warroom/subscribe, warroom/delta |
| A desk key that approves the oldest question | inbox/list, inbox/answer |
| A chat bot that posts blocked agents to your team channel | warroom/subscribe, sessions/get |
| A terminal client for SSH sessions | warroom/snapshot, session/send, session/answer |
| A status bar counter for your editor | warroom/subscribe |
| A task importer from your issue tracker | tasks/create, tasks/start |
The Daemon API page lists the transports, the pairing for remote clients, all methods and the error codes. The JSON Schema of the protocol is in the repository: aivory-protocol.schema.json.
Share Your Work
- Put your theme or add-on in a public GitHub repo, with a README, a screenshot and a license file.
- For a theme, publish a release. Then anyone can install it with
aivoryd theme add github:<you>/<repo>or from Settings > Display. - Tell us about it in a GitHub issue, so other people can find it.
Use only original art, or art with a free license, and put the license file next to it.
Change AIVory Code Itself
Missing a component in the theme catalog, a binding, or an API method? The desktop app, the daemon and the protocol are MIT licensed. Open an issue to discuss the idea, or send a pull request. Read CONTRIBUTING.md first.