scooter: Interactive Find-and-Replace in Your Terminal

scooter: Interactive Find-and-Replace in Your Terminal

Summary

`scooter` is an interactive terminal UI application designed for efficient find-and-replace operations. It allows users to recursively search through files or process text from stdin, providing an interactive interface to toggle which instances to replace. Built with Rust, `scooter` delivers fast performance and supports advanced regex features, custom themes, and seamless editor integrations.

Repository Info

Updated on February 23, 2026
View on GitHub

Tags

Click on any tag to explore related repositories

Introduction

scooter is a powerful and interactive terminal UI application for find-and-replace operations. Built with Rust for speed and efficiency, it allows users to recursively search through files in the current directory or process text piped from stdin. With scooter, you can use either fixed strings or regular expressions for searching, enter a replacement, and then interactively toggle which instances you want to replace. It intelligently handles changes in files, ensuring replacements only occur on valid instances.

Key features include:

  • Interactive terminal user interface.
  • Support for both fixed string and regular expression searches.
  • Ability to use capture groups in replacement strings.
  • Respects .gitignore and .ignore files.
  • Customizable syntax highlighting themes.
  • Seamless integration with popular editors like Helix and Neovim.

Installation

scooter can be installed via several package managers or by building from source.

Homebrew

On macOS and Linux:

brew install scooter

Nix

scooter is available as scooter in nixpkgs:

# Example for NixOS
environment.systemPackages = with pkgs; [ scooter ];

AUR

For Arch Linux users:

yay -S scooter
# Or for the latest commit:
yay -S scooter-git

Winget

On Windows:

winget install thomasschafer.scooter

Scoop

On Windows:

scoop install scooter

NetBSD

Install from official repositories:

pkgin install scooter

Prebuilt Binaries

Download the appropriate binary for your system from the scooter releases page. Extract the binary and move it to a directory in your PATH.

Cargo

Ensure you have Cargo installed, then run:

cargo install scooter

Building from Source

Ensure you have Cargo installed, then run:

git clone https://github.com/thomasschafer/scooter.git
cd scooter
cargo install --path scooter --locked

Examples

Basic Usage

To launch scooter in the current directory:

scooter

To specify a different directory:

scooter ../foo/bar

Processing Stdin

Pipe content to scooter:

echo "hello world" | scooter

To write results to a file when processing stdin (in TUI mode, results go to stderr):

cat input.txt | scooter 2> output.txt

For --no-tui mode, results are written to stdout:

cat input.txt | scooter -N -s before -r after > output.txt

Pre-populating Search Fields

You can pre-populate search fields directly from the command line:

scooter \
  --search-text "old" \
  --replace-text "new" \
  --fixed-strings \
  --files-to-include "*.rs,*.py"

Use the --immediate-search flag to skip the initial search screen and jump straight to results.

Why Use It?

scooter stands out for its unique combination of interactivity, performance, and flexibility:

  • Interactive Control: Unlike traditional find-and-replace tools, scooter provides a terminal UI where you can review and selectively apply replacements, giving you fine-grained control over changes.
  • Blazing Fast Performance: Leveraging the ripgrep file walker, scooter is exceptionally fast. Benchmarks show it performing find-and-replace operations on large codebases, like the Linux kernel, with speed comparable to or even exceeding other specialized tools.
  • Powerful Regex Capabilities: It supports advanced regular expressions, including capture groups, allowing for complex and precise search patterns and dynamic replacements.
  • Customization: Tailor your experience with custom syntax highlighting themes and configurable keybindings to match your workflow.
  • Editor Integration: scooter offers deep integration with popular text editors such as Helix and Neovim, enabling you to perform project-wide or buffer-specific find-and-replace without leaving your editor environment.

Links