An Electron desktop app combining a TipTap-based rich-text editor with an InDesign-style layout engine, powered by Claude AI or local Ollama models.
Perfect for: Academic papers, theses, books, magazines, and professional documents with integrated research assistance.
- ✅ Rich-text editor — TipTap with formatting, styles, tables, images
- ✅ InDesign-style layout mode — Drag/resize frames, text threading, multi-page
- ✅ AI-powered writing — Claude Sonnet 4.6 or local Ollama models for research, suggestions, restructuring
- ✅ Integrated research browser — Verify facts and sources without leaving the app
- ✅ PDF import/export — Bring in existing PDFs, export to print-ready PDF
- ✅ Master pages & styles — Professional document templates
- ✅ Bibliography management — APA, MLA, Chicago, IEEE citation formats
- ✅ System fonts — Access all installed fonts on your system
- Node.js 16+
- npm or yarn
- (Optional) Ollama for local AI models
# Clone the repo
git clone https://github.com/Figstranmedia/scriptorium.git
cd scriptorium
# Install dependencies
npm install
# Run in development mode
npm run dev# Build for your platform
npm run dist # All platforms
npm run dist:mac # macOS only
# Production build
npm run build| Layer | Technology |
|---|---|
| Desktop | Electron 33 + electron-vite |
| UI | React 18 + TypeScript |
| Styling | TailwindCSS |
| Editor | TipTap 2 |
| AI | Anthropic SDK + Ollama |
| Storage | electron-store |
| pdfjs-dist |
- Get your API key from Anthropic Console
- Open Scriptorium → Settings (⚙️)
- Select Claude as AI Provider
- Paste your API key
- Save
- Install Ollama
- Run:
ollama serve - In Scriptorium → Settings, select Ollama
- Choose your model (llama3, gemma, etc.)
- Verify connection
- CLAUDE.md — Architecture overview, project structure, IPC API reference
- CLAUDE_PROMPT.md — Development roadmap (10 feature blocks)
- Write mode: TipTap editor, AI actions (research/suggest/restructure/replace), bibliography, TOC
- Layout mode: draw frames (T/I), drag/resize, text threading, direct inline editing
- Multi-selection, rubber-band, alignment toolbar, copy/paste/duplicate (⌘C/V/D)
- Undo/Redo stack (⌘Z/⌘⇧Z), arrow key nudge, zoom (Ctrl+scroll, 25–400%)
- Draggable guides from rulers, magnetic snap to guides/frames/margins
- Frame appearance: background color, border, corner radius, opacity
- System font picker — all installed fonts with live preview
- AI Design panel (✨) — describe a style, AI applies changes to selected frame
- Page strip (left thumbnails), layers panel, right-click context menu
- Master pages, preflight check, baseline grid
- PDF import with text/font structure detection
- PDF export (print-ready), bibliography (APA, MLA, Chicago, IEEE)
- Global Paragraph Styles — Named styles (Body, Chapter Title, Caption…)
- Book Cover Mode — Front cover + spine + back as single horizontal spread
- Shape Tools — Rectangles, ellipses, lines as independent frames
- Enhanced Export — Bleed/crop marks, PNG export per page
See CLAUDE_PROMPT.md for detailed feature specs and implementation order.
- Create a new document
- Start typing with full rich-text formatting
- Use AI Sidebar (left) for research, suggestions, restructuring
- Add references with bibliography manager
- Click the Layout button to switch modes
- Draw text frames (T) and image frames (I)
- Drag/resize to arrange your design
- Double-click text frames to edit inline
- Use Properties panel (right) to fine-tune styling
- Export to PDF when ready
Contributions welcome! Please:
- Fork the repo
- Create a feature branch (
git checkout -b feature/amazing-feature) - Follow the conventions in CLAUDE.md
- Keep TypeScript types strict
- Test locally before opening a PR
MIT — See LICENSE for details
- Bug reports: Issues
- Feature requests: Discussions
- Questions: Open an issue with label
question
🎬 Built with love by Figstranmedia
Editorial design meets AI. Your research, your design, your voice.