3 ms·
Chafa: Terminal Graphics for the 21st Century
- joouha 11mo agoI use chafa extensively, and it really is the best tool for terminal graphics in my opinion. I use it as a fallback option for terminals without proper terminal graphics support in my TUI Jupyter client, euporie. There are Python bindings available: https://github.com/GuardKenzie/chafa.py https://github.com/GuardKenzie/chafa.py
- wonger_ 11mo agoAnd JS bindings: https://github.com/hectorm/chafa-wasm https://github.com/hectorm/chafa-wasm And I'm half-working on Rust bindings...
- hectorm 11mo agoAuthor of the JS bindings here. I also have a browser demo: https://ansi-o-matic.molinero.dev https://ansi-o-matic.molinero.dev
- tasuki 11mo ago> and it really is the best tool for terminal graphics in my opinion Not sixel or kitty graphics?
- hecanjog 11mo agoWhat interests me about it is the unicode mosaic output format that looks higher quality than the usual upper half block or braille character approaches without needing to support a special protocol.
- robot-wrangler 11mo agoSetting aside the usual compatibility issues with those things.. neither are available from your buildbot. Also while Jupyter does supports images other notebooking ecosystems may not, and anyway you need a file whereas chafa can work with streams.
- mmulet 11mo agoOne of the really cool things about chafa is that it has both sixel and kitty graphic renderers! (and iterm2 images as well) So you can output kitty if the terminal supports it, but fall back to ascii if it doesn’t.
- tasuki 11mo agoAh, very cool!
- lawlessone 11mo agoi'm curious do you work entirely with a terminal and no desktop? Chafa looks cool, i'd feel cool using it when i use a terminal but if really wanted to see an image id just open it in a image viewer.
- Abishek_Muthian 11mo agoHave you tried Charmbracelet's bubble tea - https://github.com/charmbracelet/bubbletea https://github.com/charmbracelet/bubbletea
- nairadithya 11mo agoBubbleTea is great, but it doesn't have support for Kitty Graphics. https://github.com/charmbracelet/bubbletea/issues/163 https://github.com/charmbracelet/bubbletea/issues/163
- deleted 11mo ago[deleted]
- n0um3n4 11mo agoqué chafa!! all jokes aside, this provides infinite posibilities for my obsession with text-based apps/CLI.
- XorNot 11mo agoDiscovered this recently when I wanted to set my perfect retro feeling company logo onto the MOTD of some hardware so we'd have it on the serial port.
- atulvi 11mo agoWhy can't we have proper graphics on terminal? years ago I remember being able to use graphics.h to draw on MS-DOS terminal and print letters on it (text mode).
- d-lisp 11mo agoDid you try notcurses ? [0] [0] https://notcurses.com/ https://notcurses.com/
- aragilar 11mo agonotcurses is probably the best option for getting the best you can out of a random terminal (see https://github.com/dankamongmen/notcurses/blob/master/TERMINALS.md https://github.com/dankamongmen/notcurses/blob/master/TERMIN... which details the status of most terminals people use), but the main thing is to choose a decent terminal that meets your needs. I personally use xterm (after using various other terminals, both "modern" and VTE-based), as I'm on Linux, and I need to connect to various devices (e.g. networking gear) where I need a reliable terminal that handles whatever those devices throw at it. The graphical mechanisms that work for me therefore are sixel and tektronic.
- busfahrer 11mo agoRunning the included notcurses-demo on any half-modern terminal is really impressive: https://www.youtube.com/watch?v=b4lmMADP1lA https://www.youtube.com/watch?v=b4lmMADP1lA
- ilaksh 11mo agoMost popular terminals now have support for `kitty` graphics protocol which can smoothly and efficiently render raster images. So chafa is a way to get some backwards compatibility for some types of applications that want to show images but may not support that.
- aragilar 11mo agoThere are multiple graphics mechanisms on terminals (both real, and the virtual ones that have replaced them), the issue is which ones your terminal supports (probably none, given most terminal/libraries are bad at supporting features that have been around since the 80s), and which libraries you are using to draw them.
- duffyjp 11mo agoI threw together a utility for this with just the half character in 2018, I don't even remember why. https://rubygems.org/gems/barf https://rubygems.org/gems/barf The name does imply the image quality, fyi. My solution is also multithreaded, in Ruby. :D
- jazzyjackson 11mo agoI learned about Chafa when I found a video editor that runs in the command line with keyboard control - vic - it just lets you insert split markers and when you exit the video is sliced up into the portions. I really like the low-fi nature of scrobbling through the video, it has low brain overhead. https://github.com/wong-justin/vic https://github.com/wong-justin/vic
- jbaber 11mo agoWow. Thanks for this recommendation! I have multiple times half-baked something like this using ffmpeg to dump out thumbnails and make cuts.
- carterschonwald 11mo agoIf you want some hilarious insanity: t try explaining ascii/terminal rendering to a text llm and see how it struggles
- gnabgib 11mo agoPreviously in 2022 (97 points, 31 comments) https://news.ycombinator.com/item?id=32797681 https://news.ycombinator.com/item?id=32797681
- mmulet 11mo agoI use chafa in term.everything[0], and I have nothing but good things to say about it! hpjansson is a great maintainer too, if anything even seems like it's wrong with chafa he will chime in with a fix or a suggestion[1] (I'm not the only one he does this with too [2][3]). I would definitely recommend this lib for anyone doing terminal graphics. [0]https://github.com/mmulet/term.everything https://github.com/mmulet/term.everything [1]https://github.com/mmulet/term.everything/issues/5 https://github.com/mmulet/term.everything/issues/5 [2]https://lobste.rs/s/qh6lil/chafa_terminal_graphics_for_21st_century#c_ox9a91 https://lobste.rs/s/qh6lil/chafa_terminal_graphics_for_21st_... [3]https://github.com/wong-justin/vic/issues/1#issue-2586904982 https://github.com/wong-justin/vic/issues/1#issue-2586904982
- cherrycreek00 11mo agoI've been trying for like three hours to get this to show in-line images with w3m. Anyone got a config with that working?
- shiomiru 11mo agow3m doesn't support chafa for inline image display. (You can set a custom w3mimgdisplay command, but it has to speak the same protocol as w3mimgdisplay. If you're feeling adventurous, you can try modifying https://github.com/uobikiemukot/sdump/tree/master/yaimg-sixel https://github.com/uobikiemukot/sdump/tree/master/yaimg-sixe....)
- nickdothutton 11mo agoI'm currently using this for a teams/zoom/meet replacement for people who work in the terminal. Might even make it to a Show HN some day.
- hpjansson 11mo agoThis sounds amazing. I hope it does!