agentsclimarketplace

Terminal tools fs search

Skill aden-hive/hive/core/framework/skills/_preset_skills/terminal-tools-fs-search

Multi-Agent Harness for Production AI

Install
npx -y skills add aden-hive/hive --skill terminal-tools-fs-search

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

What its author says it does

Copied from the file, not written here

Use terminal_rg / terminal_find when you need raw filesystem search outside the project tree — system configs, /var/log, /etc, archive contents — or when files-tools.search_files is too project-scoped. Teaches the rg vs find vs terminal_exec("ls/du/tree") split, common rg flag combos for code/logs/configs, find predicates for mtime/size/type queries, and the rule that for tree views or single-file stat info you should just use terminal_exec instead of inventing a tool. Read before reaching for raw shell to grep or find anything.

SKILL.md

4.3 KB, as published. Nobody here has run it

Filesystem search

terminal-tools provides two structured search tools: terminal_rg (ripgrep for content) and terminal_find (find for predicates). Everything else (tree, stat, du) is just terminal_exec.

When to use what

TaskTool
Find code/text matching a pattern in your projectfiles-tools.search_files (project-aware, ranks by relevance)
Find code/text matching a pattern in /var/log, /etc, archives, system dirsterminal_rg
Find files matching name/glob/predicateterminal_find
List a directoryterminal_exec("ls -la /path")
Tree viewterminal_exec("tree -L 2 /path")
Single-path statterminal_exec("stat /path")
Disk usageterminal_exec("du -sh /path") or terminal_exec("du -h --max-depth=2 /")
Count matches across filesterminal_rg(pattern, count=True via extra_args=["-c"])

terminal_rg — content search

ripgrep is fast, gitignore-aware, and has a deep flag surface. The structured wrapper exposes the most useful flags directly; extra_args covers the rest.

Common patterns

# All Python files containing "TODO"
terminal_rg(pattern="TODO", path=".", type_filter="py")

# Case-insensitive, with context
terminal_rg(pattern="error", path="/var/log", ignore_case=True, context=2)

# Search hidden files (rg ignores them by default)
terminal_rg(pattern="api_key", path="~", hidden=True)

# Don't respect .gitignore (find files git would ignore)
terminal_rg(pattern="generated", path=".", no_ignore=True)

# Multi-line pattern (e.g., function definitions spanning lines)
terminal_rg(pattern=r"def\s+\w+\(.*\n.*\n", path="src", extra_args=["--multiline"])

# Specific filename glob
terminal_rg(pattern="version", path=".", glob="*.toml")

rg flag idioms

FlagEffect
-tpy (type_filter="py")Only Python files
-uuDon't respect any ignores (incl. .git/)
--multiline (extra_args)Allow regex spanning lines
--max-count (max_count)Stop after N matches per file
--max-depth (max_depth)Limit recursion
-w (extra_args)Whole word match
-F (extra_args)Fixed string (no regex)

See references/ripgrep_cheatsheet.md for the long form.

terminal_find — predicate search

find excels at "files matching N criteria". The wrapper surfaces the most common predicates; combine via the structured arguments.

# All .log files modified in the last 7 days, larger than 1MB
terminal_find(path="/var/log", iname="*.log", mtime_days=7, size_kb_min=1024)

# All directories named ".git" (find Git repos under a tree)
terminal_find(path="~/projects", name=".git", type_filter="d")

# Only the top three levels
terminal_find(path="/etc", max_depth=3, type_filter="f")

# Symlinks
terminal_find(path=".", type_filter="l")

See references/find_predicates.md for combinations not directly exposed.

Output truncation

Both tools return truncated: true when their output exceeded the inline cap. For terminal_rg, this means matches were dropped (refine the pattern or narrow the path); for terminal_find, results past max_results (default 1000) are dropped. Tighten predicates rather than raising the cap.

Anti-patterns

  • Don't terminal_rg your project treefiles-tools.search_files is project-aware and ranks results.
  • Don't reach for terminal_find to list one directoryterminal_exec("ls -la /path") is shorter.
  • Don't use terminal_exec("grep ...") when terminal_rg exists — rg is faster, gitignore-aware, and returns structured matches.
  • Don't use terminal_exec("find ...") to invent your own predicate combinations — use terminal_find and report missing capabilities.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.