Command Line Tools
Command line utilities for developers, language learners, and other technical users.
See also: Computer Education , Teaching Materials
Publishing
Command line tools for publishing and documentation.
Gojekyll
A fast Go clone of the Jekyll static site generator.
gojekyll build
# Build site in current directory into _site
gojekyll build
# Serve the app with live reload
gojekyll serve
# Docker usage
docker run --user $UID:$GID -v $PWD:/app --pull always --rm -it danog/gojekyll build -s /app
Scrollshot2PDF
Convert scrolling screenshots to PDF.
scrollshot2pdf input_image.png
# Basic usage
scrollshot2pdf input_image.png
# With options for page size and margin
scrollshot2pdf input_image.png -o output.pdf --page-size a4 --margin 25mm --min-gap 100
# With columns
scrollshot2pdf input.png --columns 2 --column-gap 30
# With page numbers
scrollshot2pdf input.png --page-numbers --number-position top-right --number-size 12
Development Tools
Command line utilities for software development and build processes.
Scripts
Various utility scripts, primarily in Bash and Python, to assist with system management, development, and miscellaneous automation tasks.
ⓘFlinx
A fast incremental build tool, like Make but with Python functions instead of shell commands.
ⓘProject Version
A command line tool that detects and reports the version of a project based on its files.
ⓘ
# Bump patch version in current directory
project-version bump
# Bump patch version in current directory
project-version bump
# Show current version and available commands
project-version
# Bump minor version
project-version bump minor
# Bump major version with verbose output
project-version bump major --verbose
# Set a specific version (with or without v prefix)
project-version set 2.0.0
project-version set v2.0.0
# Set a lower version (requires --force)
project-version set 1.0.0 --force
# Dry run to see what would happen
project-version bump --dry-run
project-version set 2.0.0 --dry-run
# Bump version without creating a git commit
project-version bump --no-commit
# Bump version in a specific directory
project-version /path/to/project bump
LLM Tools
Command line utilities for working with Large Language Models.
Claude Artifact Unpacker
Unpack and organize multi-file projects from Claude's Artifacts.
./unpack_artifact.py input_file.txt
# From a single file:
./unpack_artifact.py input_file.txt
# From multiple files:
./unpack_artifact.py input1.txt input2.txt input3.txt
# From standard input:
cat input_file.txt | ./unpack_artifact.py
# or
./unpack_artifact.py < input_file.txt
# Specify a project name:
./unpack_artifact.py --name my-project input_file.txt
Language Learning
Command line tools for language learning and translation.
Labelingo
Annotate UI screenshots with translations for language learning.
labelingo screenshot.png
# Basic usage
labelingo screenshot.png
# Translate to a specific language (e.g., French)
labelingo screenshot.png -l fr
# Process multiple files
labelingo *.png -o translated/
# Install with additional OCR support
pip install 'labelingo[ocr]'
Add2Anki
A CLI tool to add language learning cards to Anki, with automatic translation and audio generation.
ⓘadd2anki 'Hello, how are you?'
# Basic usage (uses Google Translate TTS by default)
add2anki 'Hello, how are you?'
# Start interactive mode
add2anki
# Specify a deck
add2anki --deck 'Chinese Vocabulary' 'u4f60u597d'
# Use ElevenLabs for high-quality audio
add2anki --tts-provider elevenlabs 'Bonjour, comment allez-vous?'
Audio2Anki
Convert audio and video files into Anki flashcard decks with translations.
audio2anki input.mp3
# Process an audio file with default settings
audio2anki input.mp3
# Specify source and target languages
audio2anki input.mp3 --source-language japanese --target-language english
# Process with voice isolation (uses ElevenLabs API)
audio2anki --voice-isolation input.m4a
# Configure settings
audio2anki config set use_cache true
Subburn
Create videos with burnt-in subtitles from audio or video files.
subburn audio.mp3 subtitles.srt
# Create a video with subtitles from an audio file and subtitle file
subburn audio.mp3 subtitles.srt
# Automatic transcription using OpenAI Whisper
subburn audio.mp3
# Create a video with a still image background
subburn input.mp3 subtitles.srt background.jpg
# Add subtitles to an existing video
subburn video.mp4 subtitles.srt
# Specify custom output path
subburn input.mp3 subtitles.srt -o output.mov
Machine Embroidery
Command line tools for machine embroidery file conversion.
Stitch Sync
Watch and convert embroidery files to machine-compatible formats.
stitch-sync
# Watch the Downloads directory for new embroidery files, and copy them to a USB drive:
stitch-sync
# Watch a directory other than the Downloads directory:
stitch-sync watch --dir /path/to/directory
# Specify a machine for the session:
stitch-sync watch --machine 'Janome MC9900'
# Set default machine:
stitch-sync set machine 'Janome MC9900'
stitch-sync
# Select a different output format:
stitch-sync watch --output-format jef
# List all supported machines:
stitch-sync machines
# List machines by format:
stitch-sync machines --format dst
# List all supported file formats:
stitch-sync formats
# Show detailed information for a specific machine:
stitch-sync machine info 'Brother PE800'
# View help:
stitch-sync --help
# Example output:
$ stitch-sync formats
dst: Tajima -- Industry standard format, widely supported
exp: Melco Expanded
jef: Janome Embroidery Format
jef+: Janome Embroidery Format Plus -- Enhanced version of JEF with additional features
pes: Brother Embroidery Format
vip: Viking/Pfaff -- Legacy format
vp3: Viking/Pfaff Phase 3 -- Current format for Viking and Pfaff machines
xxx: Singer
Pyembroidery Convert
CLI tool for converting between embroidery file formats.
./pyembroidery-convert.py input.pes -t dst
# Convert a file to a specific format
./pyembroidery-convert.py input.pes -t dst
# Convert a file with a custom output name
./pyembroidery-convert.py input.pes -o output.dst
# List supported formats
./pyembroidery-convert.py --list
Classroom Assignment Management
Command line utilities for education and teaching.
Multiclone
Fast tool for cloning all forks of a repository or GitHub Classroom assignments.
multiclone owner/repo
# Clone all forks of a repository
multiclone owner/repo
# Clone GitHub Classroom assignment repos
multiclone org/repo --classroom
# Clone into a specific directory
multiclone --dir path/to/dir owner/repo
# Preview commands without executing them
multiclone owner/repo --dry-run
# Clone repos listed in a file
multiclone repos.txt
nbcollate
Combines multiple student Jupyter notebooks into a single organized notebook.
Other Projects
Projects that do not fit in other categories.
Rename Image Files
A command-line tool that uses vision language models to intelligently rename image files based on their content.
ⓘrename-image-files image1.jpg image2.jpg
# Basic usage:
rename-image-files image1.jpg image2.jpg
# Process all image files:
rename-image-files --all image1.jpg image2.jpg
# Compare different models:
rename-image-files --model gpt-4o-mini --model gpt-4-vision-preview image.jpg
# Use a custom prompt:
rename-image-files --prompt 'Describe this image in 3-5 words' image.jpg
# Preview changes without renaming:
rename-image-files --dry-run image.jpg
# Process a directory (non-recursive):
rename-image-files ~/Pictures/Vacation
# Process directory and subdirectories:
rename-image-files -r ~/Pictures/Vacation
p5 Server
Command-line tool that runs p5.js sketches with live reload and automatic library inclusion.
ⓘnpm install -g p5-server
# Install globally
npm install -g p5-server
# Create a new sketch
p5 create my-sketch
# Run a server with live reload
p5 serve --open
# Run a sketch in split view mode
p5 serve sketch.js --theme split
# Create a screenshot of a sketch
p5 screenshot my-sketch.js
# Build a static site of p5.js sketches
p5 build --theme grid
# Run a server with live reload
p5 serve --open
# Run a sketch in split view mode
p5 serve sketch.js --theme split
# Create a screenshot of a sketch
p5 screenshot my-sketch.js
# Build a static site of p5.js sketches
p5 build --theme grid
Fix Filename Dates
A command-line tool to add or normalize the dates in filenames.
fix-filename-dates --dry-run /path/to/dir
# Run a dry run to see which files will be renamed:
fix-filename-dates --dry-run /path/to/dir
# Actually rename the files:
fix-filename-dates /path/to/dir
Matrix Archive
Archive Matrix chat rooms to HTML and JSON.