Appearance
Light and dark, nineteen colour themes, fifteen Surfaces, UI text size, and the first-run setup
Everything about how Foxl looks lives in one place: Settings > Appearance. The choices apply to the desktop app, app.foxl.ai and the phone apps, and they are per device.
Light, dark, or system
Foxl follows your system setting by default. Pin it to Light or Dark to stop it following.
Every option below composes with this switch rather than replacing it - each palette and each Surface has its own light and dark rendering.
Colour themes
Nineteen palettes, starting with Foxl (the original look) and eighteen others:
| Emerald | Monokai | Solarized |
| Amber | Dracula | Nord |
| Rose Pine | Catppuccin | Tokyo Night |
| Gruvbox | Ice | AMOLED |
| Kiro | IntelliJ | High Contrast |
| Everforest | AMOLED Midnight | AMOLED Grey Calm |
Each is a full palette - the canvas, the cards, the text and the accent - not an accent colour on top of the default. Every tile in the picker paints that theme's real colours, so you are choosing by what it looks like rather than by name.
All 396 text-on-surface pairings across the set were measured to clear the WCAG AA contrast floor. Not choosing a theme leaves Foxl looking exactly as it always has - Foxl sits first in the picker and is the default.
The palette names are deliberately not translated. Dracula, Nord, Monokai and the rest are proper nouns and are known by those names everywhere, so a theme someone recommends to you is recognisable whatever language your app is in. High Contrast is the exception, because it describes what it does rather than naming a thing.
Surfaces
A Surface puts a soft vertical gradient on the app's chrome - the sidebar, the outer canvas and the window titlebar. The content area is never tinted.
Default is flat, as Foxl has always been, and is what you get if you never open this row. Beyond it there are fourteen gradients in three groups, so the picker stays legible instead of being one row of colour soup:
| Group | What is in it | Presets |
|---|---|---|
| Washes | Low-saturation two-stop washes - the character the feature shipped with. | Default, Dawn, Mist, Sand, Sage |
| Colors | One hue each, for when you want a colour rather than a mood. | Blue, Violet, Pink, Coral, Crimson, Green |
| Spectrum | Ramps with more than two stops. | Rainbow, Trans, Sunset, Aurora |
Each is shown as a real swatch rather than a name, and each tile paints its own preset in both light and dark mode - so picking Dawn does not make the Mist tile look like Dawn.
Text stays exactly as legible as it is on the flat surface. A gradient can only be darker than the surface it replaces, so the sidebar's labels are re-derived to hold their contrast over the deepest point of each ramp, measured in both themes rather than eyeballed.
Text size, motion and the cursor
| Setting | What it does |
|---|---|
| UI text size | Scales every size expressed in rem, so text and the controls around it grow together. Six steps from 0.85x to 1.3x; the range is clamped so Settings itself can never become unreadable. |
| Reduce motion | Collapses transitions and animations. Your system setting is already respected on its own; this is in addition to it. |
| Use pointer cursors | Shows a hand cursor over buttons and menu items, the way a web page does. Off follows the macOS convention. |
| Channel list | How densely the Channels list packs its rows. |
Which key sends a message
Settings > Appearance > Send messages with:
| Choice | Enter | Cmd+Enter |
|---|---|---|
| Enter (the default, and what Foxl has always done) | Sends. Shift+Enter is a new line. | Sends. |
| Cmd+Enter | A plain new line. | Sends. |
Pick the second if you write long prompts. Cmd+Enter sends in both modes, and the choice is remembered per device - the right answer depends on the keyboard in front of you.
On iPhone and iPad, text also follows Settings > Display & Brightness > Text Size - see Mobile Apps.
The first-run setup
A new install opens on a short setup drawn over the live app:
- How it looks - light, dark or system, and one of the palettes. The palette applies as you tap it, so you are choosing against the real app rather than a preview.
- About you (optional) - what you do and how technical an answer you like.
- A short tour, one card at a time, each pointing at the control it is about: Schedules, Agents, Chat, and on the desktop app the Model & provider pane, because a fresh desktop cannot chat until a provider is connected. app.foxl.ai gets the first three.
Nothing is required. Continue works with nothing selected, and Skip all or Escape leaves at any point. An install you have already used is never shown it.
To see it again, use the Show setup again button in Settings > Appearance.
Below it, Reset onboarding forgets that setup was completed on this device and returns you to the main screen, where setup starts over. It is a different action from Show setup again: it is also the way back to Foxl Code's setup page, and it exists on the phone apps too.
The setup screens are a desktop app and browser thing. The iPhone and Android apps go straight from sign-in into the product, because everything the setup offers is one tap away under Settings on a screen you chose to open.
The status HUD in the titlebar
Clicking the HUD opens a panel with tokens in and out, how much of the prompt was cached, estimated cost, context used, which MCP servers are connected and which tools have been called. That stays the default.
A switch in the corner of that panel moves those readouts into the bar itself, as one segmented pill that updates live while an agent works - so watching a long run no longer means holding a dropdown open.
- The status dot at its left folds the readouts away, and brings them back when the window gets tight.
- The chevron beside them opens the full panel exactly as before, so nothing becomes unreachable in either shape.
- CPU, memory and disk are deliberately not there: those describe the machine rather than the run.
The This chat panel also carries a Delegated line when the chat spawned sub-agents - their tokens and how many workers produced them - while the context bar keeps to the chat's own fill. The token and cost figures are computed the same way whichever model answered, so GPT-5.x, Grok and ChatGPT chats no longer double-count cached tokens, and any wrong totals Foxl had already stored are repaired the first time you open the app.
Search owns the titlebar centre by default; the HUD is the alternative, under Settings > General. Turning it off never hides the connection status, which sits beside the notification bell either way.
Hover and highlight
On a pointer device, hovering a sidebar row - a nav row, a conversation or a recording - swells its rounded chip very slightly as the highlight fills in, so the row under the cursor reads as the one you are about to click. It runs on the app's standard motion timing, so Reduce motion collapses it. Touch screens are left out: there is no hover to end on a phone, so a tapped row would stay enlarged.
Related
- Download - the translucent window material on macOS 26 and later.
- The desktop companion - the animal that can walk around your screen, in Settings > Pet.
- Settings > Shortcuts - a searchable list of every command with its chord: click a row to record a new one, conflicts are marked on the rows involved, and each row (or all of them) can be reset. Rows that belong to the editor, the terminal and the file tree are fixed and offer no recorder. Labels follow the platform (Cmd on a Mac, Ctrl elsewhere).
- Settings > Tab bar (web and phone apps only) - which destinations sit in the bottom bar and in what order; see Mobile Apps.