Command Line Tools
Command line utilities for developers, language learners, and other technical users.
See also: Computer Education , Teaching Materials
Language Learning
Command line tools for language learning and translation.
-
Annotate UI screenshots with translations for language learning.
Example usage:# 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]'
-
A CLI tool to add language learning cards to Anki, with automatic translation and audio generation
Example usage:# 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?'
-
Convert audio and video files into Anki flashcard decks with translations.
Example usage:# 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
-
Create videos with burnt-in subtitles from audio or video files.
Example usage:# 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
Development Tools
Command line utilities for software development and build processes.
-
Command-line tool that runs p5.js sketches with live reload and automatic library inclusion.
Example usage:# 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
-
Fast tool for cloning all forks of a repository or GitHub Classroom assignments.
Example usage:# 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
-
Various utility scripts, primarily in Bash and Python, to assist with system management, development, and miscellaneous automation tasks.
-
A command line tool that detects and reports the version of a project based on its files.
Example usage:# 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
Publishing
Command line tools for publishing and documentation.
-
A fast Go clone of the Jekyll static site generator.
Example usage:# 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
-
Convert scrolling screenshots to PDF.
Example usage:# 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
-
Archive Matrix chat rooms to HTML and JSON
-
Convert photo albums to PDF documents, preserving metadata and organization.
Example usage:# Convert a photo album to PDF photos-album-to-pdf album_folder output.pdf # Include metadata in the PDF photos-album-to-pdf --with-metadata album_folder output.pdf # Set custom page size photos-album-to-pdf --page-size a4 album_folder output.pdf
LLM Tools
Command line utilities for working with Large Language Models.
-
Unpack and organize multi-file projects from Claude's Artifacts.
Example usage:# 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
Machine Embroidery
Command line tools for machine embroidery file conversion.
-
Watch and convert embroidery files to machine-compatible formats.
Example usage:# 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
-
CLI tool for converting between embroidery file formats.
Example usage:# 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.
-
Fast tool for cloning all forks of a repository or GitHub Classroom assignments.
Example usage:# 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
-
Combines multiple student Jupyter notebooks into a single organized notebook.
Other Projects
Projects that do not fit in other categories.
-
A command-line tool that uses vision language models to intelligently rename image files based on their content.
Example usage:# 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
-
A command-line tool to add or normalize the dates in filenames
Example usage:# 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
-
A command-line tool that intelligently renames academic PDFs based on their content, extracting metadata like title, authors, and publication year.
Example usage:# Rename a single PDF rename-academic-pdf paper.pdf # Process multiple PDFs rename-academic-pdf *.pdf # Use a custom naming pattern rename-academic-pdf --pattern "{year}_{first_author}_{title}" paper.pdf # Dry run to preview changes rename-academic-pdf --dry-run downloads/*.pdf