Skip to content

WiIIiamWei/DesKit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DesKit Logo

DesKit

DesKit is an extensible desktop productivity toolbox built with Electron, React, and electron-vite.

It provides a secure desktop shell for command launching, lightweight utilities, floating interactions, and plugin-driven workflows.

Features

  • Electron desktop app with isolated main, preload, and renderer processes
  • Typed IPC boundary through contextBridge
  • Custom app:// protocol and strict CSP baseline
  • React renderer with Tailwind CSS and shadcn/ui
  • English and Chinese i18n foundation
  • Vitest-based unit and component testing
  • Cross-platform packaging with electron-builder
  • Fumadocs documentation workspace

Roadmap

  • Global shortcut command launcher
  • Floating desktop assistant
  • Theme switching and persisted appearance settings
  • Plugin manifest, registry, permission model, and SDK
  • Built-in tools for timestamp conversion, clipboard history, and screenshots
  • Optional docs site for product and engineering documentation

Tech Stack

  • Electron
  • electron-vite
  • Vite
  • React
  • TypeScript
  • Tailwind CSS
  • shadcn/ui
  • Zustand
  • i18next
  • Vitest
  • Testing Library
  • electron-builder
  • Fumadocs

Project Structure

src/
├─ main/                  # Electron main process, CSP, app:// protocol, IPC
├─ preload/               # contextBridge API and renderer-visible types
└─ renderer/              # React renderer app
   ├─ index.html
   └─ src/
      ├─ App.tsx
      ├─ components/
      ├─ hooks/
      ├─ i18n/
      └─ lib/

docs/                     # Fumadocs documentation site
resources/                # electron-builder icons and resources

Getting Started

Requirements:

  • Node.js 22.13+
  • pnpm 11.x

Install dependencies:

pnpm install

Start the desktop app in development mode:

pnpm dev

Scripts

pnpm dev                # Start Electron dev mode
pnpm build              # Build SDK, then main/preload/renderer into out/
pnpm build:sdk          # Build workspace SDK declarations and JS output
pnpm preview            # Preview the production build
pnpm lint               # Run ESLint
pnpm lint:fix           # Fix ESLint issues
pnpm format             # Format files with Prettier
pnpm format:check       # Check Prettier formatting
pnpm typecheck          # Run SDK, main/preload, and renderer TypeScript checks
pnpm typecheck:native   # Run tsgo native-preview checks
pnpm test               # Run Vitest
pnpm test:watch         # Run Vitest in watch mode
pnpm test:coverage      # Run Vitest with coverage
pnpm electron:build     # Package the current platform
pnpm docs:dev           # Start the docs site on port 3001

Validation

Run the full local check before committing:

pnpm format:check
pnpm lint
pnpm typecheck
pnpm test
pnpm build

Assets

The system-tray icon (resources/tray.png, tray@2x.png, tray@3x.png) is generated from resources/logo.svg. Re-run the rasterizer whenever the logo changes — it uses the bundled Electron as a headless Chromium, no extra dependencies:

pnpm exec electron scripts/build-tray-icons.cjs

Documentation

License

MIT

About

An Extensible Desktop Productivity Kit written in electron-vite.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages