id = "scooter"
name = "scooter"
homepage = "https://github.com/thomasschafer/scooter"
description = "Interactive find-and-replace in the terminal"
executables = ["scooter"]
[dotfiles]
paths = [
"[configHome]/scooter/config.toml",
"[configHome]/scooter/themes/",
"%APPDATA%/scooter/config.toml",
"%APPDATA%/scooter/themes/",
]
secret = []
[commands]
format = 1
label = "Find and replace"
description = "Open scooter's find-and-replace UI with the search and replace text pre-filled. Directory, globs and regex-engine options other than those listed are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = true }
[[commands.source]]
id = "readme"
kind = "manual"
url = "https://github.com/thomasschafer/scooter/blob/main/README.md"
revision = "main 2026-10-27"
evidence = """
scooter ../foo/bar
scooter \\
--search-text "old" \\
--replace-text "new" \\
--fixed-strings \\
--files-to-include "*.rs,*.py"
scooter --search-text "old" --replace-text "new" --immediate-search
start scooter with the `-a` (`--advanced-regex`) flag.
launching scooter with the `-U` flag
"""
[[commands.field]]
id = "directory"
label = "Directory"
description = "Defaults to the current directory."
type = "path"
position = 0
path = { kind = "directory", role = "input", must_exist = true }
sources = ["readme"]
[[commands.field]]
id = "search_text"
label = "Search text"
type = "string"
option = ["--search-text"]
sources = ["readme"]
[[commands.field]]
id = "replace_text"
label = "Replace with"
type = "string"
option = ["--replace-text"]
sources = ["readme"]
[[commands.field]]
id = "fixed_strings"
label = "Fixed strings (no regex)"
type = "boolean"
option = ["--fixed-strings"]
sources = ["readme"]
[[commands.field]]
id = "files_to_include"
label = "Files to include"
description = "Comma-separated globs, for example *.rs,*.py."
type = "string"
option = ["--files-to-include"]
sources = ["readme"]
[[commands.field]]
id = "immediate_search"
label = "Search immediately"
description = "Skip the initial search screen."
type = "boolean"
option = ["--immediate-search"]
sources = ["readme"]
[[commands.field]]
id = "advanced_regex"
label = "Full regex engine"
description = "Enables features such as negative lookahead."
type = "boolean"
option = ["--advanced-regex", "-a"]
sources = ["readme"]
[[commands.field]]
id = "multiline"
label = "Multiline search"
type = "boolean"
option = ["-U"]
sources = ["readme"]
[[commands.task]]
id = "replace"
label = "Replace text"
set = { immediate_search = [true] }
fields = ["directory", "search_text", "replace_text", "fixed_strings", "files_to_include", "immediate_search"]
required = ["search_text", "replace_text"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["directory", "search_text", "replace_text", "fixed_strings", "files_to_include", "immediate_search"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["advanced_regex", "multiline"]