Skip to main content

Flint: A premium terminal-based Markdown viewer with interactive tables, high-res images, and Obsidian-style callouts.

Project description

🔥 Flint: The Premium Markdown Viewer

Flint is a premium, terminal-based Markdown viewer built with Textual. Designed for speed, aesthetics, and a seamless Obsidian-like experience in your terminal.

✨ Features

  • 📊 Interactive Tables: Markdown tables are rendered as interactive DataTable widgets with row selection, hover effects, and smooth scrolling.
  • 🖼️ High-Res Images: Crystal clear image rendering using the Terminal Graphics Protocol (TGP).
  • 🧜 Mermaid Diagrams: Full support for Mermaid diagrams (flowcharts, sequence diagrams, etc.) rendered directly in the terminal.
  • 📝 Obsidian-Style Callouts: Support for > [!INFO] and > **Type** callouts with automatic icons and distinct styling.
  • 🎨 Visual Styles & Themes: Multiple built-in styles (Obsidian, Cyberpunk, Retro, Blueprint, Minimal) and color themes (Gruvbox, Nord, Dracula, etc.).
  • ⌨️ Vim-like Navigation: Navigate with j/k, gg/G, Ctrl+U/D for smooth scrolling.

🚀 Installation

Using pip

pip install flint-markdown-viewer

Using pipx (Recommended for CLI tools)

pipx install flint-markdown-viewer

Using uv (Fastest)

# One-time run
uvx --from flint-markdown-viewer flint your-file.md

# Or install globally
uv tool install flint-markdown-viewer

📖 Usage

Simply run flint followed by the path to your Markdown file:

flint your-file.md

Key Bindings

Key Action
q Quit
j / k Scroll Down / Up
g / G Scroll to Top / Bottom
Ctrl+U / Ctrl+D Scroll Half Page Up / Down
Ctrl+P Open Command Palette (Switch Styles/Themes)

🛠️ Configuration

The app follows XDG standards:

  • Config Directory: ~/.config/textual-md-viewer/
  • Cache Directory: ~/.cache/textual-md-viewer/ (images and Mermaid diagrams)

Styles vs Themes

Flint has a two-layer visual customization system:

Themes (Color Schemes): Control the color palette of the app. Examples: gruvbox, nord, dracula, catppuccin. These are built into Textual and affect the overall color scheme across the entire interface.

Styles (Layout & Formatting): Control the visual layout, spacing, borders, typography, and overall aesthetic. Examples: Obsidian, Minimal, Blueprint, Retro, Cyberpunk. These are custom TCSS files in flint/styles/ that define how Markdown elements are displayed.

You can mix and match any theme with any style. Access both via the Command Palette (Ctrl+P).

⚠️ Known Issues

  • Initial Render: On first launch, you may need to trigger a mouse move or key press for the content to render properly. This is a known Textual framework issue with async rendering.
  • Style Switching: Switching between styles may occasionally require reloading the document to fully apply changes.

📝 Changelog

See CHANGELOG.md for version history and release notes.

🤝 Contributing

Contributions are welcome! Feel free to open an issue or submit a pull request.

📄 License

MIT License. See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flint_markdown_viewer-0.1.1.tar.gz (22.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

flint_markdown_viewer-0.1.1-py3-none-any.whl (23.8 kB view details)

Uploaded Python 3

File details

Details for the file flint_markdown_viewer-0.1.1.tar.gz.

File metadata

  • Download URL: flint_markdown_viewer-0.1.1.tar.gz
  • Upload date:
  • Size: 22.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for flint_markdown_viewer-0.1.1.tar.gz
Algorithm Hash digest
SHA256 7df15d714e53298ccba022cc0e23406059b4349f7566dcee99864968849d1946
MD5 49aec5765e0211b95333812b3d3c3fba
BLAKE2b-256 2178a83681e72c0af6c7b95e65885d716508ec34f41a598317032ad34c658c4c

See more details on using hashes here.

File details

Details for the file flint_markdown_viewer-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for flint_markdown_viewer-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ed7e9b910694b2769cb9bdb13897d746566f5be76a832f4876491d0d6a34dfea
MD5 2fb80191797735a58d213acc056234b6
BLAKE2b-256 aee959cf5b3be86e2807d00ba8d7ae92c2ceed585e21c28d10833a46a89ffd12

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page