Bokuchi
A lightweight, cross-platform Markdown editor
Install / Use
/learn @Bokuchi-Editor/BokuchiREADME

Built with Tauri, React, and Rust.
Screen Shot

Features
Core Functionality
- Cross-platform: Runs on Windows, macOS, and Linux
- Lightweight: Built with Tauri for minimal resource usage
- Real-time preview: Live Markdown preview with syntax highlighting
- Standalone: No external dependencies or server required
Editor Features
- Tab management: Multiple files editing with tabs
- Search and replace: Floating search panel with match highlighting, navigation, and replace
- Zoom functionality: Adjustable zoom levels for editor and preview
- Interactive checkboxes: GitHub-style Markdown checkboxes with clickable preview
- Synchronized scrolling: Editor and preview scroll positions are linked
- Markdown toolbar: Quick-access toolbar for headings, bold, italic, lists, links, tables, and more
- Auto-save: Automatic saving with debounce
- State persistence: Automatically saves and restores application state
File Operations
- Native file operations: Full file system access with native dialogs (Open, Save, Save As)
- File change detection: Automatically detects external file changes
- File not found handling: Graceful handling of restored tabs when files are missing
- HTML export: Export preview as HTML files
- Table conversion: Paste HTML tables or TSV/CSV data as Markdown tables
Customization & Themes
- Multiple themes: Default, Dark, Pastel, Vivid, and Darcula themes
- Variable system: Support for custom variables in Markdown (local and global)
- Internationalization: Multi-language support (14 languages)
- Responsive design: Optimized for different screen sizes
System Integration
- Single instance: Prevents multiple application instances
- System integration: Native OS integration and file associations
- Offline functionality: Works completely offline without internet connection
Supported Languages
Bokuchi supports 14 languages for the user interface:
| Language | Code | Native Name |
| --------------------- | --------- | ------------------ |
| English | en | English |
| Japanese | ja | 日本語 |
| Chinese (Simplified) | zh-CN | 中文 (简体) |
| Chinese (Traditional) | zh-Hant | 中文 (繁體) |
| Spanish | es | Español |
| Hindi | hi | हिन्दी |
| Russian | ru | Русский |
| Korean | ko | 한국어 |
| Portuguese (Brazil) | pt-BR | Português (Brasil) |
| Arabic | ar | العربية |
| French | fr | Français |
| German | de | Deutsch |
| Indonesian | id | Bahasa Indonesia |
| Vietnamese | vi | Tiếng Việt |
You can change the language in Settings > Language.
Please submit a pull request if you find any translation errors.
Variable System
File-local Variables
<!-- @var title: My Document -->
<!-- @var author: John Doe -->
# {{title}}
Author: {{author}}
Global Variables
Set global variables through the Variables settings panel. These are available across all files.
Roadmap
- [ ] KaTeX math rendering
- [ ] PDF export
- [ ] Command palette
- [ ] Mermaid / PlantUML diagrams
- [ ] Split editor (two files side by side)
- [ ] Tab pinning
- [ ] Image paste / drop management
- [x] Frontend tests (Vitest + Testing Library)
- [ ] Cross-tab search
- [ ] File rename from tab
- [ ] Standalone HTML export (inline CSS)
- [ ] Word / character count with reading time
- [ ] Undo / redo history persistence
- [ ] Markdown snippets / templates
Development
Prerequisites
- Node.js 18+
- Rust (for Tauri)
- Platform-specific build tools:
- macOS: Xcode Command Line Tools
- Windows: Microsoft Visual Studio C++ Build Tools
- Linux: Build essentials (gcc, make, etc.)
Setup
- Clone the repository
- Install dependencies:
npm install - Start development server:
npm run tauri:dev
Commands
# Development
npm run tauri:dev # Start desktop app (with lint + type-check)
npm run dev # Vite dev server only
# Quality checks
npm run check # Run both ESLint and TypeScript checks
npm run lint # Run ESLint only
npm run type-check # Run TypeScript type checking only
# Build
npm run build # TypeScript + Vite build
npm run tauri:build # Production native app build
Testing
npm run test:all # Run all tests (Rust + TypeScript)
npm run test:unit # Run TypeScript unit tests (Vitest)
npm run test:rust # Run Rust unit tests
npm run test:unit:coverage # Run TypeScript tests with coverage report
For details on test tiers, file locations, and CI configuration, see docs/TESTING.md.
Building for Production
# macOS (Universal - Apple Silicon + Intel)
npm run tauri:build -- --target universal-apple-darwin
# macOS (Native only)
npm run tauri:build
# Windows
npm run tauri:build -- --target x86_64-pc-windows-gnu
# Linux
npm run tauri:build -- --target x86_64-unknown-linux-gnu
Build output locations:
- macOS:
src-tauri/target/universal-apple-darwin/release/bundle/dmg/ - Windows:
src-tauri/target/x86_64-pc-windows-gnu/release/bundle/nsis/ - Linux:
src-tauri/target/release/bundle/appimage/
Documentation
Developer documentation is available in the docs/ directory:
- Testing Guide — Test architecture, running tests, CI
- Menu System Guide — Menu architecture and customization
- Security — Security policy and reporting
- Cross Compile Troubleshooting
- macOS Notarization Guide
- Version Update Checklist
- Monkey Test Case — Manual UI integration test cases
