Changelog
All notable changes to mido are recorded here. The format follows Keep a Changelog, and versions follow semver. Before 1.0, a minor release may change keys or configuration.
[Unreleased]
Added
--helpand--versionopen with a pixel-fontmidobanner with the version beside it.
[0.5.1] - 2026-10-01
Changed
- Table body rows are separated by a blank row inside the borders, so a cell that wraps no longer runs into the next row.
Fixed
- Clicking a file in the files sidebar or a heading in the outline hands the keys back to the document, as
Enterdoes. Before, focus stayed on the panel, so the arrow keys moved the panel selection instead of scrolling, and after an outline clickDownjumped to the next heading from the clicked one rather than scrolling a line.
[0.5.0] - 2026-09-25
Added
- Themes: eleven built in,
mido-dark,mido-light,mido-reading(a warm, low-contrast paper palette), Catppuccin Mocha and Latte, Gruvbox, Nord, Tokyo Night, Dracula, and Solarized dark and light. Pick one with--theme <name>orthemein the config. The themes that come from an editor palette paint their own background. - Theme files in TOML with
schema = 1: a[palette]of named colors,[colors]for every token, andextendsto change a few tokens of another theme. User themes go in~/.config/mido/themes/, a path works too, and a theme missing a token is refused with the token named. mido themeslists every theme with its kind and a swatch of its colors.- Light or dark detection: with the default
theme = "auto", mido asks the terminal for its background once at startup, waits at most 100 ms, falls back toCOLORFGBG, then to dark, and picksmido-lightormido-dark.background,dark_themeandlight_themein the config override it. - Code blocks take their syntax colors from a syntect theme chosen by the mido theme.
- Config at
~/.config/mido/config.toml(%APPDATA%\mido\configon Windows,MIDO_CONFIG_DIRor--configto point elsewhere), and a.mido.tomlin the opened folder or above it that overrides it. Settings:theme,dark_theme,light_theme,background,glyphs,width,gutter,front_matter,extensionsand[keys]. An unknown setting is an error, not ignored. - Glyph tiers:
glyphs = "ascii"draws everything in plain ASCII, Mermaid diagrams included, andglyphs = "nerd"adds Nerd Font icons to the files panel, images and alerts. - Key remapping in
[keys], by action name. The help overlay, the status bar hints anddocs/keys.mdshow the keys actually bound. front_matter = "hidden"starts with the front matter out of sight, andmstill shows it.extensionssets which files count as Markdown, replacing the fixed list.- A theme gallery: the docs site shows the same page drawn in every built-in theme, generated in CI from the screen buffer the tests use.
- A fonts table in the docs recording which glyphs Menlo, MesloLGS NF, JetBrains Mono, SF Mono, Source Code Pro and older macOS fonts cover.
Changed
- The parse, layout and theme code moved into a
mido-corecrate with no terminal dependency, published alongsidemido, so other tools can embed the renderer. - The help overlay lists both keys of a pair, so the panel row reads
j / k, ↓ / ↑ in a panel, and?is listed beforeh. - CI fails on a raw color outside the theme module.
- A table too wide for the screen keeps its short columns, 20 cells or less, on one line and shares the rest of the width in proportion to how much each column has to say, so a prose column no longer shrinks to the size of a label column.
[0.4.1] - 2026-09-21
Added
- Badges render as labels: an image from shields.io, badgen, docs.rs, GitHub Actions and friends becomes a two-tone chip with the badge name and its value, linked like the badge. Static shields badges read their text from the URL, and
--remote-imagesfetches live values from the badge SVG, so a version badge shows the version. The value side takes the badge's color, with dark or light text picked for contrast. - Front matter fields parse into key and value pairs for YAML and TOML, with lists joined by commas and nested tables flattened to dotted keys.
- A test walks every relative link and anchor in the docs, README, CONTRIBUTING and CHANGELOG and fails on a broken one.
Changed
- The collapsed front matter line shows one label chip per field, key on the left and value on the right, instead of listing the keys.
mstill expands the card.
[0.4.0] - 2026-09-20
Added
- Single-file viewer:
mido file.md, andmido -for stdin. - Project mode:
mido <folder>and baremidoopen a folder, honouring.gitignoreand skipping hidden files, starting on README.md, then index.md, then the first file. - Rendering for headings, paragraphs, emphasis, links, footnotes, nested and ordered lists, task lists, blockquotes, fenced and indented code with syntax highlighting, GFM tables, rules and raw HTML.
- Heading design per level: a filled title chip for H1, a text-width underline for H2, faint
#markers for H3 to H6. - Element polish: list markers colored by depth, italic quotes, a header band on tables, superscript footnote markers.
- Images:
on its own line is drawn through Kitty, iTerm2 or Sixel, with half-block characters everywhere else. Local files always load, remote ones with--remote-images, cached in the user cache directory with a 10 MB cap.ihides and shows them, the alt text becomes a caption, and print mode keeps the placeholder. - GitHub alerts:
[!NOTE],[!TIP],[!IMPORTANT],[!WARNING]and[!CAUTION]blockquotes draw a colored bar, an icon and a label. - Front matter in YAML or TOML shows as one collapsed line listing its keys.
mexpands it into a highlighted card. - Emoji shortcodes such as
:tada:render as emoji. - Math:
$..$shows as styled source, and a$$block on its own renders as a fenced block. - Definition lists render with bold terms and indented definitions.
- Mermaid code blocks render as text diagrams: flowcharts, sequence, class and state diagrams through mmdflux, and pie, gantt, mindmap, timeline, git graphs and other types through mermaid-text. Unsupported or too-wide diagrams keep their labelled source.
- Full-width layout with gutters that shrink on narrow terminals.
--widthcaps the measure and centers it. - Viewer chrome: status bar with a file chip, hint titles and a selection marker on overlays, an overflow marker for lines wider than the screen, and an empty-file notice.
- Vim-style scrolling, mouse wheel, smart-case search and a table of contents overlay.
- Help overlay on
?orh, grouping keys by task.docs/keys.mdis generated from the same table, and a test fails when the two drift. - Outline panel on
o: the headings as a foldable tree in a rounded, tinted card at the top right, with the text wrapping before it. It follows the reading position and is navigable with the keyboard and the mouse, shown automatically on wide terminals. - Files sidebar on
b: a flat panel on the left headed by the opened folder's name, the tree hanging from it, folders first, foldable, the open file highlighted, andTto show first headings instead of names. Tabcycles focus through files, document and outline in that order,Shift-TaborTabthen←moves it left, and folding in a panel usesSpaceand the arrow keys.- Focus mode on
f: hides both panels for a full-width document and restores them on a second press. - Panels show only while the document keeps 60 columns, so narrow terminals stay readable.
- Link following:
]and[select links, wikilinks and footnote references, including links inside table cells, and Enter or a click follows them. Relative links open in place,#anchorsjump to headings using GitHub slugs, folders open their README, and web links open in the browser. - Wikilinks:
[[Page]]and[[page#section|label]]open the file in the folder whose name or first heading matches, orpage.mdnext to the current file. - Footnotes: select a reference with
]or[and press Enter to read the note in a popup. - History:
HandLmove back and forward through visited pages and positions. - Fuzzy file finder on
Ctrl-p, matching paths and first headings. The finder and the status bar show project paths with forward slashes on every platform, soguide/faq.mdreads the same everywhere. Eopens the file in$VISUALor$EDITORand reloads it afterwards.- Live reload when the file changes on disk. In a folder the whole tree is watched, so added and removed files appear in the files panel with folds preserved.
- Print mode:
-pwrites styled text to stdout. Piping without it writes plain text. - Truecolor with automatic 256-color fallback, and
NO_COLORsupport. - Documentation site at https://anistark.github.io/mido, built with Eleventy from the Markdown pages in
docs/and deployed by CI. The pages carry only front matter on top of plain Markdown, somido docs/reads them too. mido docsopens the bundled documentation offline, extracted from the binary into a temporary folder, whenever nothing nameddocsexists in the current directory.--manprints the man page, generated at build time with clap_mangen.- Contributor docs: the pipeline, adding a block type, writing snapshot tests.
- CI runs fmt, clippy and the tests on Linux, macOS and Windows, and renders every docs page in print mode.
- The landing page demo is recorded by VHS from
docs/tapes/landing.tapeon every deploy. - MIT license.