Appearance

Three in the box, ten more a command away.

Every panel below is drawn from a real theme file — the same JSON kobe loads at boot, not a screenshot someone re-tinted by hand. Pick one of the three bundled ones in Settings → General → Theme, install any of the rest with one command, or write your own — a theme is one JSON file, and there is no registry to get into.

1.0 · Bundled

Ships with kobe.

kobe keeps its bundled set deliberately small — open Settings with ctrl+, and pick one, nothing to install. Each preview paints the sidebar, the selected task, and a diff with that theme's own slots, so what you see is the contrast you'll actually get. Every theme also defines a light mode; the previews show dark.

claudedefault

Warm graphite and terracotta — kobe's own identity, matched to the Claude Code palette.

PROJECTS
kobe
TASKS
fix/auth-retry
feat/theme-picker
chore/bump-deps
fix/auth-retry● running
+ retry on 401 once
- throw immediately
return session
! 2 files unstaged
3 tabs
conductormono

Near-black and near-white. No hue competes with your diff — the one to reach for on a projector.

PROJECTS
kobe
TASKS
fix/auth-retry
feat/theme-picker
chore/bump-deps
fix/auth-retry● running
+ retry on 401 once
- throw immediately
return session
! 2 files unstaged
3 tabs
tokyonightcool

Indigo night with a coral accent. Pairs with the tokyonight setup you probably already run in nvim.

PROJECTS
kobe
TASKS
fix/auth-retry
feat/theme-picker
chore/bump-deps
fix/auth-retry● running
+ retry on 401 once
- throw immediately
return session
! 2 files unstaged
3 tabs

2.0 · Downloadable

Ten more, one command away.

These live here as plain JSON instead of inside the binary — which is all a theme ever is. Copy the command, run it, restart kobe. Several of them shipped bundled in earlier versions; nothing changed about them except where they're stored.

draculaclassic

The one everybody already has muscle memory for. Highest-saturation set here.

PROJECTS
kobe
TASKS
fix/auth-retry
feat/theme-picker
chore/bump-deps
fix/auth-retry● running
+ retry on 401 once
- throw immediately
return session
! 2 files unstaged
3 tabs
nordcool

Arctic blue-grey, low contrast by design. The calmest option for long sessions.

PROJECTS
kobe
TASKS
fix/auth-retry
feat/theme-picker
chore/bump-deps
fix/auth-retry● running
+ retry on 401 once
- throw immediately
return session
! 2 files unstaged
3 tabs
opencodewarm dark

Neutral charcoal with a sand accent — familiar if you came from opencode.

PROJECTS
kobe
TASKS
fix/auth-retry
feat/theme-picker
chore/bump-deps
fix/auth-retry● running
+ retry on 401 once
- throw immediately
return session
! 2 files unstaged
3 tabs
osaka-jadehigh contrast

Deep jade ground with a mint signal color. The most opinionated set — and the loudest running indicator.

PROJECTS
kobe
TASKS
fix/auth-retry
feat/theme-picker
chore/bump-deps
fix/auth-retry● running
+ retry on 401 once
- throw immediately
return session
! 2 files unstaged
3 tabs
gruvboxretro

PROJECTS
kobe
TASKS
fix/auth-retry
feat/theme-picker
chore/bump-deps
fix/auth-retry● running
+ retry on 401 once
- throw immediately
return session
! 2 files unstaged
3 tabs
catppuccinpastel

PROJECTS
kobe
TASKS
fix/auth-retry
feat/theme-picker
chore/bump-deps
fix/auth-retry● running
+ retry on 401 once
- throw immediately
return session
! 2 files unstaged
3 tabs
rose-pinemuted

PROJECTS
kobe
TASKS
fix/auth-retry
feat/theme-picker
chore/bump-deps
fix/auth-retry● running
+ retry on 401 once
- throw immediately
return session
! 2 files unstaged
3 tabs
everforestforest

PROJECTS
kobe
TASKS
fix/auth-retry
feat/theme-picker
chore/bump-deps
fix/auth-retry● running
+ retry on 401 once
- throw immediately
return session
! 2 files unstaged
3 tabs
kanagawaukiyo-e

PROJECTS
kobe
TASKS
fix/auth-retry
feat/theme-picker
chore/bump-deps
fix/auth-retry● running
+ retry on 401 once
- throw immediately
return session
! 2 files unstaged
3 tabs
solarizedclassic

PROJECTS
kobe
TASKS
fix/auth-retry
feat/theme-picker
chore/bump-deps
fix/auth-retry● running
+ retry on 401 once
- throw immediately
return session
! 2 files unstaged
3 tabs

3.0 · Write one

A theme is one JSON file.

Drop any *.json into ~/.kobe/themes/ and it appears in the picker at next boot. Name it after a bundled theme and yours wins. You don't have to fill every slot — missing ones fall through (borderActivebordertext), so a dozen lines is already a usable theme.

// ~/.kobe/themes/darkside.json
{
  "$schema": "https://raw.githubusercontent.com/sma1lboy/kobe/main/packages/kobe/src/tui/context/theme/theme.schema.json",
  "defs": { "brand": "#cc785c" },
  "theme": {
    "background": "#141413",
    "text": "#eae7df",
    "primary": "brand",
    "accent": { "dark": "#cc785c", "light": "#c96442" }
  }
}

defs is an optional named palette a slot can reference by name. A slot value is a hex string, a defs key, or a { dark, light } pair — and when you use the pair form, both sides are required. The $schema line is what gives you autocomplete in your editor.

4.0 · Publish

Share a URL. That's the whole registry.

There is no submission queue and no manifest to write. Installation reads a raw file over HTTPS, so anything you can link to is installable — a repo, a gist, your own host.

Commit the JSON to a public repo or gist.

Hit Raw on GitHub and copy the URL — it looks like raw.githubusercontent.com/<you>/<repo>/main/<theme>.json.

Tell people to run kobe theme add <raw-url>. It validates the JSON before writing and refuses to clobber an existing theme without --force.

Tag the repo kobe-theme on GitHub so it's findable, and open a PR against this page to get it listed with a preview.