A block-based editor
that stays out of your way.
Glyph is a modular, framework-agnostic text editor engine. Every paragraph, list, table or custom widget is a block, and documents are stored as portable Markdown.
Add only what you need
The core stays small. Everything else is a plugin that registers its own blocks and hooks into paste, drop and key events, so you ship only the features you use.
AI writing assist
Ghost autocomplete as you type and a ⌘K prompt bar to rephrase a selection. Bring your own provider: Claude, Gemini, OpenAI or a local model.
Real-time collaboration
Shared editing over Yjs with remote cursors and per-user undo. A server can seed a room from a Markdown file and write it back, so the file stays the document of record. Experimental.
Voice dictation
A mic button in the toolbar, a /dictate command and a keyboard shortcut, shown automatically where the browser supports it.
Images
Image blocks with a presigned-upload handler for your own storage, and a single image-source policy shared by core, Markdown import and collaboration that rejects unsafe sources.
Code block linting
A pluggable linter registry for code blocks, with a JSON linter included. Register your own for other languages.
MCP server
Let AI tools such as Claude Code, Claude Desktop, VS Code and Cursor read and edit documents, blocks and themes.
Write your own →
A plugin can add block types and hook init, destroy, onPaste, onDrop and onKeyDown. Read the plugin guide.
What Glyph gives you
A headless core with the pieces a modern writing surface needs.
Block model
A typed block tree with drag-and-drop reordering, slash commands and Markdown shortcuts.
Markdown storage
Documents round-trip through GFM with getMarkdown() / setMarkdown(). The JSON tree is only in-memory state.
Tables
Per-column alignment, range selection, spreadsheet paste and column resizing.
Theming
Design tokens, light and dark modes, and presets such as Modern, Editorial and Technical.
Try it your way
The same engine, three integrations.
Quick start
Install the core, or a framework wrapper.
Vanilla
npm install @caelus-labs/glyph-core
React
npm install @caelus-labs/glyph-react @caelus-labs/glyph-core
Angular
npm install @caelus-labs/glyph-angular @caelus-labs/glyph-core
Package availability on npm is unverified. See the docs for the current setup.