A calm status page for Komari and
Nezha.
Thoughtful software. For everyday life.
English · 简体中文
Give this to Claude Code, Codex or any coding agent that can reach your server:
Install the ZOOL theme on my <Komari|Nezha> panel at https://<host>.
Follow https://raw.githubusercontent.com/foru17/zool-theme/main/skills/zool-install/SKILL.md:
detect the panel, download the latest release and verify SHA256SUMS, back up first,
install, verify, and tell me the rollback command.
The skill asks before anything destructive and never deletes the theme directory. To keep it
around, copy skills/zool-install into ~/.claude/skills/.
Download zool-komari-v1.0.0.zip or zool-nezha-v1.0.0.zip from
Releases.
Komari — Admin panel → Settings → Theme → upload the zip → select ZOOL. Command line and upgrades: docs/install-komari.md.
Nezha — unzip zool-dist/ next to your compose file and mount it over the template the
dashboard uses:
services:
dashboard:
volumes:
- ./data:/dashboard/data
- ./zool-dist:/dashboard/user-dist:ro # the template selected in Settings → ThemeThen docker compose up -d. Options and rollback: docs/install-nezha.md.
- A fleet at a glance. Nodes online, bandwidth, traffic, what needs attention and monthly cost — no averages that mean nothing.
- Readings with a shape. CPU, memory and disk in green, amber and red cells that sweep as they change; up and down side by side; square, brand-coloured system icons.
- Cards or a ledger. Four cards across a laptop, a dense ledger for long lists, flat or grouped at a press, filters by group and region you can share as a link.
- Honest states. Waiting is not offline. A node that drops keeps its last readings and says when it last reported; one that never reported says so.
- Node pages. Live metrics, history and latency charts, system, network and billing detail.
- Everywhere. Light, dark or system; English, 简体中文, 繁體中文, 日本語; built for phones.
- Paper and ink. Warm paper, ink text, hairline rules; colour only where a number needs it.
- Nothing louder than the data. No gradients, glow or motion for its own sake.
- Private by default. Fonts, flags and icons ship with the theme. It talks only to your own panel.
- Small and maintained. Hand-drawn SVG instead of a chart library, about 125 KB of gzipped JavaScript, tested against real Komari and Nezha fleets.
| Key | Default | Description |
|---|---|---|
defaultAppearance |
system |
system, light or dark; used until a visitor picks one |
defaultView |
ledger |
ledger or cards |
defaultDensity |
comfortable |
Ledger row height: comfortable or compact |
defaultLanguage |
auto |
auto, en, zh-CN, zh-TW or ja |
siteTitle |
(empty) | Overrides the site name |
showOverview |
true |
Overview band on the home page |
showCost |
true |
Monthly cost, summed per currency and normalised to 30 days |
showGroups |
true |
Offer the group picker |
defaultGrouped |
false |
Default state of the visitor's "Show by group" button |
showRegions |
true |
Region filter |
showBilling |
true |
Price and expiry on cards |
showOffline |
true |
List offline nodes |
hiddenNodes |
[] |
Nodes hidden from the home page, search and the node switcher |
hideAdminEntry |
false |
Hide the sign-in button |
footerNote |
(empty) | One line of text in the footer |
On Komari these live in the admin panel. On Nezha, edit zool-dist/config.js; no rebuild needed.
Node.js 22+ and pnpm.
pnpm install
pnpm dev:demo # synthetic fleet, every node state included
pnpm dev # Komari: proxies /api to ZOOL_UPSTREAM
pnpm dev:nezha # Nezha: proxies /api to ZOOL_UPSTREAM
pnpm check # types, tests, i18n
pnpm build && pnpm check:size && pnpm packageArchitecture and adding a backend: docs/architecture.md. Instrument rules: docs/instruments.md.
Built on the public APIs of Komari and Nezha. Typeface Inter (SIL OFL), UI icons Lucide (ISC), flags flag-icons (MIT), system icons Simple Icons (CC0; marks belong to their owners, tile colours from Simple Icons metadata, the Windows shape is drawn for this project).
MIT. The ZOOL name and logo are trademarks of ZOOL LLC.
A theme by @luoleiorg

