ASCII Charm is a powerful, interactive Go CLI + library for converting images into high‑quality ASCII art — with live tuning, multiple dithering algorithms, color support, and export formats ready for GitHub or the web.
Built with:
- ⚡ Go – blazing fast image processing
- 🎨 Charmbracelet (Bubble Tea + Lipgloss) – modern TUI experience
- 🖼 Disintegration/Imaging – high quality resizing
- 🧠 Advanced ASCII rendering engine
- 🎛 Live interactive TUI editor (arrow-key controlled)
- 🎨 Truecolor ANSI output
- 🖌 Multiple dithering algorithms:
- None
- Floyd-Steinberg
- Atkinson
- Riemersma
- Ordered 2×2
- Ordered 4×4
- Threshold
- 🔡 Multiple ASCII character sets
- 📁 Image picker with keyboard navigation
- ✍ Manual image path input
- 💾 Export formats:
- HTML
- Markdown (GitHub-compatible)
- Colored Markdown
Below is an example generated using ASCII Charm:
Example output generated by ASCII Charm:
View full ASCII artwork here: pic.md
go install github.com/M1chlCZ/asciicharm-go@latestOr clone directly:
git clone https://github.com/M1chlCZ/asciicharm-go
cd asciicharm-go
go buildasciicharm-go| Key | Action |
|---|---|
| ↑ / ↓ | Change selected value |
| ← / → | Switch parameter |
| s | Save as HTML |
| m | Save as Markdown |
| p | Enter manual image path |
| o | Pick another image |
| q | Quit |
ASCII Charm is also usable as a standalone image-to-ASCII generator.
import "github.com/M1chlCZ/asciicharm-go/pkg/ascii"img, _ := imaging.Open("image.png")
cfg := ascii.DefaultConfig()
cfg.Resolution = 0.3
cfg.Colored = true
cfg.Dithering = ascii.DitheringFloydSteinberg
result, err := ascii.ConvertImage(img, cfg)
if err != nil {
panic(err)
}
fmt.Println(result.ToANSI())result.ToHTML()
result.ToMarkdown()
result.ToMarkdownColored()- Terminal art generators
- GitHub README visualizers
- Retro UI builders
- Game engines / roguelike map renderers
- Static site art banners
- Creative coding tools
MIT License — free to use, modify, and share.
- Saved to bash scripts
- More dithering algorithms
- Webcam live ASCII
- GIF → ASCII animation
- Web UI frontend
- Shader-like filters
- Side-by-side preview mode
Made with ❤️ and too much coffee and zyn by Michal Žídek
If you find this project useful consider giving it a ⭐ on GitHub OR buy me a coffee:
