Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Esolangs
  3. Charcoal

Charcoal

MITPython

A concise language for sketching ASCII art using a Python-based REPL and directional printing.

GitHubGitHub
227 stars9 forks0 contributors

What is Charcoal?

Charcoal is a concise language specifically designed for sketching ASCII art. It allows users to create text-based graphics using a simple syntax with implicit printing and directional controls, making it easy to generate visual output directly from code.

Target Audience

Developers, artists, or hobbyists interested in creating ASCII art programmatically, especially those looking for a lightweight, interactive tool for text-based graphics.

Value Proposition

Charcoal offers a minimalistic, expressive syntax that reduces the complexity of ASCII art creation, with a REPL for immediate feedback and directional printing for dynamic designs.

Overview

A concise language for sketching ASCII art.

Use Cases

Best For

  • Creating quick ASCII art sketches in a REPL environment
  • Learning domain-specific languages for text-based graphics
  • Prototyping visual designs using command-line tools
  • Generating directional ASCII patterns (e.g., arrows, lines)
  • Educational projects on creative coding with Python
  • Building simple ASCII-based diagrams or logos

Not Ideal For

  • Projects requiring colored or animated ASCII art with advanced styling
  • Teams needing extensive documentation, community support, or integration with non-Python systems
  • Users who prefer GUI-based tools over code for creating complex, multi-page graphics

Pros & Cons

Pros

Implicit Printing

Expressions are automatically printed without explicit commands, as shown where 'foo' directly outputs 'foo', simplifying code for quick sketching.

Directional Control

Uses arrows like ↖ to dynamically change printing direction, enabling complex ASCII patterns such as diagonal lines, as demonstrated in the examples.

Interactive REPL

Provides a real-time environment for experimenting with ASCII art, allowing immediate feedback and iteration without compiling or saving files.

Minimal Syntax

Relies on simple literals and superscript numbers, reducing the learning curve for basic ASCII art creation, as seen with strings like 'foo' and numbers like ¹²³⁴.

Cons

Sparse Documentation

README has incomplete sections with 'TODO' comments and a limited FAQ, lacking detailed guides or examples for advanced usage.

Python 3 Dependency

Requires Python 3 installation and can throw UTF-8 encoding errors, as noted in the FAQ, which may cause setup frustrations for users.

Limited Feature Set

Focuses only on basic ASCII art with strings and arrows, missing features like color support, file export, or advanced shape libraries.

Frequently Asked Questions

Quick Stats

Stars227
Forks9
Contributors0
Open Issues1
Last commit1 year ago
CreatedSince 2016

Tags

#domain-specific-language#command-line-tool#repl#ascii-art#python#creative-coding#esoteric-language#sketching#text-graphics

Built With

P
Python

Included in

Esolangs582
Auto-fetched 1 day ago

Related Projects

jsFuckjsFuck

Write any JavaScript with 6 Characters: []()!+

Stars8,593
Forks678
Last commit1 year ago
VigilVigil

Vigil, the eternal morally vigilant programming language

Stars3,035
Forks63
Last commit3 years ago
Enterprise™Enterprise™

🦄 The Enterprise™ programming language

Stars1,617
Forks37
Last commit3 years ago
FetlangFetlang

Fetish-themed programming language

Stars1,500
Forks35
Last commit2 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub