Omniscio documentation
Browse all documentation
  1. Getting Started19
  2. Sessions & Agents133
  3. Inbox & Notifications68
  4. Projects & Tasks98
  5. Automation & Scheduling74
  6. Knowledge & Memory28
  7. AI Features71
  8. Integrations112
  9. Plugins & Marketplace40
  10. Cloud & Teams51
  11. Settings & Customization76
  12. Account & Billing28
  13. Troubleshooting77
  14. CLI & API Reference28
  15. Legal & Policies5
  16. Uncategorised17

Look bundles and ready-made looks

A **look** is one file. It holds everything you customized — your stylesheet, where the panels sit, your own mods, your titlebar widgets and your theme — and loading it on another computer puts all of that back. One **Undo** returns the whole look you had before, and six **ready-made looks** ship in the same format so you can start from something instead of a blank page.

What it is for

Customization used to live in four separate places, so a look could never leave the computer it was made on. A look bundle fixes that: it is a file you can save, mail to yourself, keep in a folder, and open on the machine you actually work on. It also gives a new install a small shelf of good looks to try — no marketplace, no account, no sharing service.

Where to find it

  • Settings → Appearance → Theme & Visual → Looks. Three buttons — Export my look, Import a look, Undo last look — and the six ready-made looks underneath. Undo is greyed out until a look has been applied.
  • The file itself. A .look.json file wherever you saved it. It is plain text; you can read it, keep it in a dotfiles repository, or hand it to another person.
  • Your agent. The four calls below on Omniscio's local control server, with the change attributed to the agent's session.

The file

{
  "kind": "omniscio-look",
  "version": 1,
  "name": "My look",
  "createdAt": "2026-10-17T05:00:00.000Z",
  "parts": {
    "css": "[data-ui-anchor=\"sidebar-projects-list\"] { --panel-bg: #14213d; }",
    "layout": { "panes": { "file-explorer": { "side": "right" } }, "hidden": ["view-breadcrumb"], "sizes": {}, "settings": { "projectsSidebarWidth": 240 } },
    "mods": { "mods": [ /* your own mods */ ], "active": { "sessions": "user-…" } },
    "widgets": [ { "id": "count", "face": { "name": "waiting", "spec": { "shape": "stat", "value": "3" } } } ],
    "theme": { "mode": "dark", "skin": "linear" }
  }
}

Every part is optional; a look carries what was there when you saved it. A part is always read and written through the thing that owns it, so a look can never drift from what the app itself saves.

Part What it carries The rule it must pass on the way in
css The stylesheet the app is actually applying The custom-CSS cleaner: no @import, no remote url(), no CSS escapes, at most 512 KB
layout The panel record plus the hide switches and widths the panels keep in settings The layout's own record validation: real panes only, protected regions refused, 32 KB cap
mods Your own mods and which one is active on which list The mod rules: data only, no code, no URLs, within the block/rule caps
widgets Up to six titlebar widgets a script pushed The widget schema the PUT /widgets/:id call uses
theme The theme you had chosen — its light/dark mode and its visual theme The theme setting's own schema; a custom theme this computer does not have refuses the look

How it behaves

One file is the whole look. Export writes all five parts. Import applies all of it or none of it: if one part would be refused, the look is refused with a plain sentence and nothing changes. That is what makes the undo trustworthy — it always points at a look that was really there.

One undo. Before a look is applied, the app records exactly what your look was: your stylesheet byte for byte, your saved layout, your mod list, your live widgets, your theme. Undo last look puts that back and clears itself, so it is one step back, per contract. It never re-checks your old stylesheet on the way back — it is your own file and it goes back exactly as it was.

Nothing private rides along. A look never contains a token, a key, a file or folder path, a message or a session title. Only the five parts above. An export that would contain something path-shaped is refused and says which part.

It never flips a switch. Applying a look does not turn custom CSS on, does not switch the panel layout back on, does not leave Safe Mode, and does not change whether titlebar widgets are on. Those are yours; a look only changes the content they show.

Safe Mode wins. While Safe Mode or Mods Safe Mode is on, applying a look is refused — one plain sentence, nothing written.

What a re-apply replaces. The stylesheet, the whole panel layout and the widget set are replaced by what the look carries. Your mods are replaced by id, so applying the same file twice does not double them, and a mod the look does not carry stays installed but no longer active.

The widgets. Titlebar widgets live in memory and clear when the app restarts — that is the script-widget rule, so a stale indicator can never outlive its script. A look is the only way they survive a move to another computer: importing re-pushes them.

Ready-made looks

Six looks ship with the app, each a bundle in the same format, applied through the same validation and undone by the same Undo.

Look What it does
Compact Tighter session rows, so more fits on screen.
High contrast White text, black surfaces and a brighter accent.
Focus Hides the location trail, roomier rows, bigger message-box text.
Midnight Deep navy surfaces with a cool blue accent.
Paper Warm light surfaces with serif text.
Neon The Neon theme with a magenta accent and a soft glow.

A ready-made look writes your stylesheet, so any CSS of your own is replaced — Undo brings it back.

For agents

Everything is on the local control server at http://127.0.0.1:19519, with a bearer token and your session id in X-AMC-Source-Session-Id, so the change is attributed to you. The agent's own scoped token is accepted on every call below. Writes count against the same budget as the rest of the app (about four changing calls a minute), so send a whole look in one call.

Call What it does
GET /look The current look, in the file format above, plus whether an undo is waiting.
PUT /look with {"bundle": { … }} Applies a whole look — all of it or none. 200 on success, 422 with the plain reason on a refusal.
POST /look/undo Puts the previous look back. 422 when there is nothing to undo.
GET /look/presets The six ready-made looks: id, name, description, parts.
POST /look/presets/:id Applies one ready-made look (compact, high-contrast, focus, midnight, paper, neon).

To carry a look between computers with an agent: read GET /look, write the JSON to a file, then on the other machine read the file and send it back with PUT /look.

Limits worth knowing before you send one: 1 MB for the whole file, 512 KB for the stylesheet, 50 mods, six widgets, and the layout's own 32 KB record cap. A custom:<id> theme must already exist on the machine receiving the look — send the theme file through the themes import first.

Getting unstuck

Situation The way out
A ready-made look is not for you Undo last look, or Reset layout plus Ctrl+Alt+Shift+C for the stylesheet.
An import was refused Nothing changed. Read the sentence under the card — it names the part and why.
A look names a theme you do not have Import that theme file first (Settings → Appearance → Custom themes), then apply the look.
You applied a look while Safe Mode was on It was refused; nothing was written. Turn Safe Mode off and apply it again.

Related

Last verified 2026-10-17