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.

📸 Screenshots

Screenshot 1 Flint with default Obsidian style

Screenshot 2 Retro style theme showcase

Screenshot 3 Cyberpunk style theme showcase

Screenshot 4 Interactive tables rendered as native Textual DataTable widgets

Screenshot 5 High-resolution image rendering with Terminal Graphics Protocol

Screenshot 6 Mermaid diagram rendered natively in the terminal

Screenshot 7 Obsidian-style callouts with automatic icons

✨ 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.2.tar.gz (22.9 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.2-py3-none-any.whl (24.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: flint_markdown_viewer-0.1.2.tar.gz
  • Upload date:
  • Size: 22.9 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.2.tar.gz
Algorithm Hash digest
SHA256 b3b03726ed0a875bed9bdb064ec48f2ac12f68a45fdaaf5aa86c42542fc38a3f
MD5 baf60f02187a2150bb818e2973049236
BLAKE2b-256 aab02bc83da9a47684957988118e948ad18e8daae66dbc6be8c1df8042df44ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flint_markdown_viewer-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ac511987687ab642e842c7f24ac0d22639736afb24c90dd706f656fdd9cb007f
MD5 17b30c3cbceeb10293f1727ed1ffce93
BLAKE2b-256 4a1884a276393f5e53bc209c37b33a71f4d46963d92ea0afd2b8f4d3007c9e32

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