A fast, user-friendly command-line alternative to the Unix find command for locating files and directories by name.
thomasschafer/scooter
A terminal UI for interactive find-and-replace across files or stdin, with regex and fixed-string search and per-match review.
- Stars
- 1,302
- Forks
- 19
- Open issues
- 12
- Last commit
- 4 days ago
What is it?
scooter is a find-and-replace tool that runs in the terminal. By default it recursively searches the files in the current directory, and it can also process text piped in through stdin. You enter a search string and a replacement, then toggle which matches to replace before applying changes.
Searches can use a fixed string or a regular expression, with optional capture groups in the replacement such as $1 and $2. Options include whole-word and case-sensitive matching, multiline mode, glob-based file include and exclude filters, and respect for .gitignore and .ignore files. Matches that changed since the search ran are skipped and reported at the end, so stale results are not written over.
The file walker comes from ripgrep. Syntax highlighting themes, editor integration for opening results in $EDITOR at the matching line, and a no-TUI mode for scripting are also provided.
Key features
- 01Interactive review: toggle each match before replacing it.
- 02Supports fixed-string and regex search, with capture groups in replacements.
- 03Filters files with include and exclude glob patterns.
- 04Respects .gitignore and .ignore files and skips hidden files by default.
- 05Can process piped stdin and output results without the TUI.
Use cases
- Renaming an identifier across a codebase while reviewing each change.
- Making bulk text edits in a project directory from the terminal.
- Transforming piped text in shell scripts with --no-tui mode.
Quick start
- 1
Install scooter with Homebrew (macOS and Linux)
brew install scooter - 2
Launch scooter in a terminal from the directory you want to search
scooter
Things to know
- By default the regex engine supports only a subset of features, so advanced patterns such as lookahead need the -a flag.
- Replacements are skipped if a matched line changed after the search, and these skipped cases are only listed at the end.
In collections
Topics
FAQ
- What is scooter?
- A terminal UI for interactive find-and-replace across files or stdin, with regex and fixed-string search and per-match review. scooter is a find-and-replace tool that runs in the terminal. By default it recursively searches the files in the current directory, and it can also process text piped in through stdin. You enter a search string and a replacement, then toggle which matches to replace before applying changes.
- Is scooter free to use? What license does it have?
- scooter is open source under the MIT license. Check the license terms before using it in commercial products.
- Is scooter still maintained?
- Actively maintained. The last commit to scooter was on Oct 18, 2026.
- What can I use scooter for?
- Renaming an identifier across a codebase while reviewing each change. Making bulk text edits in a project directory from the terminal. Transforming piped text in shell scripts with --no-tui mode.
- How do I install scooter?
- Install scooter with Homebrew (macOS and Linux): brew install scooter Launch scooter in a terminal from the directory you want to search: scooter
- Where can I get scooter?
- The source code and installation instructions are on GitHub: https://github.com/thomasschafer/scooter
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A Rust crate for building terminal user interfaces (TUIs) with reusable widgets and a simple rendering model.
A line-oriented regex search tool (rg) that recursively searches directories while respecting .gitignore rules by default.
React renderer for building interactive command-line apps with components and Flexbox layouts in the terminal.
A terminal JSON viewer and processor that lets you browse, fold and transform JSON interactively in the shell.
A feature-rich terminal pager for viewing text, with column mode, follow mode, exec mode and incremental search.