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.

  • Labelingo Python 2024

    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]'
    
  • Add2Anki Python 2025

    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?'
    
  • Audio2Anki Python 2025

    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
    
  • Subburn Python 2025

    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.

  • p5 Server JavaScript 2021

    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
    
  • Multiclone Python 2017

    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
    
  • Scripts Bash 2025

    Various utility scripts, primarily in Bash and Python, to assist with system management, development, and miscellaneous automation tasks.

  • Project Version Python 2023

    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.

  • Gojekyll Go 2017

    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
    
  • Scrollshot2PDF Python 2024

    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
    
  • Matrix Archive Python 2018

    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.

  • Stitch Sync Rust 2024

    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.

  • Multiclone Python 2017

    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
    
  • nbcollate Python 2017 archived

    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