Documentation Index Fetch the complete documentation index at: https://aidocs.zorid.app/llms.txt
Use this file to discover all available pages before exploring further.
Zorid is a pnpm monorepo organized into apps, shared packages, core plugins, and (later) Rust crates.
Repository layout
zorid/
apps/
desktop/ # Electron main / preload / renderer
mobile/ # Capacitor + Vue
packages/
app-kernel/ # Service registry, event bus, lifecycle, command/settings registries
vault/ # VaultStorage, VaultWatcher, paths, vault profiles
workspace/ # Panes, tabs, layout tree, view registry
editor/ # CodeMirror integration and EditorAPI
metadata/ # MetadataAPI, SearchAPI, fields/filter helpers
object-store/ # Canonical structured file helpers (.zbase, .ztype)
db/ # SQLite cache/index adapters and migrations
index-api/ # IndexEngine contract
indexer-js/ # JS reference index implementation
index-worker/ # Worker batching and engine bridge
plugin-api/ # Manifest, PluginContext, public API types
plugin-host/ # Plugin registry, lazy triggers, loader, permissions
sync/ # SyncProvider interfaces and later sync engine
ui-vue/ # Shared Vue design system
desktop-shell/ # Desktop layout shell
mobile-shell/ # Mobile shell, sheets, gestures, haptics
shared/ # Shared utilities, schemas, errors
plugins/core/
file-explorer/ search/ backlinks/ outline/ tags/ status-bar/ fields/ data-views/
crates/
index-core/ # Rust parser/index core (later)
index-wasm/ # WASM bindings (later)
Import direction
apps -> shell packages -> platform packages -> shared
plugins/core -> plugin-api + platform APIs
platform packages must not import Vue shell packages
third-party plugin API must not expose Vue internals
Public Plugin API
The plugin-api package defines the stable, framework-neutral surface plugins build against:
Manifest schema (platforms, capabilities, dependsOn).
PluginContext with register.* disposables.
Typed APIs: vault, workspace, editor, metadata, objects, search, storage.
View renderer contract: mount(container, props, ctx) -> dispose.
Core plugins dogfood these APIs. Generic ctx.internal is avoided as a normal pattern — if a core plugin needs private access, document the missing API and either add a narrow Platform API or a temporary explicit bridge.
Source Full package & API design on GitHub.