Skip to content

Amansingh-afk/milli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

milli

Pixel-perfect animated ASCII art. Images, GIFs, video frames — in your terminal, in the browser playground, or baked into Go / Lua / JSON for embedding in TUIs and Neovim dashboards.

demo

Try in Browser npm GitHub stars License

No install. Drop an image or GIF into the web playground and grab the ASCII / .milli / Go / Lua / JSON output instantly. Same engine as the CLI, all browser-side.

Install

npm install -g @amansingh-afk/milli

Or one-shot without install:

npx @amansingh-afk/milli image pic.png

Requires Node 18+ and a terminal with truecolor (COLORTERM=truecolor). Most modern terminals qualify.

Quick start

# zero-friction: bundled samples ship with the npm package
milli play fire
milli fastfetch jellyfish --no-bg        # animated logo + fastfetch info, single command

# render any image to ASCII
milli image pic.png

# animated GIF in the terminal
milli play anim.gif

# bake a GIF into a fast-loading .milli file (no sharp at playback time)
milli convert anim.gif anim.milli
milli play anim.milli

# export frames as Lua for Neovim dashboards (use with milli.nvim)
milli export anim.gif ./out -t lua -w 60 --no-bg

# export frames as Go for Bubbletea splashes
milli export anim.gif ./out -t go -p bootsplash -w 50

milli fastfetch jellyfish — bundled animation in fastfetch's logo column, info on the right:

fastfetch-jellyfish

Documentation

Doc What's in it
CLI reference All commands (image / play / convert / export), flags, render modes, export targets
Recipes Neovim splash, terminal screensaver, shell MOTD, tmux pane, React embed, Bubbletea, animated fastfetch
Library API Programmatic API, .milli format spec, supported input formats
FAQ Performance, aspect ratio, transparency, browser usage, common gotchas

How it compares to chafa

chafa is the quality floor for "image → terminal." milli adds:

  • Pre-baked format.milli for instant playback, ship with your app
  • Source export — Go / Lua / JSON for embedding (chafa is a binary)
  • Programmatic API — use as a Node library
  • Browser bundle — decode + render .milli in React, no Node deps
  • Neovim integration — first-party dashboard plugin
  • Truecolor glyph matching — match mode uses per-glyph MSE, not just dominant color per cell

If you want a one-shot terminal render and chafa is installed — chafa is great. If you want to embed ASCII animation in your product (TUI splash, nvim dashboard, animated fastfetch, dashboard widget), milli is built for that.

Non-goals

  • Not a terminal image protocol. Sixel, kitty, iTerm2 inline images draw pixels. milli draws glyphs.
  • Not a TUI framework. Use ink / blessed / bubbletea / ratatui. milli is a widget.
  • No streaming / webcam. Offline clips only.

License

MIT.

About

Pixel-perfect animated ASCII art engine. Render images and GIFs to your terminal, or export as Go / Lua / JSON for embedding in TUIs and Neovim dashboards

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors