Manage Python Projects and Environments With uv
Install Python versions, manage virtual environments, and handle dependencies with the uv tool, a fast Python tool written in Rust.
Recent content on Small Sharp Software Tools
Install Python versions, manage virtual environments, and handle dependencies with the uv tool, a fast Python tool written in Rust.
Catch inconsistent Markdown formatting with markdownlint by installing it, configuring rules, and writing custom checks for your documentation projects.
Run large language models on your own machine with Ollama, a command-line tool that downloads, manages, and runs open source AI models without cloud subscriptions or API keys.
Use the Updo command to monitor the uptime of web sites and applications. Test specific URLs and API endpoints and use configuration files for your projects.
Find lines that exceed a specific character limit in text files and source code using awk, great for enforcing line length standards.
Use Vagrant and UTM to build and configure virtual machines you can use to test software or web sites.
Manage programming language versions, project tasks, and environment variables in one tool with Mise on macOS, Linux, and Windows.
Build presentation slides from Markdown files using Pandoc and export them to PowerPoint or other slide formats for easy sharing.
Split a large set of file changes into focused, individual Git commits using interactive staging to keep your project history clean.
Use rsync to copy thousands of files between machines with progress tracking, resume support, and options for bandwidth control.
Set the CDPATH environment variable in Bash or Zsh to cd into your most-used directories from anywhere in your terminal.
Run web servers, file watchers, and other dev processes in a single terminal with Foreman using a Procfile to manage them all.
List open network connections and their TCP state on your system using the lsof command, with options to filter by protocol and port.
Follow and monitor log files in real time using the less command, with search, navigation, and filtering right in your terminal.
Use the find and sort commands to search a directory for the most recently modified files and sort them by modification time.
Use brace expansion in the terminal to create multiple files or directories with a single command, saving time and effort.
Batch rename files in the terminal using a Bash for loop and the mv command to change file extensions and naming patterns quickly.
Track your time from the terminal with Timewarrior, a lightweight command-line tool for logging hours, tagging tasks, and generating reports.
Navigate to your Git repository root directory from anywhere in the project tree using a built-in Git command and a shell alias.
Enhance your file comparison experience with Delta, a versatile tool that extends the capabilities of the git diff command.
Explore your operating system with OSQuery, an open source tool that lets you query hardware, software, and processes with SQL queries.
Install and configure Windows Subsystem for Linux to run Bash scripts and Linux tools alongside your Windows applications.
Install Python on macOS, Windows, and Linux using Homebrew, official installers, or WSL to run Python-based command-line tools.
Install Node.js on macOS, Windows, and Linux using Homebrew, official installers, or WSL to run JavaScript command-line tools.
Create a professional resume using Markdown, CSS, and Pandoc. This tutorial covers setting up your environment, defining the resume structure, styling with CSS, and generating a polished PDF. Perfect for maintaining a stylish resume.
Expose local development servers to the internet with Bore, a lightweight open source tunneling proxy and alternative to ngrok.
Set up a local MySQL server for development using Docker Compose with persistent data storage, custom settings, and easy teardown.
Convert FLAC files to MP3 using Bash and CLI tools. This guide covers installation, script creation, and batch processing for audio transcoding.
Use Colima, an open source container runtime on your Mac instead of the official Docker client with Docker Compose and Buildx support.
Speed up your terminal workflow with keyboard shortcuts for navigating, editing, and recalling commands in Bash and Zsh shells.
Edit and modify system files you do not own using sudo, tee, and other techniques to safely make changes with elevated privileges.
Resources for the book Small, Sharp Software Tools
Redirect command output to files using stdout and stderr redirection operators, and append or overwrite files from the terminal.
Display a specific line from a file or stream using sed and awk, then wrap it in a reusable Bash function for quick access.
Combine Markdown documents into a single HTML file with Pandoc and customize the output with a table of contents and a personal template.
Visualize your project directory structure with the tree command, using filters and display options to focus on relevant files.
Upgrade to a modern version of Bash on macOS using Homebrew, add it to your allowed shells list, and set it as your default shell.
Discard unwanted changes in your Git working directory using the checkout, reset, and clean subcommands to get back to a clean state.
Trigger macOS desktop notifications from the command line to alert you when long-running programs and scripts finish running.
Look up domain name records, IP addresses, and registration details from the command line using host, dig, and whois.
Fix command-line typos and mistakes with keyboard shortcuts and history substitution so you can correct errors without retyping.
Display a calendar in your terminal with the cal command, view specific months or years, and highlight dates for quick reference.
Install and configure the Homebrew package manager on macOS to add command-line tools, programming languages, and libraries.
Replace default macOS utilities with GNU versions of awk, sed, date, and more using Homebrew for better Linux compatibility.
Format dates, calculate future and past dates, and do date math from the terminal using the date command on macOS and Linux.
Use the mkdir command with the -p flag and brace expansion to build a full project directory structure in a single command.
Small Sharp Software Tools
Create files from the command line using touch, redirection, and heredocs, and understand when to use each approach.