Packages
The zudotext app is built from shared workspace packages under packages/. Each package is self-contained with its own types, tests, and exports.
Package List
| Package | Description |
|---|---|
| @takazudo/app-defaults | App configuration schema, default values, and validation |
| @takazudo/app-scaffold | App environment scaffold utility for development and testing |
| @takazudo/backend-bridge | Backend abstraction layer with 3 adapters (Tauri IPC, mock, REST/HTTP) |
| @takazudo/cloud-crypto | Encryption key derivation for cloud sync (PBKDF2, AES-256-GCM, HMAC-SHA256) |
| @takazudo/cloud-sync | Cloud sync client (WebSocket manager, change tracker, offline queue) |
| @takazudo/cm-ghost-text | CodeMirror extension for ghost-text (inline AI suggestions) |
| @takazudo/cm-inline-command | CodeMirror extension: detects @@ , drives inline ghost-text bake, dispatches to the mini panel |
| @takazudo/cm-search-highlight | CodeMirror extension for search highlight overlays |
| @takazudo/code-block | Markdown code block rendering with copy button |
| @takazudo/color-themes | Color theme definitions and semantic color system |
| @takazudo/command-palette | VS Code-style command palette React component |
| @takazudo/cross-pane-search | Orchestrator for bilateral search highlight across panes |
| @takazudo/css-playground | Interactive CSS development tool (dev-only) |
| @takazudo/design-token-lint | Lint Tailwind CSS class names against design system tokens |
| @takazudo/directive-registry | Registry of MDX directive definitions and validation |
| @takazudo/file-utils | Filesystem utilities (frontmatter parsing, safe paths, filename generation) |
| @takazudo/find-in-page | DOM-based text search for markdown preview |
| @takazudo/frameset | Frameset UI component (split panels, resize, frame chrome) |
| @takazudo/frontmatter-schema | Frontmatter field schema definitions and type system |
| @takazudo/frontmatter-ui | Frontmatter field renderer components (string, number, boolean, date) |
| @takazudo/gfm-table | GFM table parser and emitter |
| @takazudo/inline-command-skills | Skill loader, parser, resolver, and autocomplete index for the inline AI command |
| @takazudo/kanban-board | Drag-and-drop kanban board React component |
| @takazudo/kanban-parser | Markdown kanban parser, serializer, and directory-model adapter |
| @takazudo/mindmap-board | Interactive mind map React component (outline + visual views) |
| @takazudo/mindmap-parser | Markdown mind-map parser and serializer |
| @takazudo/remark-source-line | remark plugin that stamps data-source-line attributes on block elements |
| @takazudo/settings-sections | Shared settings sections for the writing app and manager |
| @takazudo/shortcut-engine | Keyboard shortcut engine with chord support |
| @takazudo/sync-logger | Structured logging for sync operations |
| @takazudo/timeline-board | Timeline board React component |
| @takazudo/todo-board | TODO checklist board React component |
| @takazudo/todo-parser | Markdown TODO parser, serializer, and immutable operations |
| @takazudo/ui-components | Shared React UI components with Storybook |
| @takazudo/view-provider | View provider system for the frameset architecture |
| @takazudo/zudotext-mcp | Public npm package providing the local stdio MCP server; source remains private |
Dependency Graph
app-scaffold ──→ app-defaults ──→ color-themes, shortcut-engine, view-provider
backend-bridge ──→ app-defaults, file-utils, cloud-crypto, cloud-sync, inline-command-skills, @tauri-apps/api
ui-components ──→ shortcut-engine, backend-bridge, diff, @tanstack/react-virtual, lucide-react
kanban-board ──→ kanban-parser, app-defaults, color-themes, ui-components, @dnd-kit/*
kanban-parser (standalone)
todo-board ──→ todo-parser, ui-components
todo-parser (standalone)
mindmap-board ──→ mindmap-parser, color-themes, ui-components, @panzoom/panzoom
mindmap-parser (standalone)
cloud-sync (standalone)
cloud-crypto (standalone)
sync-logger (standalone)
zudotext-mcp ──→ @modelcontextprotocol/sdk, zod (cloud-crypto + file-utils inlined at build time)
code-block (standalone, peer: react)
command-palette (standalone, peer: react)
file-utils (standalone, Node.js)
find-in-page (standalone, DOM)
color-themes (standalone)
shortcut-engine (standalone, DOM) Key relationships:
app-defaults depends on color-themes for default color generation, shortcut-engine for shortcut key types, and view-provider for view layout types
app-scaffold depends on app-defaults for settings validation
backend-bridge depends on app-defaults, file-utils, cloud-crypto, cloud-sync, and inline-command-skills plus optional
@tauri-apps/apipeersui-components depends on shortcut-engine for
ChordIndicator, backend-bridge for Spotlight search bridge, diff forDiffViewerDialog, @tanstack/react-virtual for windowed lists, and lucide-react for iconskanban-board depends on kanban-parser for data types, app-defaults, color-themes, ui-components, and
@dnd-kitfor drag-and-dropmindmap-board depends on mindmap-parser for data types, color-themes, ui-components, and @panzoom/panzoom for pan/zoom
Most packages are workspace-internal and consumed via pnpm's workspace protocol (workspace:*). @takazudo/zudotext-mcp is the exception: its verified packed artifact is published publicly to npm while its source remains in this private repository.