getferrite.dev β Official website with downloads, features, and documentation
A fast, lightweight text editor for Markdown, JSON, YAML, and TOML files. Built with Rust and egui for a native, responsive experience.
β οΈ Platform Note: Ferrite is developed and tested on Windows and Linux. macOS support is experimental. If you encounter issues, please report them.
π‘οΈ Code Signing & Antivirus
Starting with v0.2.6.1, all Windows releases are digitally signed with a certificate from SignPath Foundation. This means:
- Windows SmartScreen recognizes the publisher β no more "Unknown publisher" warnings
- Antivirus false positives are significantly reduced thanks to the trusted code signature
- Integrity verification β you can verify that the binary hasn't been tampered with
Older unsigned builds may still trigger antivirus detections. This was caused by:
- Live Pipeline feature: Uses
cmd.exe /Con Windows for shell commands, which ML-based detection can misidentify - Rust compilation patterns: Rust binaries can trigger heuristic detections due to unique characteristics
We've addressed this through code signing, build profile adjustments (disabled symbol stripping, speed optimization), and reporting to Microsoft's Security Intelligence portal.
If Windows Defender quarantines Ferrite:
- Upgrade: Download the latest signed release from GitHub Releases
- Verify the signature: Right-click
ferrite.exeβ Properties β Digital Signatures β should show "SignPath Foundation" - Check VirusTotal: Upload the file to VirusTotal β signed builds should show clean results
Ferrite does NOT access passwords, browser data, or make network connections. The application is fully offline and only accesses files you explicitly open.
This project is 100% AI-generated code. All Rust code, documentation, and configuration was written by Claude (Anthropic) via Cursor with MCP tools.
About the AI workflow
- Product direction β Deciding what to build and why
- Testing β Running the app, finding bugs, verifying features
- Review β Reading generated code, understanding what it does
- Orchestration β Managing the AI workflow effectively
- Idea refinement β Discuss concepts with multiple AIs (Claude, Perplexity, Gemini Pro)
- PRD creation β Generate requirements using Task Master
- Task execution β Claude Opus handles implementation (preferring larger tasks over many subtasks)
- Session handover β Structured prompts maintain context between sessions
- Human review β Every handover is reviewed; direction adjustments made as needed
π Full details: AI Development Workflow
The actual prompts and documents used to build Ferrite are public:
| Document | Purpose |
|---|---|
current-handover-prompt.md |
Active session context |
ai-workflow/ |
Full workflow docs, PRDs, historical handovers |
handover/ |
Reusable handover templates |
This transparency is intentional β I want others to learn from (and improve upon) this approach.
| Raw Editor | Split View | Zen Mode |
|---|---|---|
![]() |
![]() |
![]() |
β¨ v0.2.6.1 Released: First code-signed release! Integrated Terminal Workspace with tiling, splitting, and layout persistence. Productivity Hub panel. Major app.rs refactoring into ~15 modules. 8+ bug fixes including duplicate line, smart paste, and drag-drop positioning. CJK memory optimization (-80MB). See CHANGELOG.md for full details.
π¦ v0.2.6 Highlights: New Custom Editor Engine with virtual scrolling (80MB file uses ~80MB RAM), Multi-Cursor Editing, Code Folding, IME/CJK input improvements.
- WYSIWYG Markdown Editing - Edit markdown with live preview, click-to-edit formatting, and syntax highlighting
- Multi-Format Support - Native support for Markdown, JSON, CSV, YAML, and TOML files
- Multi-Encoding Support - Auto-detect and preserve file encodings (UTF-8, Latin-1, Shift-JIS, Windows-1252, GBK, and more)
- Tree Viewer - Hierarchical view for JSON/YAML/TOML with inline editing, expand/collapse, and path copying
- Find & Replace - Search with regex support and match highlighting
- Go to Line (Ctrl+G) - Quick navigation to specific line number
- Undo/Redo - Full undo/redo support per tab
- Split View - Side-by-side raw editor and rendered preview with resizable divider; both panes are fully editable
- Zen Mode - Distraction-free writing with centered text column
- Syntax Highlighting - Full-file syntax highlighting for 100+ languages (Rust, Python, JavaScript, Go, TypeScript, PowerShell, and more)
- Code Folding - Fold/unfold regions with gutter indicators (βΆ/βΌ) for headings, code blocks, and lists; collapsed content is hidden
- Semantic Minimap - Navigation panel with clickable header labels, content type indicators, and text density bars (switchable to VS Code-style pixel view)
- Multi-Cursor Editing - Ctrl+Click to add multiple cursors; type, delete, and navigate at all positions simultaneously
- Bracket Matching - Highlight matching brackets
()[]{}<>and emphasis pairs**__ - Auto-close Brackets & Quotes - Type
(,[,{,", or'to get matching pair; selection wrapping supported - Duplicate Line (Ctrl+Shift+D) - Duplicate current line or selection
- Move Line Up/Down (Alt+β/β) - Rearrange lines without cut/paste
- Smart Paste for Links - Select text then paste URL to create
[text](url)markdown link - Drag & Drop Images - Drop images into editor to auto-save to
./assets/and insert markdown link - Table of Contents - Generate/update TOC from headings with
<!-- TOC -->block (Ctrl+Shift+U) - Snippets - Text expansions like
;dateβ current date,;timeβ current time, plus custom snippets - Auto-Save - Configurable auto-save with temp-file safety
- Line Numbers - Optional line number gutter
- Configurable Line Width - Limit text width for readability (80/100/120 or custom)
- Custom Font Selection - Choose preferred fonts for editor and UI; important for CJK regional glyph preferences
- Keyboard Shortcut Customization - Rebind shortcuts via settings panel
Native rendering of 11 diagram types directly in the preview:
- Flowchart, Sequence, Pie, State, Mindmap
- Class, ER, Git Graph, Gantt, Timeline, User Journey
v0.2.5 Mermaid Update: Native Mermaid rendering now supports YAML frontmatter, parallel edges (
A --> B & C),classDef/linkStylestyling, improved subgraphs, and more. Complex diagrams may still have rendering differences from mermaid.js. See ROADMAP.md for planned improvements.
- Native Table View - View CSV and TSV files in a formatted table with fixed-width column alignment
- Rainbow Column Coloring - Alternating column colors for improved readability
- Delimiter Detection - Auto-detect comma, tab, semicolon, and pipe separators
- Header Row Detection - Intelligent detection and highlighting of header rows
- Workspace Mode - Open folders with file tree, quick switcher (Ctrl+P), and search-in-files (Ctrl+Shift+F)
- Git Integration - Visual status indicators (modified, added, untracked, ignored) with auto-refresh on save, focus, and file changes
- Session Persistence - Restore open tabs, cursor positions, and scroll offsets on restart
- Integrated Terminal - Multiple instances with shell selection (PowerShell, CMD, WSL, bash)
- Tiling & Splitting - Create complex 2D grids with horizontal and vertical splits
- Smart Maximize - Temporarily maximize any pane to focus on work (Ctrl+Shift+M)
- Layout Persistence - Save and load your favorite terminal arrangements to JSON files
- Theming & Transparency - Custom color schemes (Dracula, etc.) and background opacity
- Drag-and-Drop Tabs - Reorder terminals with visual feedback
- AI-Ready - Visual "breathing" indicator when terminal is waiting for input (perfect for AI agents)
- Light & Dark Themes - Beautiful themes with runtime switching
- Document Outline & Statistics - Navigate with outline panel; tabbed statistics showing word count, reading time, heading/link/image counts
- Export Options - Export to HTML with themed styling, or copy as HTML
- Formatting Toolbar - Quick access to bold, italic, headings, lists, links, and more
- Live Pipeline - Pipe JSON/YAML content through shell commands (for developers)
- Custom Window - Borderless window with custom title bar and resize handles
- Recent Files & Folders - Click filename in status bar to access recently opened files and workspace folders
- CJK Paragraph Indentation - First-line indentation options for Chinese (2 chars) and Japanese (1 char) writing conventions
Download the latest release for your platform from GitHub Releases.
| Platform | Download | Notes |
|---|---|---|
| Windows | ferrite-windows-x64.msi |
Recommended - full installer with Start Menu |
| Windows | ferrite-portable-windows-x64.zip |
Portable - extract anywhere, run from USB |
| Linux (Debian/Ubuntu) | ferrite-editor_amd64.deb |
For Debian, Ubuntu, Mint, Pop!_OS |
| Linux (Fedora/RHEL) | ferrite-editor.x86_64.rpm |
For Fedora, RHEL, CentOS, Rocky |
| Linux | ferrite-linux-x64.tar.gz |
Universal - works on any distro |
| macOS (Apple Silicon) | ferrite-macos-arm64.tar.gz |
For M1/M2/M3 Macs |
| macOS (Intel) | ferrite-macos-x64.tar.gz |
For Intel Macs |
Windows Installation
Download ferrite-windows-x64.msi and run it. This will:
- Install Ferrite to
C:\Program Files\Ferrite - Add Start Menu shortcut with icon
- Enable easy uninstall via Windows Settings
- Store settings in
%APPDATA%\ferrite\
Download ferrite-portable-windows-x64.zip and extract anywhere. The zip includes:
ferrite.exe- the applicationportable/- folder for all your settingsREADME.txt- quick start guide
True portable mode: All configuration, sessions, and data are stored in the portable folder next to the executable. Nothing is written to %APPDATA% or the Windows registry. Perfect for USB drives or trying Ferrite without installation.
Linux Installation
# Download the .deb file, then install with:
sudo apt install ./ferrite-editor_amd64.deb
# Or using dpkg:
sudo dpkg -i ferrite-editor_amd64.deb# Download the .rpm file, then install with:
sudo dnf install ./ferrite-editor.x86_64.rpm
# Or using rpm:
sudo rpm -i ferrite-editor.x86_64.rpmBoth .deb and .rpm packages will:
- Install Ferrite to
/usr/bin/ferrite - Add desktop entry (appears in your app menu)
- Register file associations for
.md,.json,.yaml,.tomlfiles - Install icons for the system
Ferrite is available on the AUR:
- Ferrite (release package)
- Ferrite-bin (binary package)
# Release package
yay -Sy ferrite
# Binary package
yay -Sy ferrite-bintar -xzf ferrite-linux-x64.tar.gz
./ferriteBuild from Source
- Rust 1.70+ - Install from rustup.rs
- Platform-specific dependencies:
Windows:
- Visual Studio Build Tools 2019+ with C++ workload
Linux:
# Ubuntu/Debian
sudo apt install build-essential pkg-config libgtk-3-dev libxcb-shape0-dev libxcb-xfixes0-dev
# Fedora
sudo dnf install gcc pkg-config gtk3-devel libxcb-devel
# Arch
sudo pacman -S base-devel pkg-config gtk3 libxcbmacOS:
xcode-select --install# Clone the repository
git clone https://github.com/OlaProeis/Ferrite.git
cd Ferrite
# Build release version (optimized)
cargo build --release
# The binary will be at:
# Windows: target/release/ferrite.exe
# Linux/macOS: target/release/ferrite
# macOS: Create .app bundle (optional)
cargo install cargo-bundle
cargo bundle --release
# Bundle will be at: target/release/bundle/osx/Ferrite.appmacOS "Open With" Limitation: The app bundle includes file type associations, so Ferrite appears in Finder's "Open With" menu. However, opening files this way (or by dragging files onto the app icon) is not yet supported due to eframe/winit limitations. Workaround: Open files via Terminal:
open -a Ferrite path/to/file.mdor use File > Open within the app.
Development Builds: Building from the
mainbranch gives you the latest features before they're officially released. These builds are untested and may contain bugs. For stable versions, download from GitHub Releases.
# Open a file
ferrite path/to/file.md
# Open a folder as workspace
ferrite path/to/folder/More CLI options
# Run from source
cargo run --release
# Or run the binary directly
./target/release/ferrite
# Open multiple files as tabs
./target/release/ferrite file1.md file2.md
# Show version
./target/release/ferrite --version
# Show help
./target/release/ferrite --helpSee docs/cli.md for full CLI documentation.
Ferrite supports three view modes for Markdown files:
- Raw - Plain text editing with syntax highlighting
- Rendered - WYSIWYG editing with rendered markdown
- Split - Side-by-side raw editor and live preview
Toggle between modes using the toolbar buttons or keyboard shortcuts.
| Shortcut | Action |
|---|---|
Ctrl+N |
New file |
Ctrl+O |
Open file |
Ctrl+S |
Save file |
Ctrl+W |
Close tab |
Ctrl+P |
Quick file switcher |
Ctrl+F |
Find |
Ctrl+G |
Go to line |
Ctrl+, |
Open settings |
All Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Ctrl+N |
New file |
Ctrl+O |
Open file |
Ctrl+S |
Save file |
Ctrl+Shift+S |
Save as |
Ctrl+W |
Close tab |
| Shortcut | Action |
|---|---|
Ctrl+Tab |
Next tab |
Ctrl+Shift+Tab |
Previous tab |
Ctrl+P |
Quick file switcher (workspace) |
Ctrl+Shift+F |
Search in files (workspace) |
| Shortcut | Action |
|---|---|
Ctrl+Z |
Undo |
Ctrl+Y / Ctrl+Shift+Z |
Redo |
Ctrl+F |
Find |
Ctrl+H |
Find and replace |
Ctrl+G |
Go to line |
Ctrl+Shift+D |
Duplicate line |
Alt+β |
Move line up |
Alt+β |
Move line down |
Ctrl+B |
Bold |
Ctrl+I |
Italic |
Ctrl+K |
Insert link |
| Shortcut | Action |
|---|---|
F11 |
Toggle fullscreen |
Ctrl+, |
Open settings |
Ctrl+Shift+[ |
Fold all |
Ctrl+Shift+] |
Unfold all |
Terminal shortcuts are context-aware; they work when the terminal panel is focused.
| Shortcut | Action |
|---|---|
Ctrl+Tab / Ctrl+Shift+Tab |
Cycle through terminal tabs |
Ctrl+1-9 |
Switch to specific terminal tab |
Ctrl+Arrow Keys |
Move focus between split panes |
Ctrl+Shift+M |
Toggle Maximize Pane (Zoom) |
Ctrl+L |
Clear terminal screen |
Ctrl+Shift+C |
Copy selection / screen |
Ctrl+Shift+V |
Paste to terminal |
Ctrl+W / Ctrl+F4 |
Close focused pane (auto-collapses splits) |
Double-click Tab |
Rename terminal |
Access settings via Ctrl+, or the gear icon. Configure appearance, editor behavior, and file handling.
Configuration details
Settings are stored in platform-specific locations:
- Windows:
%APPDATA%\ferrite\ - Windows Portable:
portable\folder next toferrite.exe - Linux:
~/.config/ferrite/ - macOS:
~/Library/Application Support/ferrite/
Portable Mode (Windows): If a portable folder exists next to the executable, Ferrite automatically uses it for all configuration instead of %APPDATA%. This makes Ferrite fully self-contained - perfect for USB drives.
Workspace settings are stored in .ferrite/ within the workspace folder.
- Appearance: Theme, font family, font size, default view mode
- Editor: Word wrap, line numbers, minimap, bracket matching, code folding, syntax highlighting, auto-close brackets, line width
- Files: Auto-save, recent files history
See ROADMAP.md for planned features and known issues.
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
Ferrite is being translated into multiple languages with help from the community.
Help translate Ferrite on Weblate - no coding required!
Quick Start for Contributors
# Fork and clone
git clone https://github.com/YOUR_USERNAME/Ferrite.git
cd Ferrite
# Create a feature branch
git checkout -b feature/your-feature
# Make changes, then verify
cargo fmt
cargo clippy
cargo test
cargo build
# Commit and push
git commit -m "feat: your feature description"
git push origin feature/your-featureBuilt with Rust 1.70+, egui/eframe for GUI, comrak for Markdown parsing, and syntect for syntax highlighting.
Full tech stack
| Component | Technology |
|---|---|
| Language | Rust 1.70+ |
| GUI Framework | egui 0.28 + eframe 0.28 |
| Markdown Parser | comrak 0.22 |
| Syntax Highlighting | syntect 5.1 |
| Git Integration | git2 0.19 |
| CLI Parsing | clap 4 |
| File Dialogs | rfd 0.14 |
| Clipboard | arboard 3 |
| File Watching | notify 6 |
| Fuzzy Matching | fuzzy-matcher 0.3 |
This project is licensed under the MIT License - see the LICENSE file for details.
Libraries & Tools
- egui - Immediate mode GUI library for Rust
- comrak - CommonMark + GFM compatible Markdown parser
- syntect - Syntax highlighting library
- git2 - libgit2 bindings for Rust
- Inter and JetBrains Mono fonts
- Claude (Anthropic) - AI assistant that wrote the code
- Cursor - AI-powered code editor
- Task Master - AI task management for development workflows
- @wolverin0 β Integrated Terminal Workspace & Productivity Hub (PR #74) π
- @abcd-ca β Delete Line, Move Line, macOS file associations (PR #29, #30)
- @SteelCrab β CJK character rendering (PR #8)
|
|
Free code signing on Windows provided by SignPath.io, certificate by SignPath Foundation |
If you find Ferrite useful, consider supporting its development.



