Overview
What is zudo-text?
zudo-text は、ドキュメントシステム(Astro Starlight、Hugo、Jekyll、素の VS Code ワークスペースなど)の流儀を尊重する、フロントマター対応の Markdown エディタです。デスクトップアプリ(Tauri v2)としてもブラウザからも動作し、AI と組み合わせて文章を書き上げる用途に特化しています。コンテンツは暗号化されたクラウドワークスペースに置かれ、デスクトップとブラウザはどちらも同じワークスペースを開きます。
スキーマやビルド・公開フローはエディタ側ではなくワークスペース側に置く、というのが zudo-text の基本姿勢です。背景にある考え方は Philosophy を参照してください。
Frontmatter Is the Contract
zudo-text は単一のドキュメントフレームワークに紐付かない設計です。
スキーマはワークスペースに住む — どのフロントマターフィールドが必要かを決めるのはワークスペース側(あるいはそこで使っているドキュメントフレームワーク)であって、エディタ側ではありません。
エディタはフロントマターを「理解する」だけ — パース・編集・補完などの編集体験は提供しますが、ビルド・レンダリング・公開には踏み込みません。
同じエディタを別の用途で使い回せる — 技術ドキュメント、リサーチノート、ブログの下書き、業務メールなど、用途ごとにワークスペースとフロントマター契約だけを切り替えれば足ります。
Text Apps: Same Editor, Different Workspaces
zudo-text のもう一つの特徴は text app generator であることです。zudotext.app(ROOT app)が、同じ writing-app レンダラーを共有する複数の LEAF text app(modmsg.app、prompts.app、worktext.app、ztoffice.app など)を生成します。各 LEAF text app はそれぞれ専用のワークスペースにバインドされた、同じエディタの別インスタンスです。配色・ピン・ショートカットといった設定もフロントマタースキーマも、そのワークスペースの中にあります。
たとえば次のような使い分けが想定されます。
技術ドキュメント — Astro Starlight などの流儀に沿った
.mdxを編集するリサーチノート — タグや日付などのフロントマターを使った個人ナレッジベース
ブログ下書き — Hugo / Jekyll などの静的サイトジェネレータのコンテンツディレクトリ
日本語の業務コミュニケーション — 著者が日々使っている用途で、メールや Slack の下書きをアーカイブ管理する
ztofficeのような text app を生成する
最後の「日本語の業務コミュニケーション」は zudo-text が生まれた背景にある具体例の一つに過ぎず、エディタ自体はそこに最適化されているわけではありません。
Key Features
Editor with vim mode — CodeMirror 6 editor with optional vim keybindings, markdown preview, and auto-formatting
Frontmatter-aware editing — Parses and edits YAML frontmatter; the schema and validation live in the workspace, not the editor
Inline AI —
@@-triggered inline commands and an AI assistant frame for longer exchangesMultiple notes — Independent notes with the Note Tray toolbar, the Summarized Note List dialog, and
Mod+1–Mod+9switchingSplit frames — Split the editor into multiple frames (horizontal or vertical) for side-by-side editing, with focus navigation between frames
Kanban view — Render any markdown file as an interactive kanban board with drag-and-drop columns, labels, priorities, and due dates
Archives — Finished documents are moved into numbered Note Tray notes, browsable and searchable in-app (via Pile View)
Pins — Configurable content directories for quick access to reference files, plus header pins that install a whole layout in one click
Asset management — Drag-and-drop image import, clipboard paste, and an asset manager dialog for browsing and managing images
Command palette — Fuzzy-search command palette (
Cmd+K) for navigation, layout, and actionsKeyboard shortcuts — Fully configurable shortcut bindings with chord support (e.g.,
Cmd+K Cmd+S)Cloud-primary storage — An end-to-end encrypted workspace is the store, not a backup of local files; every device signed in sees the same content and the same settings
Find in page — Built-in text search across the current view
Config-Driven Architecture
zudo-text is fully config-driven. A single .zudotext.settings.json document — stored in the workspace, so it follows you to every device — controls:
Color scheme (two built-in schemes, Default Dark and Default Light, each fully tweakable via the ramp-based Colors tab)
Editor settings (font, size, vim mode, padding, typewriter scrolling)
Keyboard shortcuts
The frameset layout and the header pins that install layouts
Pin directories
Different configurations produce different app instances. What distinguishes one instance from another is which workspace it is bound to — recorded in ~/, the one local file involved. See App Generation for the text app generation flow and Settings & Configuration for the layering.
Tech Stack
| Layer | Technology |
|---|---|
| Desktop framework | Tauri v2 |
| Backend | Pure Rust (no Node.js in main process) |
| Frontend | React 19 + TypeScript |
| Build | Vite |
| Editor | CodeMirror 6 |
| Styling | Tailwind CSS 4 |
| Storage | End-to-end encrypted cloud workspace (Cloudflare Workers + D1 + R2) |
| Crypto | Web Crypto API (@takazudo/cloud-crypto) |
The app produces a ~5 MB binary, compared to ~260 MB with the previous Electron + Node.js stack.