thomasschafer

scooter: Find and Replace Text Interactively in the Terminal

scooter is a Rust terminal app for reviewing and applying find-and-replace changes across files or piped text. It suits developers who want to select individual matches before editing, with regex, previews, and editor integration.

Stars
1.3k
Forks
19
Stars, last 8 days
+2
Last commit
today
Contributors
10

Our take

Activeregular commits and releases

Health score

43/100

How it is scored
Activity
56
Community
33
Issues
39
Pull requests
43

+2 stars in the last 8 days

  • Slower to close issues than 83% of the projects we track

scooter is a capable, actively maintained terminal find-and-replace tool, though its development is concentrated among a small number of contributors.

Good fit if

  • You want an interactive review step before replacing matches across files.
  • You work in a terminal and value regex search, stdin processing, or editor integration.
  • You are comfortable adopting a Rust tool with an MIT license and a recent record of commits and releases.

Look elsewhere if

  • Your workflow requires advanced regex features by default, since scooter uses a faster, limited regex engine unless advanced mode is enabled.
  • You need development to be broadly distributed across contributors, as most contributions come from one person.
  • Your team needs fast issue resolution, since the median time to close issues is measured in weeks rather than days.
All health signals
Last commit2026-10-10 (today)
Commits, last 90 days18
Releases, last 12 months6 (latest v0.9.1, 2026-04-23)
Contributors10 (top contributor: 84% of commits)
Issues closed, last 90 days4 (typically closed in 75 days)
Pull requests merged, last 90 days17 (typically merged in 2 days)
Project age2 years

Checked on 2026-10-11 with the GitHub API.

Overview

scooter lets you search files or piped text, review matches in a terminal UI, and choose which instances to replace. It addresses the risk of applying a broad find-and-replace blindly by making changes inspectable and individually selectable.

It is aimed at developers who work in the terminal and want a focused tool for code or text edits across a directory. Searches can use fixed strings or regular expressions, and the tool also supports non-interactive use for scripted input.

Key Features

  • Recursively searches files in a directory, respecting .gitignore and .ignore rules.
  • Reviews matches in a terminal interface, with controls to include or skip individual replacements.
  • Searches with fixed strings or regular expressions, including capture groups in replacement text.
  • Supports multiline searches, hidden files, and include or exclude glob patterns.
  • Accepts content from stdin and offers a no-TUI mode for piping transformed output.
  • Opens a selected match in the configured editor at its line.
  • Provides configurable keybindings, syntax-highlighting themes, and replacement escape-sequence handling.
  • Skips a replacement if its matched instance has changed since the search, and reports such cases afterward.

Use Cases

  • A developer renaming an identifier across a repository who wants to inspect matches before changing files.
  • A maintainer applying a regex-based edit with capture groups and selectively excluding exceptional matches.
  • A terminal user transforming piped text, such as a selected buffer or file, without searching a directory.
  • A developer using Helix or Neovim who wants to launch a find-and-replace UI from their editor workflow.

What you need

Detected in the repository

  • Rust (from Cargo.toml)
  • A test suite and automated checks on GitHub Actions

License in plain words

MITpermissive

  • Commercial use: yes
  • Modify and redistribute: yes
  • You must keep: the copyright and license notice
  • Share your changes: no

A summary, not legal advice: the LICENSE file is what applies.

Getting Started

Install with Homebrew and launch it in the directory to search:

brew install scooter
scooter

See the README for other installation options, command-line flags, and configuration.

Considerations

The project is active, with regular commits and releases, and has merged pull requests recently. However, work is concentrated: one contributor accounts for most of the code, so teams should consider that dependency when assessing long-term maintenance. Issue closure is slower than pull request merging, which may affect how quickly reported problems are addressed.

The default regex engine supports a subset of regex features; advanced mode is available for features such as negative lookahead. Search is line-by-line unless multiline mode is enabled. The interface is terminal-based, and teams that need a graphical workflow may prefer another tool. Check the repository for current details and configuration guidance.

Found this useful?

Share it with someone who would like scooter.