Bat Cat
A cat clone with syntax highlighting, line numbers, and Git integration - a modern replacement for cat.
A cat clone with syntax highlighting, line numbers, and Git integration - a modern replacement for cat.
Real data. Real impact.
Emerging
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
cat with syntax highlighting, line numbers, and Git integration.
# View file with syntax highlighting bat README.mdMultiple files
bat file1.js file2.py
With line numbers (default)
bat script.sh
Without line numbers
bat -p script.sh
# Plain mode (like cat) bat -p file.txtShow non-printable characters
bat -A file.txt
Squeeze blank lines
bat -s file.txt
Paging (auto for large files)
bat --paging=always file.txt bat --paging=never file.txt
# Auto-detect from extension bat script.pyForce specific language
bat -l javascript config.txt
Show all languages
bat --list-languages
# List available themes bat --list-themesUse specific theme
bat --theme="Monokai Extended" file.py
Set default theme in config
~/.config/bat/config: --theme="Dracula"
# Show specific lines bat -r 10:20 file.txtFrom line to end
bat -r 100: file.txt
Start to specific line
bat -r :50 file.txt
Multiple ranges
bat -r 1:10 -r 50:60 file.txt
# Show Git modifications (added/removed/modified lines) bat --diff file.txtShow decorations (Git + file header)
bat --decorations=always file.txt
# Output raw (no styling) bat --style=plain file.txtCustomize style
bat --style=numbers,changes file.txt
Available styles: auto, full, plain, changes, header, grid, numbers, snip
bat --style=header,grid,numbers file.txt
Quick file preview:
bat file.json
View logs with syntax highlighting:
bat error.log
Compare files visually:
bat --diff file1.txt bat file2.txt
Preview before editing:
bat config.yaml && vim config.yaml
Cat replacement in pipes:
bat -p file.txt | grep "pattern"
View specific function:
bat -r 45:67 script.py # If function is on lines 45-67
As pager for man pages:
export MANPAGER="sh -c 'col -bx | bat -l man -p'" man grep
With ripgrep:
rg "pattern" -l | xargs bat
With fzf:
fzf --preview 'bat --color=always --style=numbers {}'
With diff:
diff -u file1 file2 | bat -l diff
Create
~/.config/bat/config for defaults:
# Set theme --theme="Dracula"Show line numbers, Git modifications and file header, but no grid
--style="numbers,changes,header"
Use italic text on terminal
--italic-text=always
Add custom mapping
--map-syntax "*.conf:INI"
-p for plain mode when piping--paging=never when output is used programmaticallybat caches parsed files for faster subsequent accessalias cat='bat -p' for drop-in cat replacementexport PAGER="bat"batcat instead of bat~/.config/bat/syntaxes/bat --paging=never or plain cat-p / --plain: Plain mode (no line numbers/decorations)-n / --number: Only show line numbers-A / --show-all: Show non-printable characters-l / --language: Set language for syntax highlighting-r / --line-range: Only show specific line range(s)GitHub: https://github.com/sharkdp/bat Man page:
man bat
Customization: https://github.com/sharkdp/bat#customizationNo automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.