A Python-based terminal markdown viewer with syntax highlighting, theming, and file monitoring.
Mdv (terminal_markdown_viewer) is a Python-based command-line tool that renders Markdown files with ANSI colors directly in the terminal. It is designed for developers working in remote or browser-less environments, such as servers or secure gateways, to view and edit documentation efficiently without switching to a web browser. The tool supports syntax highlighting, theming, tables, admonitions, and file monitoring to enhance terminal-based workflows.
Developers and system administrators who frequently work with Markdown files in terminal-only environments, such as remote servers, Docker containers, or secure gateways with limited application access. It is also useful for CLI application developers who want to display formatted help texts or documentation within the terminal.
Developers choose Mdv over alternatives because it is a lightweight, Python-native solution that avoids dependencies on Node.js or browsers, offers extensive theming with over 200 pre-configured themes, and includes practical features like file monitoring and programmatic library usage. Its focus on reducing context switching and improving readability in terminal workflows makes it a pragmatic tool for specific use cases where other viewers are heavy or unavailable.
Styled Terminal Markdown Viewer
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Ships with over 200 pre-configured ANSI themes, sortable by luminance, and customizable via environment variables or config files, allowing rich terminal color schemes without external dependencies.
Handles admonitions, table formatting with wide-table avoidance, and optional header numbering, making it useful for viewing structured docs like help texts or READMEs in the terminal.
Monitors directories or files for changes and can trigger custom commands on updates, enabling live editing workflows in remote environments, though it uses polling.
Can be imported as a module to format Markdown strings programmatically, facilitating integration into CLI tools (e.g., with click) for dynamic help output.
Explicitly fails on inlined HTML and complex Markdown structures, as admitted in the README, making it unsuitable for rendering full-spec documentation or web content.
Described as a 'proof of concept hack' with poor man's file monitoring (polling) and slower rendering compared to alternatives like nd or mistletoe, per perf tests.
Has a history of Py2 vs Py3 support issues, encoding headaches, and requires multiple dependencies (markdown, pygments, etc.), leading to potential setup complexities.