Meow

December 14, 2025 ยท View on GitHub

Meow

Meow is a terminal printing tool that uses a headless Neovim instance to handle syntax highlighting. It provides a simple way to get editor-quality colors in your terminal using your local colorscheme without managing separate bat or pygments configs.

Preview

https://github.com/user-attachments/assets/298e6135-b01e-454f-bbed-0f363dce52fa

Features

  • Neovim Highlighting: Uses Neovim's syntax engine and your active MEOW_THEME or system colorscheme.
  • Parallel Processing: Multithreaded rendering for high performance.
  • Built-in Pager: Interactive TUI pager for files that exceed terminal height.
  • Raw Streaming: cat-equivalent speed for binary files and devices (e.g., /dev/input/mice).
  • Fast Mode: Automatically skips highlighting for large files to eliminate latency.

Installation

NixOS / Home Manager (Flake)

Add meow to your flake.nix inputs:

inputs.meow.url = "github:datsfilipe/meow";

Then add it to your system packages:

environment.systemPackages = [
  inputs.meow.packages.${pkgs.system}.default
];

Cargo

cargo install rmeow

Usage

# standard highlight (uses Neovim)
meow src/main.rs

# multiple files (parallel processing)
meow src/*.rs

# force highlighting on large files (bypass fast path)
meow -f assets/huge_file.lua

# raw device streaming (zero overhead)
meow /dev/input/mice

Benchmarks

1. Syntax Highlighting (Large File)

CommandTimeResult
meow --force-color~199.2 ms1.0x (Winner)
bat --color=always~1.476 s7.41x slower

2. Standard Printing (Fast Path)

CommandTimeResult
bat~12.7 ms1.0x (Winner)
meow~52.9 ms4.16x slower

3. Raw Throughput (Streaming /dev/input/mice for 5 seconds)

CommandData MovedEfficiency
cat101,232 bytes100%
meow103,323 bytes~100%

Acknowledgements

  • nvim-cat - inspiration for the initial idea of this project.

License

This project is licensed under the MIT License.