GitHub - OlaProeis/Ferrite: A fast, lightweight text editor for Markdown, JSON, YAML, and TOML files. Built with Rust and egui for a native, responsive experience.
Key Points
- 1Ferrite is a fast, lightweight text editor for Markdown, JSON, YAML, and TOML files, built with Rust and egui, offering features like live previews, syntax highlighting, and tree viewers.
- 2Uniquely, the entire project's code and documentation are 100% AI-generated by Claude (Anthropic), with a transparent, public workflow detailing the AI-assisted development process.
- 3The editor includes extensive functionalities such as multi-format support, MermaidJS diagram rendering, various view modes (split, zen), advanced editing features, and workspace management with Git integration.
Ferrite is a fast, lightweight text editor built with Rust and the egui GUI framework, designed for editing Markdown, JSON, YAML, and TOML files. It offers a native and responsive user experience, primarily developed and tested on Windows, with support for Linux and macOS.
The core functionality encompasses comprehensive editing features. For Markdown, it provides WYSIWYG editing with live preview, click-to-edit formatting, and syntax highlighting. For structured data like JSON, YAML, and TOML, it includes a hierarchical Tree Viewer with inline editing, expand/collapse functionality, and path copying. General editor features include Find & Replace with regex support, Go to Line (Ctrl+G), and full undo/redo capabilities per tab.
Ferrite offers multiple view modes: "Raw" for plain text editing with syntax highlighting, "Rendered" for a WYSIWYG experience, and "Split" for side-by-side raw editor and live preview with a resizable divider. A "Zen Mode" provides a distraction-free writing environment, and "Sync Scrolling" enables bidirectional scroll synchronization between raw and rendered views.
Advanced editor capabilities include syntax highlighting for over 40 programming languages, code folding with gutter indicators, a VS Code-style minimap for navigation, bracket matching (highlighting and emphasis pairs ** __), and auto-closing for brackets and quotes. Productivity features include Duplicate Line (Ctrl+Shift+D), Move Line Up/Down (Alt+β/β), and Smart Paste for creating Markdown links from selected text and a URL. The editor also supports configurable auto-save, optional line numbers, and a customizable line width for readability.
A notable feature is native rendering of 11 MermaidJS diagram types (Flowchart, Sequence, Pie, State, Mindmap, Class, ER, Git Graph, Gantt, Timeline, User Journey) directly within the preview, though with acknowledged limitations regarding complex diagrams, YAML frontmatter, parallel edge syntax, and style directives.
Workspace management features include opening folders with a file tree, a quick file switcher (Ctrl+P), and search-in-files (Ctrl+Shift+F). It integrates with Git, providing visual status indicators for modified, added, untracked, and ignored files. Session persistence ensures open tabs, cursor positions, and scroll offsets are restored upon restart. Additional features comprise light and dark themes, a Document Outline for navigation, export options (HTML with themed styling, copy as HTML), a Formatting Toolbar, a "Live Pipeline" for piping JSON/YAML content through shell commands, a custom borderless window, and a recent files list accessible via the status bar.
The most distinctive aspect of Ferrite is its core development methodology: it is 100% AI-generated code. All Rust source code, documentation, and configuration were written by Claude (Anthropic) via Cursor, utilizing MCP tools. The human role in this workflow focuses on product direction (deciding what to build and why), testing (running the app, finding bugs, verifying features), review (reading and understanding generated code), and orchestration (managing the AI workflow effectively).
The AI development workflow proceeds as follows:
- Idea Refinement: Concepts are discussed with multiple AI models (Claude, Perplexity, Gemini Pro).
- PRD Creation: Requirements are generated using Task Master.
- Task Execution: Claude Opus handles the implementation, preferring larger, more comprehensive tasks over many smaller subtasks.
- Session Handover: Structured prompts are used to maintain context between AI sessions.
- Human Review: Every handover is reviewed by a human, with direction adjustments made as needed.
The technical stack is built on Rust 1.70+. Key libraries include egui 0.28 and eframe 0.28 for the GUI, comrak 0.22 for Markdown parsing, syntect 5.1 for syntax highlighting, git2 0.19 for Git integration, clap 4 for CLI parsing, rfd 0.14 for file dialogs, arboard 3 for clipboard operations, notify 6 for file watching, and fuzzy-matcher 0.3 for fuzzy matching. Development tools used include Claude (Anthropic), Cursor, and Task Master.
Installation is available via pre-built binaries for Windows, Linux (Debian/Ubuntu/Mint .deb, Arch Linux AUR, tar.gz), and macOS. It can also be built from source by cloning the repository and using cargo build --release, requiring Rust 1.70+ and platform-specific dependencies like Visual Studio Build Tools on Windows or GTK3 and pkg-config on Linux. Usage involves running ferrite with a file path to open, or a folder path to open as a workspace, with various CLI options available. Configuration settings, including appearance and editor behavior, are stored in platform-specific locations and accessible via a settings panel or Ctrl+,. The project is licensed under the MIT License.