Troubleshooting
Common issues and solutions when using gummyworm.
Installation Issues
"command not found: gummyworm"
Cause: gummyworm is not in your PATH.
Solutions:
-
If installed via Homebrew:
brew link gummyworm
# Or reinstall
brew reinstall gummyworm -
If installed manually:
# Add to PATH in ~/.bashrc or ~/.zshrc
export PATH="$PATH:/path/to/gummyworm/bin"
source ~/.bashrc -
Run with full path:
/path/to/gummyworm/bin/gummyworm --version
"ImageMagick not found" / "convert: command not found"
Cause: ImageMagick is not installed or not in PATH.
Solutions:
# macOS
brew install imagemagick
# Ubuntu/Debian
sudo apt install imagemagick
# Fedora
sudo dnf install ImageMagick
# Verify installation
convert --version
"bash: ./gummyworm: Permission denied"
Cause: Script is not executable.
Solution:
chmod +x gummyworm bin/gummyworm
"bash: ./gummyworm: /bin/bash: bad interpreter"
Cause: Wrong line endings (Windows CRLF instead of Unix LF).
Solution:
# Convert to Unix line endings
sed -i 's/\r$//' gummyworm bin/gummyworm lib/*.sh
# Or using dos2unix
dos2unix gummyworm bin/gummyworm lib/*.sh
Shell version too old
Cause: gummyworm requires Bash 3.2+ or zsh 5.0+.
Check your version:
# Check Bash version
bash --version
# Check zsh version
zsh --version
Solution for very old systems:
# Install newer Bash (macOS)
brew install bash
# Or use zsh (macOS default shell since Catalina)
zsh /path/to/gummyworm photo.jpg
Image Processing Issues
"Not a valid image file"
Cause: The file is not a supported image format or is corrupted.
Solutions:
-
Check file type:
file photo.jpg
# Should show: JPEG image data, ... -
Verify ImageMagick can read it:
identify photo.jpg -
Supported formats: JPEG, PNG, GIF, BMP, TIFF, WebP, and most formats ImageMagick supports.
"Failed to download image from URL"
Cause: Network issues, invalid URL, or server blocking requests.
Solutions:
-
Check URL is accessible:
curl -I "https://example.com/image.jpg" -
Download manually first:
curl -o image.jpg "https://example.com/image.jpg"
gummyworm image.jpg -
Check for URL encoding issues:
# Quote URLs with special characters
gummyworm "https://example.com/path/image%20name.jpg"
Output looks squashed or stretched
Cause: Your terminal's character cell is a different shape than gummyworm assumes. It defaults to cells 2.0x taller than wide; if your line spacing differs, everything comes out proportionally wrong by that difference.
Solution: Set --char-aspect to match
your terminal.
# Output too wide / squashed flat? Your cells are less tall than assumed
gummyworm --char-aspect 1.67 photo.jpg
# Output too tall / stretched? Raise it
gummyworm --char-aspect 2.2 photo.jpg
To find your value, render something you know is round and adjust until it looks round:
# A test circle
magick -size 400x400 xc:white -fill black -draw "circle 200,200 200,20" circle.png
gummyworm circle.png -w 60
Once it looks right, make it permanent with char_aspect in your
config file.
Before v2.3.0 the assumed ratio was 2.2, which rendered most output about 11%
wider than it should be. If you had compensated for that by hand, you can
restore the old behaviour with --char-aspect 2.2.
Still distorted? Check your terminal is using a genuinely monospace font — Consolas, Fira Code, JetBrains Mono. A proportional font cannot be corrected with any ratio, because its glyph widths vary.
Image is too dark or too light
Solutions:
-
Try inverting:
gummyworm -i photo.jpg -
Use a higher contrast palette:
gummyworm -p blocks photo.jpg
gummyworm -p binary photo.jpg -
Pre-process the image:
# Increase contrast with ImageMagick
convert photo.jpg -contrast-stretch 2%x2% enhanced.jpg
gummyworm enhanced.jpg
Display Issues
Unicode/emoji characters showing as boxes or ?
Cause: Terminal or font doesn't support the characters.
Solutions:
-
Use ASCII-only palette:
gummyworm -p standard photo.jpg
gummyworm -p detailed photo.jpg -
Install emoji font:
- macOS: Apple Color Emoji (built-in)
- Linux:
sudo apt install fonts-noto-color-emoji - Windows: Segoe UI Emoji (built-in)
-
Use a modern terminal:
- macOS: iTerm2, Kitty
- Linux: GNOME Terminal, Konsole, Kitty
- Windows: Windows Terminal
-
Check terminal encoding:
echo $LANG
# Should include UTF-8, e.g., en_US.UTF-8
Colors not showing in terminal
Cause: Terminal doesn't support 256 colors, or colors are disabled.
Solutions:
-
Check terminal color support:
echo $TERM
# Should be xterm-256color or similar
# Test 256 colors
for i in {0..255}; do printf "\e[38;5;${i}m%3d " $i; done; echo -
Set correct TERM:
export TERM=xterm-256color -
Ensure
-cflag is used:gummyworm -c photo.jpg
ANSI codes visible as text (e.g., [38;5;196m)
Cause: Viewing ANSI output in a context that doesn't interpret escape codes.
Solutions:
-
View in terminal:
cat output.ans
less -R output.ans -
Export to HTML instead:
gummyworm -c -f html -o output.html photo.jpg
Emoji output misaligned
Cause: Emoji are typically double-width characters.
Solutions:
-
Use smaller width:
gummyworm -p emoji -w 40 photo.jpg -
Use a terminal with good emoji support: iTerm2, Windows Terminal
Export Issues
HTML/SVG looks wrong in browser
Solutions:
-
Check the file was saved completely:
head -20 output.html # Should show DOCTYPE
tail -5 output.html # Should show closing tags -
Ensure color mode was enabled:
gummyworm -c -f html -o output.html photo.jpg
PNG or GIF export fails
Cause: No SVG renderer installed. Both formats are produced by rendering SVG and rasterising it, and ImageMagick cannot rasterise SVG on its own — installing ImageMagick does not bring a renderer with it.
Since v2.3.0 gummyworm checks for this before doing any work and tells you so.
Older versions failed at the end with Failed to convert SVG to PNG.
Solution: Install librsvg, which provides rsvg-convert.
# macOS
brew install librsvg
# Ubuntu / Debian
sudo apt install librsvg2-bin
# Fedora
sudo dnf install librsvg2-tools
# Arch
sudo pacman -S librsvg
Reinstalling ImageMagick does not fix this, and magick -list format | grep SVG
is not a useful check — it reports SVG as supported either way. Homebrew's
ImageMagick is built without librsvg linked in, so it renders SVG with its own
built-in renderer, which fails on the font. rsvg-convert is what actually
does the work.
Alternatives that need no renderer: svg and html export are pure text
and always work.
gummyworm -c -f svg -o art.svg photo.jpg
Output file is empty
Cause: Error during processing, or wrong output path.
Solutions:
-
Check for errors (remove quiet mode):
gummyworm photo.jpg # Look for error messages -
Verify image is valid:
identify photo.jpg -
Check output path is writable:
touch /path/to/output.txt # Test write permission
Performance Issues
Processing is very slow
Cause: Very large images or complex processing.
Solutions:
-
Reduce output dimensions:
gummyworm -w 60 huge-image.jpg -
Pre-resize the image:
convert huge.jpg -resize 800x800 smaller.jpg
gummyworm smaller.jpg -
Skip color processing:
gummyworm photo.jpg # Without -c flag
High memory usage with batch processing
Solutions:
-
Process files one at a time:
for f in photos/*.jpg; do
gummyworm -o "output/$(basename "$f" .jpg).txt" "$f"
done -
Use
--continue-on-errorto avoid stopping on failures:gummyworm --continue-on-error -d ./output/ photos/*.jpg
Getting Help
Debug Mode
Get more verbose output for troubleshooting:
# Check dependencies
gummyworm --version
which convert
convert --version
# Test with a simple image
gummyworm -w 20 -p simple test.jpg
Reporting Issues
When reporting a bug, include:
- gummyworm version:
gummyworm --version - OS and version:
uname -a - Bash version:
bash --version - ImageMagick version:
convert --version - The exact command that failed
- The full error message
- A sample image (if possible)
File issues at: https://github.com/oddurs/gummyworm/issues