Crate map

The workspace's 41 crates, layered by dependency: a crate appears in a layer above everything it depends on, so layer 0 is the foundation and layer 13 is the binary. Each summary is the first paragraph of the crate's own overview (src/lib.rs), and each name links to its published rustdoc. Only lattice-* runtime dependencies are shown — dev- and build-dependencies are not the architecture.

Why a crate exists at all is a design rule, not an accident of history: a new crate needs a new mechanism — a dependency surface it must keep out, enforced structurally — not merely a new feature. See heuristic #6 in CLAUDE.md.

Layer 0

CrateWhat it isDepends onUsed by
lattice-config-macrosProc-macro front-end for lattice-config's declarative option / group / overrides declarations (M.2.0+M.2.1, Design B + D from docs/dev/architecture/mode-architecture.md discussion notes).—lattice-config
lattice-plugin-apiThe plugin-API catalog: the wit/ package parsed at build time into typed data, and the reference, JSON and agent bundle rendered from it (PI.1).—lattice-host
lattice-plugin-sdk-derive#[derive(PluginEvent)] — the guest-side derive for plugin-defined events (PH7.8b.3). The companion proc-macro crate to lattice-plugin-sdk (the serde/serde_derive split: a proc-macro crate cannot also export a normal library, so the runtime trait lives in lattice-plugin-sdk, which re-exports this derive).—lattice-plugin-sdk
lattice-protocolThe shared vocabulary of the editor: the value types, identifiers, event catalogue and wire envelopes that every other lattice crate speaks. It is the dependency floor — every crate depends on it, and it depends on no other lattice crate.—lattice-agent, lattice-ai, lattice-compilation, lattice-completion, lattice-config, lattice-core, lattice-dashboard, lattice-diff, lattice-format, lattice-grammar, lattice-help, lattice-host, lattice-keymap, lattice-listing, lattice-lsp, lattice-magit, lattice-mode, lattice-multibuffer, lattice-notify, lattice-picker, lattice-plugin-host, lattice-plugin-loader, lattice-plugin-manager, lattice-plugin-trace, lattice-runtime, lattice-snippet, lattice-syntax, lattice-terminal, lattice-ui-tui
lattice-themeRenderer-neutral theme primitives.—lattice-cells, lattice-compilation, lattice-dashboard, lattice-diff, lattice-host, lattice-listing, lattice-magit, lattice-multibuffer, lattice-plugin-host, lattice-plugin-loader, lattice-syntax
lattice-vcsPure git data layer — read + write operations over a git repository.—lattice-host, lattice-magit
lattice-witThe canonical plugin API — lattice's wit/ package — as a crate, so a plugin can depend on a named ABI generation instead of a copied directory (WT.1).—lattice-cli, lattice-plugin-loader

Layer 1

CrateWhat it isDepends onUsed by
lattice-cellsCell-grid renderer substrate.lattice-themelattice-ai, lattice-compilation, lattice-completion, lattice-dashboard, lattice-diff, lattice-host, lattice-listing, lattice-magit, lattice-media, lattice-mode, lattice-multibuffer, lattice-plugin-host, lattice-plugin-manager, lattice-runtime, lattice-syntax, lattice-ui-gpui, lattice-ui-tui
lattice-coreThe editor's text model: rope-backed buffers, documents with undo and dirty tracking, regex search, and the small renderer-neutral vocabularies (buffer ids and kinds, pane geometry, folds, indent units, project roots) that every other lattice crate shares.lattice-protocollattice-agent, lattice-ai, lattice-cli, lattice-compilation, lattice-completion, lattice-config, lattice-dashboard, lattice-diff, lattice-grammar, lattice-help, lattice-host, lattice-listing, lattice-lsp, lattice-magit, lattice-mode, lattice-multibuffer, lattice-notify, lattice-picker, lattice-plugin-host, lattice-plugin-loader, lattice-plugin-manager, lattice-plugin-trace, lattice-runtime, lattice-snippet, lattice-syntax, lattice-terminal, lattice-ui-gpui, lattice-ui-tui
lattice-plugin-sdkThe guest-side Rust SDK for lattice plugins: typed event payloads, typed options and typed configuration shapes layered over the plugin-host WIT wire. Compiled INTO plugins (Rust today; other component-model languages use the WIT directly), never into the host.lattice-plugin-sdk-derive—

Layer 2

CrateWhat it isDepends onUsed by
lattice-grammarVim modal editing engine and the unified command/grammar dispatch.lattice-core, lattice-protocollattice-agent, lattice-ai, lattice-compilation, lattice-completion, lattice-config, lattice-dashboard, lattice-diff, lattice-host, lattice-keymap, lattice-listing, lattice-lsp, lattice-magit, lattice-mode, lattice-multibuffer, lattice-notify, lattice-picker, lattice-plugin-host, lattice-plugin-loader, lattice-plugin-manager, lattice-plugin-trace, lattice-runtime, lattice-snippet, lattice-syntax, lattice-ui-gpui, lattice-ui-tui
lattice-mediaInline media: resolving an image block's pixels off the UI thread, so the renderer only ever paints decoded pixels or a placeholder (IM.4).lattice-cellslattice-host, lattice-ui-gpui

Layer 3

CrateWhat it isDepends onUsed by
lattice-completionPluggable completion pipeline (DESIGN.md §5.11.3).lattice-cells, lattice-core, lattice-grammar, lattice-protocollattice-config, lattice-help, lattice-host, lattice-lsp, lattice-magit, lattice-mode, lattice-picker, lattice-plugin-host, lattice-plugin-loader, lattice-snippet, lattice-syntax, lattice-ui-gpui, lattice-ui-tui
lattice-keymapThe editor's keymap engine: the chord trie, the layered runtime registry every keystroke resolves against, the built-in vim keymap catalog, and the introspection models (:describe-key, which-key) derived from them.lattice-grammar, lattice-protocollattice-diff, lattice-host, lattice-magit, lattice-mode, lattice-plugin-host, lattice-plugin-loader, lattice-runtime

Layer 4

CrateWhat it isDepends onUsed by
lattice-configThe typed options system: every editor, mode, renderer and plugin setting is a registered, typed value in one [ConfigRegistry], read on the hot path by type and written at the boundaries (:set, lattice.toml, :setlocal, plugins) by name (DESIGN.md §5.12).lattice-completion, lattice-config-macros, lattice-core, lattice-grammar, lattice-protocollattice-agent, lattice-ai, lattice-cli, lattice-compilation, lattice-dashboard, lattice-diff, lattice-host, lattice-listing, lattice-lsp, lattice-magit, lattice-mode, lattice-multibuffer, lattice-notify, lattice-picker, lattice-plugin-host, lattice-plugin-loader, lattice-plugin-manager, lattice-plugin-trace, lattice-snippet, lattice-syntax, lattice-terminal, lattice-ui-gpui, lattice-ui-tui
lattice-runtimeAsync runtime for lattice (DESIGN.md §5.2.1, §5.6.8, §5.7).lattice-cells, lattice-core, lattice-grammar, lattice-keymap, lattice-protocollattice-agent, lattice-ai, lattice-cli, lattice-compilation, lattice-dashboard, lattice-diff, lattice-host, lattice-lsp, lattice-magit, lattice-mode, lattice-multibuffer, lattice-notify, lattice-plugin-host, lattice-plugin-loader, lattice-plugin-manager, lattice-plugin-trace, lattice-terminal, lattice-ui-tui

Layer 5

CrateWhat it isDepends onUsed by
lattice-modeThe mode system's foundation: the Mode trait, the mode registry, the per-buffer set of active modes, and the typed lifecycle events — plus the generic host seams a mode uses to own its whole surface (action handlers, services, inbound wakes, buffer creation) and the foundation modes that have no other owning crate.lattice-cells, lattice-completion, lattice-config, lattice-core, lattice-grammar, lattice-keymap, lattice-protocol, lattice-runtimelattice-agent, lattice-ai, lattice-compilation, lattice-dashboard, lattice-diff, lattice-help, lattice-host, lattice-listing, lattice-lsp, lattice-magit, lattice-multibuffer, lattice-notify, lattice-plugin-host, lattice-plugin-loader, lattice-plugin-manager, lattice-plugin-trace, lattice-snippet, lattice-syntax, lattice-terminal, lattice-ui-gpui, lattice-ui-tui
lattice-pickerVertico-style picker (DESIGN.md §5.9.7, §5.9.10).lattice-completion, lattice-config, lattice-core, lattice-grammar, lattice-protocollattice-host, lattice-magit, lattice-plugin-host, lattice-plugin-loader, lattice-snippet, lattice-ui-gpui, lattice-ui-tui

Layer 6

CrateWhat it isDepends onUsed by
lattice-compilationNative compilation mode: runs a build / test / lint command off-thread and streams its output into a read-only *compilation* buffer (CM.1).lattice-cells, lattice-config, lattice-core, lattice-grammar, lattice-mode, lattice-protocol, lattice-runtime, lattice-themelattice-host, lattice-plugin-host, lattice-plugin-loader
lattice-dashboardLattice launch dashboard — the branded start page shown when the editor opens with no file argument.lattice-cells, lattice-config, lattice-core, lattice-grammar, lattice-mode, lattice-protocol, lattice-runtime, lattice-themelattice-host, lattice-plugin-host, lattice-plugin-loader
lattice-listingFilesystem entry listings as buffers — the two views the editor offers over a directory tree.lattice-cells, lattice-config, lattice-core, lattice-grammar, lattice-mode, lattice-protocol, lattice-themelattice-host, lattice-ui-gpui, lattice-ui-tui
lattice-notifyNotifications: telling the user about work that has no buffer (NOTIF.1a).lattice-config, lattice-core, lattice-grammar, lattice-mode, lattice-protocol, lattice-runtimelattice-host, lattice-ui-gpui, lattice-ui-tui
lattice-snippetTextMate-format snippet engine for lattice (Phase 4.2.g.4; design in docs/dev/architecture/insert-completion.md §8).lattice-completion, lattice-config, lattice-core, lattice-grammar, lattice-mode, lattice-picker, lattice-protocollattice-host, lattice-ui-tui
lattice-syntaxTree-sitter-backed syntax highlighting for lattice (DESIGN.md §5.3).lattice-cells, lattice-completion, lattice-config, lattice-core, lattice-grammar, lattice-mode, lattice-protocol, lattice-themelattice-diff, lattice-format, lattice-help, lattice-host, lattice-lsp, lattice-magit, lattice-multibuffer, lattice-plugin-host, lattice-plugin-loader, lattice-ui-gpui, lattice-ui-tui
lattice-terminallattice-terminal: PTY-backed terminal-buffer substrate.lattice-config, lattice-core, lattice-mode, lattice-protocol, lattice-runtimelattice-host, lattice-ui-gpui, lattice-ui-tui

Layer 7

CrateWhat it isDepends onUsed by
lattice-diffPure data layer for Lattice's diff subsystem.lattice-cells, lattice-config, lattice-core, lattice-grammar, lattice-keymap, lattice-mode, lattice-protocol, lattice-runtime, lattice-syntax, lattice-themelattice-agent, lattice-ai, lattice-format, lattice-host, lattice-magit
lattice-helpBuffer-backed help model (DESIGN.md §5.11).lattice-completion, lattice-core, lattice-mode, lattice-protocol, lattice-syntaxlattice-host, lattice-lsp, lattice-plugin-loader, lattice-ui-gpui, lattice-ui-tui
lattice-multibufferMultibuffers: one buffer composed of excerpts from other buffers and files, and every concern that comes with them.lattice-cells, lattice-config, lattice-core, lattice-grammar, lattice-mode, lattice-protocol, lattice-runtime, lattice-syntax, lattice-themelattice-host, lattice-lsp, lattice-magit, lattice-plugin-loader
lattice-plugin-hostPlugin host — the WASM Component Model extension substrate (Phase 7).lattice-cells, lattice-compilation, lattice-completion, lattice-config, lattice-core, lattice-dashboard, lattice-grammar, lattice-keymap, lattice-mode, lattice-picker, lattice-protocol, lattice-runtime, lattice-syntax, lattice-themelattice-plugin-loader, lattice-plugin-manager, lattice-plugin-trace

Layer 8

CrateWhat it isDepends onUsed by
lattice-agentlattice-agent — the editor-capability port that lattice's agent integrations are built on.lattice-config, lattice-core, lattice-diff, lattice-grammar, lattice-mode, lattice-protocol, lattice-runtimelattice-ai
lattice-formatExternal formatters, and how their output reaches a buffer.lattice-diff, lattice-protocol, lattice-syntaxlattice-host
lattice-lsplattice-lsp -- the LSP client (DESIGN.md §5.4, Phase 4).lattice-completion, lattice-config, lattice-core, lattice-grammar, lattice-help, lattice-mode, lattice-multibuffer, lattice-protocol, lattice-runtime, lattice-syntaxlattice-ai, lattice-host, lattice-ui-gpui, lattice-ui-tui
lattice-magitMagit — git porcelain as a core plugin.lattice-cells, lattice-completion, lattice-config, lattice-core, lattice-diff, lattice-grammar, lattice-keymap, lattice-mode, lattice-multibuffer, lattice-picker, lattice-protocol, lattice-runtime, lattice-syntax, lattice-theme, lattice-vcslattice-host
lattice-plugin-loaderlattice-plugin-loader — the editor-side plugin loader (Phase 8).lattice-compilation, lattice-completion, lattice-config, lattice-core, lattice-dashboard, lattice-grammar, lattice-help, lattice-keymap, lattice-mode, lattice-multibuffer, lattice-picker, lattice-plugin-host, lattice-protocol, lattice-runtime, lattice-syntax, lattice-theme, lattice-witlattice-cli, lattice-host, lattice-plugin-manager, lattice-plugin-trace

Layer 9

CrateWhat it isDepends onUsed by
lattice-ailattice-ai — lattice's AI coding-agent integration layer.lattice-agent, lattice-cells, lattice-config, lattice-core, lattice-diff, lattice-grammar, lattice-lsp, lattice-mode, lattice-protocol, lattice-runtimelattice-host
lattice-plugin-traceThe buffer-backed plugin boundary-trace views: plugin-trace-mode and the :plugin-trace ex-command (PO.4).lattice-config, lattice-core, lattice-grammar, lattice-mode, lattice-plugin-host, lattice-plugin-loader, lattice-protocol, lattice-runtimelattice-host, lattice-plugin-manager

Layer 10

CrateWhat it isDepends onUsed by
lattice-plugin-managerThe buffer-backed :plugins manager view: plugins-mode and the :plugins ex-command (PL8.H.2).lattice-cells, lattice-config, lattice-core, lattice-grammar, lattice-mode, lattice-plugin-host, lattice-plugin-loader, lattice-plugin-trace, lattice-protocol, lattice-runtimelattice-host

Layer 11

CrateWhat it isDepends onUsed by
lattice-hostlattice-host -- the renderer-agnostic editor substrate.lattice-ai, lattice-cells, lattice-compilation, lattice-completion, lattice-config, lattice-core, lattice-dashboard, lattice-diff, lattice-format, lattice-grammar, lattice-help, lattice-keymap, lattice-listing, lattice-lsp, lattice-magit, lattice-media, lattice-mode, lattice-multibuffer, lattice-notify, lattice-picker, lattice-plugin-api, lattice-plugin-loader, lattice-plugin-manager, lattice-plugin-trace, lattice-protocol, lattice-runtime, lattice-snippet, lattice-syntax, lattice-terminal, lattice-theme, lattice-vcslattice-ui-gpui, lattice-ui-tui

Layer 12

CrateWhat it isDepends onUsed by
lattice-ui-gpuiThe GPUI renderer: lattice's windowed, GPU-accelerated front end, a peer of the terminal renderer (lattice-ui-tui) over the same lattice-host editor substrate (Phase 5.7). The real window needs the window feature, which lattice-cli turns on under its gui feature.lattice-cells, lattice-completion, lattice-config, lattice-core, lattice-grammar, lattice-help, lattice-host, lattice-listing, lattice-lsp, lattice-media, lattice-mode, lattice-notify, lattice-picker, lattice-syntax, lattice-terminallattice-cli
lattice-ui-tuiTerminal renderer for lattice (DESIGN.md §5.6.1 TuiRenderer).lattice-cells, lattice-completion, lattice-config, lattice-core, lattice-grammar, lattice-help, lattice-host, lattice-listing, lattice-lsp, lattice-mode, lattice-notify, lattice-picker, lattice-protocol, lattice-runtime, lattice-snippet, lattice-syntax, lattice-terminallattice-cli

Layer 13

CrateWhat it isDepends onUsed by
lattice-clilattice -- the editor binary.lattice-config, lattice-core, lattice-plugin-loader, lattice-runtime, lattice-ui-gpui, lattice-ui-tui, lattice-wit—