Skip to content

Swapping parts and theming

Bryan Speelman edited this page Sep 3, 2026 · 2 revisions

Swapping parts, and theming

Every part can be changed. Most of it needn't be, and most of it won't be.

part default alternatives
terminal ghostty kitty, wezterm — none of which bothy installs
multiplexer zellij or turn it off, and run the agent in this terminal
file browser yazi or turn it off
editor vim nano, helix
agent claude-code any command you care to name
theme dracula any palette you write down
bothy config set slots.editor helix

Most people change the editor and nothing else. The others change everything, once, and then also nothing else.

Three layouts come with bothy, and are called profiles because everything has to be called something. cockpit is the default: files on top, agent and shell beneath — the screenshot, and the reason any of this exists. editor puts an editor, an agent and a shell side by side, for people who would rather type than watch. minimal is an agent and a shell and nothing else, for small screens and for being somewhere else over SSH.

bothy config set profile minimal

Profiles are short TOML files. Write your own and put it in ~/.config/bothy/profiles/.

Theming

bothy ships one palette, Dracula, which has outlasted most of the software it was first drawn for, and colours every tool from the same eleven values, including a vim colour scheme it writes for you so that you do not have to learn how. If you would prefer another, write it:

bothy theme example > ~/.config/bothy/my-palette.toml
$EDITOR ~/.config/bothy/my-palette.toml
bothy config set theme.palette ~/.config/bothy/my-palette.toml

This is also how a palette you have paid for gets in. bothy contains no colours except its own, so anything you licensed stays on your machine, and bothy stays the colour it arrived in. A test checks this, because good intentions do not.

Using your own tool config instead

If you already have a Yazi setup you like, keep it. Most people who have one do.

# ~/.config/bothy/config.toml
passthrough = ["browser"]

bothy then points Yazi at your config rather than its own, and does not read yours on the way past. Name the slot rather than what is in it — "yazi" is understood too, and stops meaning anything the day you put something else in the browser slot. To adjust bothy's config rather than replace it, put a file in ~/.config/bothy/overrides/<tool>/<file>. bothy adds it to the end of its own, so yours wins, which is the correct ending to most arguments between a tool and the person who has to use it.


Why the slots are shaped this way, and why only the multiplexer needs Go: ADR-017 and ADR-019. Adding one is docs/adding-a-provider.md.

Clone this wiki locally