ADHD-Friendly Distraction-Free Writer
Scribe is a distraction-free writing app designed for academics and researchers with ADHD. It combines a custom markdown editor with academic writing tools, themes, and CLI-based AI integration.
| Feature | Description |
|---|---|
| CodeMirror 6 | Three modes: Source, Live Preview, Reading |
| Callouts | 11 Obsidian-style callout types with color coding |
| Focus Mode | Distraction-free, one note at a time |
| Settings | ⌘, fuzzy search, theme gallery, Quick Actions customization |
| 10 Themes | Visual theme gallery with dark and light themes |
| 14 Fonts | Recommended fonts + one-click Homebrew install |
| Quick Actions | ✨ Improve, 📝 Expand, 📋 Summarize, 💡 Explain, 🔍 Research (customizable) |
| Project Templates | Research+, Teaching+, Dev+, Writing+, Minimal presets |
| Wiki Links |
[[link]] with autocomplete + single-click navigation |
| Tags |
#tag inline with autocomplete |
| Citations |
@cite with BibTeX/Zotero integration |
| Math | KaTeX for LaTeX ( |
| Export | PDF, Word, LaTeX, HTML via Pandoc |
| AI Chat | Claude + Gemini CLI (no API keys) |
| Chat Persistence | Conversations saved per note |
| @ References | Include other notes in AI prompts |
| CLI | Terminal access via scribe command |
| Command Palette | ⌘K quick actions |
| Global Hotkey | ⌘⇧N opens from anywhere |
| Global Zoom | ⌘+/⌘- zoom (50%–200%), WCAG 1.4.4 compliant |
| Responsive UI | Auto-collapse sidebars, window position memory, right sidebar resize |
# Add the tap
brew tap data-wise/tap
# Install Scribe
brew install --cask data-wise/tap/scribeDownload from GitHub Releases:
Scribe_x.x.x_aarch64.dmg(Apple Silicon)
# Clone and install
git clone https://github.com/Data-Wise/scribe.git
cd scribe
npm install
# Run development
npm run dev
# Run tests
npm test
# Build for production
npm run buildSee docs/installation/install.md for detailed instructions.
| Shortcut | Action |
|---|---|
| ⌘⇧N | Open Scribe (global) |
| ⌘, | Settings (v1.9.0+) |
| ⌘K | Command palette |
| ⌘N | New note |
| ⌘D | Daily note |
| ⌘E | Toggle edit/preview |
| ⌘⇧F | Focus mode |
| ⌘⇧B | Toggle tags panel |
| ⌘⌥1-9 | Quick Actions (v1.9.0+) |
| ⌘Alt+0-9 | Switch themes |
| ⌘+Click | Navigate WikiLink (Source mode) |
| ⌘+ | Zoom in (10%) |
| ⌘- | Zoom out (10%) |
Scribe includes a terminal CLI for quick note access without opening the app:
# Quick commands
scribe daily # Open today's daily note
scribe capture "idea" # Quick capture to inbox
scribe search "query" # Full-text search (FTS5)
scribe list # List recent notes
# Aliases
sd # scribe daily
sc # scribe capture
ss # scribe search
sl # scribe list# Source the CLI (add to .zshrc)
source ~/.config/zsh/functions/scribe.zsh
# View man page
man scribe
# See all commands
scribe help --allThe CLI is part of flow-cli and operates directly on the SQLite database.
- Zero Friction — < 3 seconds to start writing
- One Thing at a Time — Single note visible
- Escape Hatches — ⌘W closes, auto-saves
- Visible Progress — Word count, mode toggle
- Sensory-Friendly — Dark mode default
- Reduced Motion — Respects system preferences
Engaging empty state with animated pen icon, action buttons, and inspirational writing quotes.
Clean markdown editor with live wiki-link and tag highlighting.
Theme picker, ADHD-friendly font recommendations, and typography controls.
| Component | Technology |
|---|---|
| Framework | Tauri 2 + React 18 |
| Editor | CodeMirror 6 |
| Styling | Tailwind CSS |
| State | Zustand (5 stores) |
| Database | SQLite (Tauri) / IndexedDB (Browser) |
| Terminal | xterm.js |
| Graph | D3.js |
| Math | KaTeX |
| AI | Claude/Gemini CLI |
| Citations | Pandoc citeproc |
| Testing | Vitest + Testing Library |
| File | Purpose |
|---|---|
| docs/API.md | Complete API reference |
| docs/ARCHITECTURE.md | System architecture |
| docs/planning/ | Active planning |
| docs/reference/PROJECT-DEFINITION.md | Scope control |
| CHANGELOG.md | Version history |
| CLAUDE.md | AI assistant guidance |
# Development
npm run dev # Start Tauri dev server
npm run dev:vite # Vite frontend only
npm run test # Run 2,326 tests
npm run lint # Lint code
# Build
npm run build # Production buildscribe/
├── src/
│ └── renderer/src/ # React frontend
│ ├── components/ # UI components
│ ├── lib/ # API, themes, utils
│ ├── store/ # Zustand state
│ └── __tests__/ # Test files
│
├── src-tauri/src/ # Rust backend
│ ├── commands.rs # IPC handlers
│ ├── database.rs # SQLite operations
│ └── academic.rs # Citations + export
│
└── docs/ # Documentation
├── API.md
├── ARCHITECTURE.md
└── planning/
| Phase | Sprint | Focus | Status |
|---|---|---|---|
| 1 | 8-10.5 | Editor + Hotkey + Themes | ✅ Complete |
| 2 | 11-12 | Academic + UI Polish | ✅ Complete |
| 3 | 14 | Knowledge Graph + Templates | ✅ Complete |
| 4 | 15-16 | Tags Panel Redesign | ✅ Complete |
| 5 | 17-20 | CLI + Polish | ✅ Complete |
Progress: 100% complete — v1.11.0 Released
2,326 tests passing across test files:
81 test files with 2,326 tests (Vitest + Testing Library + happy-dom).
Zotero → Better BibTeX → @cite autocomplete → Pandoc → PDF/Word/LaTeX
- PDF (via Pandoc + LaTeX)
- Word (.docx)
- LaTeX (.tex)
- HTML
- APA
- Chicago
- MLA
- IEEE
- Harvard
- macOS (primary platform)
- Node.js 18+
- Rust (for Tauri)
- Homebrew (optional, for font installation)
- Pandoc (optional, for export)
- Claude/Gemini CLI (optional, for AI features)
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing) - Open Pull Request
Note: Main branch is protected. PRs require review.
MIT
- aiterm — Terminal optimizer
- obsidian-cli-ops — Obsidian vault manager