Hans Petter Jansson

hpjansson.org · Personal blog · on HN since 2018

Hans Petter Jansson is a GNOME developer and the author of Chafa, a tool that renders images in terminals.

What HN saysHN commenters recommend Chafa as the best terminal image renderer, citing its support for Sixel, Kitty and Unicode symbols.
27HN people shared it
16linked it in comments
15stories submitted
1.2Kstory points
8 months agolast shared
2018people per year2026

Most-shared posts

  1. 1
    Chafa: Terminal Graphics for the 21st Century
    12 people · 230 points · first shared 2018 · 33 comments on HN
  2. 2
    On the Graying of Gnome
    5 people · 147 points · first shared 2020 · 262 comments on HN
  3. 3
    A hash table re-hash
    3 people · 22 points · first shared 2018 · 5 comments on HN
  4. 4
    Adventure game graphics with DALL-E 2
    2 people · 428 points · first shared 2022 · 158 comments on HN
  5. 5
    Chafa 1.8: Terminal graphics with a side of everything
    2 people · 137 points · first shared 2021 · 23 comments on HN
  6. 6
  7. 7
    Gallery
    2 people · first shared 2024
  8. 8
    Gnome Turns 25
    1 people · 133 points · first shared 2022 · 182 comments on HN
  9. 9
    Balance of Power: A rematch served cold
    1 people · 3 points · first shared 2022 · discussion on HN
  10. 10
    Chafa 1.6.0: Wider
    1 people · 2 points · first shared 2021 · discussion on HN
  11. 11
    Battle of the Bilerps: Image Scaling on the CPU
    1 people · 2 points · first shared 2019 · discussion on HN
  12. 12
    On the graying of gnom
    1 people · first shared 2022
  13. 13
    Chafa 1 14 all singing all dancing
    1 people · first shared 2024

What HN people wrote when they linked it

QuantumNomad_ · 2026-03-16
It uses a program called Chafa to render the video. https://hpjansson.org/chafa/ Hadn’t heard of Chafa before. Chafa supports outputting to all popular terminal graphics formats according to the Chafa website: Sixels, Kitty, iTerm2, Unicode mosaics. Speaking of which it is also worth to point out that for example sixels were first invented and put into use quite early on: > […] as a way to send bitmap data to the VT200 series and VT320 terminals when defining custom character sets. https://en.wikipedia.org/wiki/Sixel In the references if that Wikipedia article you see for example VT330/VT340 Programmer Reference Manual, Volume 2: Graphics Programming from May 1988. https://www.vt100.net/docs/vt3xx-gp/chapter14.html
wonger_ · 2026-01-17
Great breakdown and visuals. Most ASCII filters do not account for glyph shape. It reminds me of how chafa uses an 8x8 bitmap for each glyph: https://github.com/hpjansson/chafa/blob/master/chafa/internal/chafa-sy… There's a lot of nitty gritty concerns I haven't dug into: how to make it fast, how to handle colorspaces, or like the author mentions, how to exaggerate contrast for certain scenes. But I think 99% of the time, it will be hard to beat chafa. Such a good library. EDIT - a gallery of (Unicode-heavy) examples, in case you haven't seen chafa yet: https://hpjansson.org/chafa/gallery/
capitainenemo · 2024-04-16
IMO the best results out there are with chafa right now. https://hpjansson.org/chafa/gallery/ It also has some basic ffmpeg support. And yeah, there are sixels and native rendering of graphics in terminals, but I still find this handy if I'm a couple of tmux sessions deep on a remote server and I need to figure out which graphic is which.
Klasiaster · 2020-10-25
Next level: https://hpjansson.org/chafa/ which finds unicode symbols that approximate the content best.
runnerup · 2023-03-25
People with a good understanding of different styles of art and framing/angles/etc should be able to create the "right" prompts for a customer much much faster and get better results than people who don't know art. Generative AI like Midjourney will completely upend the art industry (it already is). But I don't think it's the death knell for the study of art. Here's a solid example of that in the context of creating game assets for a retro computer game: https://hpjansson.org/blag/2022/08/16/adventure-game-graphics-with-dal… The author clearly has actually studied art and is able to come up with prompts and concepts that I'd never be able to dream up. They're able to get the AI to generate what they want immediately with specific prompts like: > "mexican hacienda on a sunny day, surrounded by plains, color painting by Charles Sheeler" I have no idea who Charles Sheeler is. But if someone knows 1,500 different artists/photographers/genres/styles and the nuances of them, they can immediately select the right look for the client. It's not a panacea that will allow artists to keep doing what they love, but it is a bright spot and something to focus on for what the future skillset looks like for those who generate art. [0]: https://hpjansson.org/blag/2022/08/16/adventure-game-graphics-with-dal…
Instantnoodl · 2026-01-18
In the "Image to Terminal character" space this is also a known solution. Map characters to their shape and then pick the one with the lowest diff to the real chunk in the image. If you consider that you have a foreground and a background colour you can get a pretty close image in the terminal :D https://hpjansson.org/chafa/ My go version: https://github.com/BigJk/imeji
jmholla · 2026-01-13
You could also take a look at chafa[0] for supporting terminals without sixel. [0]: https://hpjansson.org/chafa/
jazzyjackson · 2025-01-03
How do you judge performance of a terminal ? I know graphics in the terminal is an edge case and all but when I'm running a chafa [0] application Windows terminal on Windows is about 1000x slower than alacritty on mac, I run into issues where if I hold down a key all the key events get queued up as if the graphics thread is blocking the applications ability to react to key events, so I just have to baby it and hit one key at a time. [0] https://hpjansson.org/chafa/
ploum · 2023-12-01
This could be achieved with chafa.py : https://chafapy.mage.black/ https://hpjansson.org/chafa/
csdvrx · 2021-11-14
By the same author, the 1FB00 unicode block: https://unicode.org/charts/PDF/U1FB00.pdf I think it's even more interesting, as it will improve the textual rendition of graphics for people who can't use sixels. See also Chafa https://hpjansson.org/blag/2021/09/16/chafa-1-8-terminal-graphics-with… for more details, and sixel-tmux https://github.com/csdvrx/sixel-tmux to transform sixels into unicode if your terminal doesn't support sixels. I'm waiting for 1FB00 support in Iosevka: https://en.m.fontke.com/font/131973120/charset/2201/
Flimm · 2021-09-18
Chafa is an open source project that lets you visualize images on the command-line by converting them to Unicode characters ("ASCII art") with colours. It's available in many Linux distros, as well as Homebrew for macOS. What a find! $ chafa example_image.jpg https://hpjansson.org/chafa/
mftb · 2021-06-27
I don't know if you'd call him a theorist, but I think this gentleman maintains GHashTable and I found his posts comparing/benchmarking widely used hash tables really informative and entertaining: https://hpjansson.org/blag/2018/07/24/a-hash-table-re-hash/
yjftsjthsd-h · 2021-03-24
Is GNOME as a community project? My reading of https://hpjansson.org/blag/2020/12/16/on-the-graying-of-gnome/ is that it is driven largely by Red Hat and to some degree other companies. To your general point (why attack the project): GNOME has a reputation (IMO deserved) for aggressively not caring about the opinions of users or outside projects (ex. https://news.ycombinator.com/item?id=23795901). So at some point it comes to "GNOME hates everyone else, so everyone else hates GNOME".
traverseda · 2021-01-13
Almost none of those are feature requests. I mean yes, the gnome developers do write code, and that code does get merged in. I don't understand what you're trying to prove by pointing that out. As you can see Gnome is mostly a redhat project these days: https://hpjansson.org/blag/2020/12/16/on-the-graying-of-gnome/ It's not surprising that things get merged when they come from redhat-affiliated developers.
evol262 · 2022-07-05
> I don't think we're going to reach and real agreements here, a lot of these things are going to be subjective. I think there's a certain amount of "if everyone around you is an asshole maybe you're actually an asshole" but I doubt I'm going to be changing anyone's minds today. I don't think we'll reach any real agreements either, but I also don't think it's all that subjective. We could say my perspective is skewed from being "behind the curtain" for a decade, but it's equally true that I'm dramatically more informed about the economics and realities of open source contributions due to it. Redhat was (and likely still is) a collection of engineers who are passionate about open source, and get paid to work on it. For a long, long time Redhat paid below the market average. It was not a place you went right out of college. It was a place where people who really gave a damn about open source went because the money was enough, and they got to work on something they felt was actually making software better. It wasn't some corporate machine, it wasn't particularly profit-driven, and it definitely wasn't somewhere where the engineers wanted to push some corporate vision of how Linux should be. As of maybe 2017 or 2018, we started hiring more "new grads" and pivoting more to cloud workloads (outside of what Openstack already had), but the fundamentals didn't really change. The perception of what Redhat is/was and what they actually were/are? is very different. It wasn't a…
DrStartup · 2022-05-10

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close