Skip to main content

Electron · React · TypeScript

One shell, for all your little tools

A pluggable desktop app template: toggle by config, add a tool with one command. No architecture knowledge needed — read the docs and write your page.

terminal — feature:new
$ pnpm feature:new json-tools
已生成 packages/feature-json-tools
  自动接入:开关 + 注册表 + 依赖
$ pnpm dev
# 侧边栏出现你的工具,点进去开始写

Designed for collecting tools

Every tool is an independent module. Add or hide one by editing a single line of config.

Pluggable features

Each feature owns its page, IPC, and i18n. One command scaffolds it and wires it into the host — no registration logic to touch.

$ pnpm feature:new my-tool
# → packages/feature-my-tool/

Config as the switch

Edit one line in enabledFeatures to show or hide a tool. No commands.

Bilingual

Built-in i18n, runtime switch between zh-CN / en-US, copy split by namespace.

Theme · Logs · Tests

Dark mode, unified structured logging, Vitest + Playwright out of the box.

Add a tool in three steps

01

Create

One command scaffolds the feature package and wires it into the host.

pnpm feature:new json-tools
02

Run

Start the app and your new tool appears in the sidebar.

pnpm dev
03

Build

Edit a single file (renderer.tsx) and replace the sample with your logic.

packages/…/src/renderer.tsx

A solid foundation out of the box

i18n

Bilingual, namespaced copy, drop in more languages anytime.

Unified logging

One logger across main and renderer, with a built-in log viewer.

Theming

Light / dark / system, driven by Tailwind v4 variables.

Testing

Vitest unit tests + Playwright E2E, run automatically in CI.

One toolchain

Biome handles both lint and format — no config traps.

One-command release

electron-builder three-platform packaging + GitHub Release + auto-update.

Start building your first tool

Up and running in three minutes, then keep adding.

Get Started