| Crates.io | md-echo |
| lib.rs | md-echo |
| version | 0.1.0 |
| created_at | 2025-10-19 07:25:35.694629+00 |
| updated_at | 2025-11-06 22:28:18.49789+00 |
| description | Minimalist dual-pane Markdown editor & real time preview built with egui and eframe |
| homepage | |
| repository | https://github.com/fibnas/md-echo |
| max_upload_size | |
| id | 1890157 |
| size | 246,002 |
Minimalist dual-pane Markdown editor & previewer built with egui and eframe
md-echo is a fast, native Markdown editor written in Rust using eframe and egui.
It displays side-by-side editing and live preview of Markdown with CommonMark compliance — perfect for quick note editing, technical docs, or journaling.

egui_commonmark.config.toml.You’ll need the latest stable Rust toolchain and GTK development headers:
Fedora / RHEL:
sudo dnf install gtk3-devel
Debian / Ubuntu:
sudo apt install libgtk-3-dev
Then install the crate:
cargo install md-echo
Update existing install:
cargo install md-echo --force
Or build locally:
git clone https://github.com/fibnas/md-echo
cd md-echo
cargo run --release
Run the app:
md-echo
Then:
Ctrl+Shift+L / Ctrl+Shift+F to lint or format with your configured commands.md-echo can open a file directly when you pass it as an argument:
md-echo notes.md
or with a full path:
md-echo ~/projects/todo.md
If the file exists, it loads into the editor immediately. If it doesn’t, a new blank editor opens with that path ready for saving.
md-echo looks for an optional config file at ~/.config/md-echo/config.toml. Copy docs/config.example.toml to that location as a starting point:
mkdir -p ~/.config/md-echo
cp docs/config.example.toml ~/.config/md-echo/config.toml
Working Directory: Set working_dir to choose the initial folder for the file tree.
Colors & Theme: Adjust the [theme] table to switch between dark/light presets and override hex colors:
[theme]
base = "dark"
background = "#1E1E2E"
text = "#CDD6F4"
accent = "#89B4FA"
Markdown Lint & Format: Configure [tools] entries with the command arrays to run. Defaults use rumdl if available:
[tools]
lint = ["rumdl", "check"]
lint_use_open_file = false
format = ["rumdl", "fmt"]
format_use_open_file = false
Trigger these commands from the Tools menu or with Ctrl+Shift+L / Ctrl+Shift+F. Results (and formatter output) appear in the Tool Output window.
Use the current file: Set lint_use_open_file or format_use_open_file to true to execute the command against the file open in md-echo instead of a temporary buffer. The file must be saved (no pending edits) before running these modes.
eframe — Native app framework for eguiegui_commonmark — CommonMark rendereregui_extras — Layout helpersrfd — Native file dialogsLicensed under the MIT License.
Pull requests are welcome. Feel free to fork, tinker, and open an issue or PR if you have improvements.
"Write, preview, and echo your thoughts — all in one window."