TrickWork

TrickWork

Docker app from junkerderprovinz's Repository

Overview

TrickWork turns your images into proportional-font-aware ASCII art - a rebuild of the abandoned ASCII Gen 2, with a live interactive preview and TXT/XHTML/RTF/PNG export. Characters are picked by how much visual "ink" they actually cover at your chosen font, not just by brightness, so proportional (non-monospace) fonts render correctly instead of looking stretched or squashed. Nine of ASCII Gen 2's own original character ramps are built in, weighting mechanic included: repeat a character in the ramp and it claims proportionally more of the brightness range, exactly like the original. Fully stateless - no database, no accounts, nothing to configure beyond the port.

TrickWork

CI  Container build  Docker Pulls  Downloads  Arch  Wails desktop  Unraid  License: AGPL-3.0


TrickWork turns your images into proportional-font-aware ASCII art, with a live interactive preview and TXT / XHTML / RTF / PNG export. It's the feature set of the abandoned ASCGen2, rebuilt: characters are picked by how much visual "ink" they cover at your chosen font, not just by brightness, so proportional (non-monospace) fonts render correctly instead of looking stretched or squashed.

Ships two ways from one shared TypeScript/Canvas core, so the desktop app and the self-hosted container are always pixel-for-pixel the same tool: a desktop app for Windows, macOS and Linux (via Wails) and a self-hosted Docker container (with an Unraid Community Applications template). Stateless: no database, no accounts, nothing to configure beyond the port.


Install from Unraid's Community Applications   Run it with Docker   Download the source archive   Read the documentation


Download for WindowsDownload for Windows on ARMDownload the portable Windows app   Download for macOS   Download for LinuxDownload for Linux on ARM
Always downloads the latest build


A one-knight job: I build it, keep it running, work through the issues and add what people ask for, until nothing is missing. It is free, with no accounts, no telemetry, no ads and no paid tier. No asterisk anywhere. Nothing readable ever leaves your own walls. Forged on evenings and weekends, with heart and stubbornness.

If it has earned a place on your server or computer, toss a coin to your knight: it helps cover the costs and keeps the project alive. It also makes this knight's heart beat a little faster. Three ways below, whichever suits you.


Buy me a coffee   PayPal   Donate with crypto


Table of Contents

  1. What it looks like
  2. What it does
  3. How it compares
  4. Getting started
  5. Documentation
  6. How AI is used here
  7. Support this project

1. What it looks like

TrickWork in a browser window at nas.local:3210, turning a knight's helmet into ASCII art
The container: open it in any browser, drop a picture and the preview follows every slider.


The TrickWork desktop app showing the knight's helmet as ASCII art beside the Transform and Filters cards
The desktop app for Windows, macOS and Linux is the same tool in a window of its own.


The Look tab of TrickWork's settings with shape, theme, animations, labels and rainbow colours
In Settings you pick the shape, the theme, the accent colour and one of 26 languages.


2. What it does

  • Characters picked by ink, not by brightness. TrickWork measures how much of each character is inked at the font you chose, so proportional fonts come out right instead of stretched or squashed.
  • A live preview. Every slider, the character set and the font update it at once.
  • Image adjustments. Crop, rotate and flip, levels, brightness and contrast, invert, dithering, colour output and sharpening, all with undo and redo.
  • A batch queue. Drop several images at once; each converts and exports on its own, and one bad file never blocks the rest.
  • Four export formats. TXT, a styled XHTML document, RTF and a rendered PNG, the one format that keeps a proportional font's look exactly.
  • Ten character sets. Nine of ASCGen2's original ramps, a 70-character detailed ramp, or a string of your own.

The full list is on the Start here page of the documentation.


3. How it compares

Every actively-maintained image-to-ASCII tool (chafa, ascii-image-converter, jp2a, img2txt/libcaca) is CLI-only, monospace-only, and has no live preview. ASCGen2 (the direct inspiration for this project, C#/.NET, GPLv2, last updated 2015) had all three of those (proportional-width awareness, a real-time GUI, multi-format export), and nothing since has replaced it. TrickWork is that combination, rebuilt from scratch.


4. Getting started

  • Desktop app: pick your system from the buttons at the top. Windows may warn about an unsigned download the first time; click More info, then Run anyway.

  • Docker:

    docker run -d --name trickwork --restart unless-stopped -p 3210:3210 ghcr.io/junkerderprovinz/trickwork:latest
    

    Then open http://localhost:3210/. No environment variables, no volumes.

  • Unraid: open Apps, search for TrickWork and install it from Community Applications.

Updates, the requirements and the Unraid template by hand are on the installing page.


5. Documentation

The documentation site has the full guide:


6. How AI is used here

One knight builds this, and AI is one of the tools I work with, the same way I work with an editor or a compiler. It helps me write code and documentation and it checks my work, and that saves me a good many evenings. It does not make the decisions, though. I read and understand everything before it ships, and if something here breaks, that is on me and not on the tool.

You do not have to take my word for it. The code is open and every release note is written by hand. The issue tracker shows how problems actually get handled, including the ones I got wrong the first time. If you find something that is not right, open an issue and I will look at it.


7. Support this project

Bugs, ideas or feature requests? Please open a GitHub issue.

A one-knight job: I build it, keep it running, work through the issues and add what people ask for, until nothing is missing. It is free, with no accounts, no telemetry, no ads and no paid tier. No asterisk anywhere. Nothing readable ever leaves your own walls. Forged on evenings and weekends, with heart and stubbornness.

If it has earned a place on your server or computer, toss a coin to your knight: it helps cover the costs and keeps the project alive. It also makes this knight's heart beat a little faster. Three ways below, whichever suits you.

Buy me a coffee   PayPal   Donate with crypto

Download Statistics

1,950
Total Downloads

Related apps

Details

Repository
ghcr.io/junkerderprovinz/trickwork:latest
Last Updated2026-09-05
First Seen2026-08-19

Runtime arguments

Web UI
http://[IP]:[PORT:3210]/
Network
bridge
Privileged
false
Extra Params
--restart unless-stopped

Template configuration

WebUI PortPorttcp

Port the TrickWork web interface listens on.

Target
3210
Default
3210
Value
3210
Port (PORT)Variable

Container-internal port the app listens on. Must match the WebUI Port above. Advanced - leave as 3210.

Target
PORT
Default
3210
Value
3210