id = "scooter" name = "scooter" homepage = "https://github.com/thomasschafer/scooter" description = "Interactive find-and-replace in the terminal" executables = ["scooter"] [dotfiles] # The project's README documents ~/.config/scooter/config.toml and its # themes/ directory on Linux/macOS, and %AppData%\\scooter\\config.toml and # themes/ on Windows; --config-dir can override the base directory. # https://github.com/thomasschafer/scooter#configuration-options 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"]