A Neovim plugin that adds image support using Kitty's Graphics Protocol, Überzug++, or Sixel.
image.nvim is a Neovim plugin that adds image rendering capabilities directly within the editor. It enables users to view images inside Neovim for markdown, Neorg, and other document formats by handling the complexity of terminal graphics protocols. The plugin abstracts away the low-level details, providing a seamless experience for developers who work with image-rich documentation or notes.
Neovim users who work with image-rich documentation, notes, or markup files (like Markdown, AsciiDoc, Neorg, reStructuredText, Typst, HTML, or CSS) and want to view images directly in their terminal-based editor. It is particularly useful for developers using Kitty, Tmux, or other compatible terminals.
Developers choose image.nvim because it offers a unified and configurable interface for image rendering in Neovim with multiple backend support (Kitty, Überzug++, Sixel) for broad terminal compatibility. Its unique selling point is first-class Tmux support and built-in integrations for various document formats, abstracting away the complexities of terminal graphics protocols while prioritizing performance and flexibility.
🖼️ Bringing images to Neovim.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports Kitty for best performance, Überzug++ for broad terminal compatibility, and Sixel for protocol variety, allowing users to adapt to their terminal setup.
Integrates natively with Markdown, Neorg, AsciiDoc, reStructuredText, Typst, HTML, and CSS, reducing configuration overhead for common file types.
Includes cursor-only rendering to display images only when the cursor is over them, improving efficiency in image-rich documents.
Offers first-class support for Tmux with clear configuration steps, enabling seamless image rendering in multiplexed terminal sessions.
Requires multiple dependencies (ImageMagick, terminal backend) and OS-specific installation steps, which can be time-consuming and prone to errors.
Performance varies significantly; Überzug++ has 'much lower performance' and Sixel has 'pretty crap performance,' making non-Kitty terminals less optimal for smooth rendering.
Optimal use is confined to Kitty terminal; other terminals like WezTerm have known compatibility issues and are not officially supported, restricting user choice.