A tiny local text editor with a VS Code–class editing core — about 5 MB on disk.
Monolith wraps Monaco Editor (the same editing engine behind VS Code) in a native macOS shell built with Tauri + Vue 3. You get familiar editing power without Electron’s hundreds of megabytes.
Credits: Editing experience powered by Monaco Editor (Microsoft). Thank you to the Monaco / VS Code teams.
| VS Code | Monolith | |
|---|---|---|
| Editing engine | Monaco | Monaco |
| Shell | Electron | Tauri (native WebView) |
| Installer size (arm64 DMG) | hundreds of MB | ~5 MB |
| Extensions / marketplace | yes | no — stay small |
| Always online / account | optional | fully offline, local files only |
Monolith is for people who want to open, read, and edit text files quickly — markdown notes, configs, logs, source — without launching a full IDE.
- Syntax highlighting for common languages (TypeScript/JavaScript, Python, Rust, Go, Java/Kotlin, C/C++, SQL, Shell, Ruby, PHP, Swift, R, HTML/CSS, YAML, TOML/INI, GraphQL, Dockerfile, and more)
- Multi-tab editing, undo/redo, find, indent/outdent
- SQL format action when the buffer is SQL
- Recent files menu
- Split view: Monaco source ↔ WYSIWYG preview (TipTap)
- Block-level source map sync and highlight between panes
- Edit from either side when in split / preview modes
- Markdown — rich WYSIWYG
- HTML — sandboxed preview
- JSON / XML — structured tree preview
- Other types — editor-focused view
- Open / save / save as for UTF-8 text
- Finder Open With / double-click for registered text types
- Default-handler helper script after install
- Rejects binary payloads (null bytes) instead of corrupting the buffer
- Brings the app to the front when a file is opened from Finder
- No telemetry, no cloud sync, no account
- All I/O is local filesystem via Tauri commands
Monolith registers 59 extensions (see src/file-types.json), including:
.md .markdown .json .jsonc .yml .yaml .xml .svg .html .css .ts .tsx .js .jsx .py .rs .go .java .kt .c .cpp .sql .sh .vue .toml .ini .csv .graphql …
Plus special basenames such as Dockerfile / Makefile.
Not every byte on disk is “text.” Binary files are refused. Unknown extensions are not silently treated as plain text — the allow-list in
file-types.jsonis the source of truth.
Release: v0.1.0
| Platform | Asset | Notes |
|---|---|---|
| macOS (Apple Silicon) | Monolith_0.1.0_aarch64.dmg (≈ 5 MB) |
Ad-hoc signed (not notarized). First open: Privacy & Security → Open Anyway. |
| Windows (x64) | Monolith_0.1.0_x64-setup.exe (NSIS) |
Built by GitHub Actions. Requires WebView2 (usually preinstalled on Windows 10/11). |
Windows installers are produced by .github/workflows/build-windows.yml (workflow_dispatch or version tags).
swift scripts/macos-set-default-handlers.swift src/file-types.jsonRequirements: Node.js 20+, Rust stable, macOS with Xcode CLT.
npm install
npm run tauri devRelease build:
npm run tauri buildnpm run build syncs macOS file associations from src/file-types.json into src-tauri/tauri.conf.json (keeps Finder types and Monaco languages aligned).
Finder / Open With
│
▼
Tauri (Rust) ── read/write UTF-8, quarantine clear, activate window
│
▼
Vue 3 UI ── tabs, toolbar, i18n
│
├── Monaco Editor (source)
└── TipTap / HTML / tree previews
Design notes live under docs/superpowers/specs/.
MIT © reallyMu
Monaco Editor is used under its own license (MIT). See third-party notices in dependency licenses after npm install / cargo tree.
- Apple Developer ID + notarization for Gatekeeper-clean distribution
- Intel (
x86_64) macOS build - Windows x64 NSIS installer (CI)
- Optional Linux target via Tauri
- User-configurable association list beyond the built-in allow-list
- Single-instance / second-file open while already running on Windows
- Monaco Editor — the editing core that makes Monolith feel like a slice of VS Code
- Tauri — tiny native shell
- Vue · TipTap · markdown-it