moji-docs
Discovered★ 6MojiDocs is a cross-platform Markdown Wiki desktop application built on Electron + Vue 3 + SQLite.
MojiDocs
Offline-first Markdown Wiki Desktop App
Git tracks files, SQLite indexes them — your data stays yours
Features · Download · Quick Start · Tech Stack · Development · License
Overview
MojiDocs is a cross-platform Markdown Wiki desktop app built with Electron + Vue 3 + SQLite.
Core philosophy: .md files are the single source of truth, tracked and synced via Git. SQLite serves purely as a full-text search index and can be rebuilt from files at any time. Your notes are stored as standard Markdown in the local filesystem, fully compatible with Obsidian, Hugo, Hexo, and more.
Features
Document Management
- Create, edit, delete, move, and pin documents/directories
- Tree-structured browsing (Recent / All / Tree views)
- Drag-and-drop
.mdfile import
Markdown Editor
- Dual-pane live preview / single-pane / preview-only mode
- Toolbar: bold, italic, heading, quote, list, link, image, code block, table
- Paste-to-upload images (screenshot → Ctrl+V → auto-saved to
assets/) - Multiple Markdown rendering themes (GitHub, Juejin, etc.)
Search & Versioning
- SQLite FTS5 full-text search (keyword highlighting + context snippets)
- Git version history (browse, preview, rollback)
Sync & Export
- Scheduled Git sync (pull + push with conflict detection)
- PDF export / print
- Offline-first — all operations complete locally
Customization
- Custom theme colors (color picker + hex input)
- Dashboard (article/directory/version stats)
- Trash (soft delete + cascading restore)
Download
Go to GitHub Releases to download the installer for your platform:
| Platform | Format |
|---|---|
| macOS | .dmg |
| Windows | .exe |
| Linux | .AppImage / .deb |
macOS Installation Note
Since the app is not signed with an Apple Developer certificate, macOS may show "damaged file" or "unverified developer" warnings. Fix with either method:
Method 1: Run in Terminal (recommended)
xattr -cr /Applications/MojiDocs.app
Method 2: Right-click the app icon → select "Open" → click "Open" in the dialog
This is a macOS Gatekeeper restriction, not an issue with the app itself. Required once after each install or update.
Quick Start
Prerequisites
- Node.js ≥ 18
- npm ≥ 9
Development
git clone https://github.com/opqnext/moji-docs.git
cd moji-docs
npm install
npm run dev
Build
npm run build # Compile
npm run package # Package as installer (output in release/)
Tech Stack
| Technology | Version | Purpose |
|---|---|---|
| Electron | 33 | Cross-platform desktop framework |
| Vue 3 | 3.5 | Frontend UI framework |
| electron-vite | 2.3 | Build tool |
| better-sqlite3 | 11 | SQLite database (index + FTS5 full-text search) |
| marked | 17 | Markdown rendering |
| highlight.js | 11 | Code syntax highlighting |
| simple-git | 3.27 | Git sync |
| chokidar | 3.6 | File system watching |
| electron-builder | 25 | App packaging |
Project Structure
moji-docs/
├── main/ # Main process (Node.js)
│ ├── index.ts # Entry: window, protocols, IPC
│ ├── database.ts # SQLite initialization
│ ├── indexer.ts # File → index builder
│ ├── git-sync.ts # Git sync scheduler
│ ├── file-watcher.ts # File system watcher
│ └── ipc/ # IPC channels
├── preload/ # Preload scripts
├── renderer/ # Renderer process (Vue 3)
│ └── src/
│ ├── views/ # Page components
│ └── components/ # Shared components
├── assets/ # App icons
├── scripts/ # Utility scripts
└── doc/ # Project documentation
Development Guide
Hot Reload
| Change | Restart Required? |
|---|---|
renderer/ Vue/CSS files | No (HMR hot reload) |
main/ main process code | Yes, re-run npm run dev |
Debugging
- Renderer process: DevTools opens automatically in dev mode, or press
Cmd+Option+I - Main process:
console.log()outputs to terminal, or use--inspect=9229with Chrome DevTools
Releasing
- Update
versioninpackage.json npm run build && npm run package- Create a Release on GitHub Releases (tag:
v1.x.x) - Upload installers
Data Storage
User data is stored in a user-selected local directory:
~/MojiDocs/ # Notes root (= Git repo root)
├── .moji/ # App data (not synced)
│ ├── index.db # SQLite index (rebuildable)
│ └── config.json # Local settings
├── assets/ # Image assets (Git tracked)
├── Getting Started.md # Note files
└── Projects/ # Directories
└── Project A.md
- Uninstalling or reinstalling the app does not affect user data
.moji/is automatically excluded via.gitignoreand won't sync to remote
Star History
License
MIT License © 2018-2025 opqnext
Comments
Loading…
Similar plugins
by mlosun
DSH WebUI 里的「随身手册」:全局 Markdown 笔记,任何工作区随时可读。
★ 8
↓ 100/wk
MIT
JavaScript
Aug 19, 2026
dsh plugin --profile web add dsh-docs-panelMulti-workspace manager: bind a docs anchor plus ordered code-project repositories into one session, injecting their absolute paths, a recursive file index, a server/client endpoint index and optional
★ 1
NOASSERTION
TypeScript
dsh plugin --profile web add dsh-workspace-combinerby MkaliezZ
Version-aware documentation query with excerpt bounding for DSH; host-supplied lookup, no hard-coded web provider.
★ 0
MIT
TypeScript
Aug 29, 2026
dsh plugin --profile web add @mkaliezz/dsh-docsby nin2c
Lightweight notes & todo panel plugin for the DeepSeek Harness (DSH) Web UI: work/personal todo columns, five autosaving memo windows, drag-to-reorder, inline editing, local JSON storage.
★ 0
MIT
JavaScript
Oct 23, 2026
dsh plugin --profile web add dsh-plugin-memoby JWE24-code
The /JevLoop control panel for moqi, on top of dsh-jev-loop.
★ 0
MIT
JavaScript
Oct 18, 2026
dsh plugin --profile web add moqi-jev-loopby bigfurma-bot
Persistent shared to-do list for DeepSeek Harness: web UI tab + agent tools over one JSON store, writable from both sides
★ 0
MIT
JavaScript
Aug 22, 2026
dsh plugin --profile web add @deepseek-ai/dsh-todos