# Code Search

> Searches codebases with structured grep, glob, and tree commands via ripgrep, fd, and tree CLI tools.

- Skill: `luokai0/code-search` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add luokai0/code-search`
- Raw SKILL.md: https://api.skillmd.com/api/skills/luokai0/code-search/raw
- Safety review: CAUTION (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools, AI & ML, DevOps & Infra, Dev Tooling
- Tags: Cli, Code Search, Fd, Glob, Grep, Ripgrep, Tree
- Author: luokai0 (https://skillmd.com/u/luokai0)
- Updated: 2026-08-22
- Page: https://skillmd.com/skills/luokai0/code-search

---

# Code Search Skill

Fast code search toolkit for exploring codebases. Provides structured grep (content search), glob (filename search), and tree (directory structure) via ripgrep, fd, and tree CLI tools.

## When to Use

- Searching for function/class/variable definitions or usages in code
- Finding files by name or extension pattern
- Understanding project directory structure
- Exploring unfamiliar codebases
- Looking for configuration files, imports, error messages

## Prerequisites

Run dependency check first:
```bash
bash /root/.openclaw/workspace/skills/code-search/scripts/search.sh check
```

## Commands

All commands go through a single entry point:
```bash
bash /root/.openclaw/workspace/skills/code-search/scripts/search.sh <command> [options]
```

### grep — Search file contents

```bash
# Basic search
bash /root/.openclaw/workspace/skills/code-search/scripts/search.sh grep "func main" --path /some/project

# Literal text (no regex interpretation)
bash /root/.openclaw/workspace/skills/code-search/scripts/search.sh grep "fmt.Println(" --literal --path /some/project

# Filter by file type
bash /root/.openclaw/workspace/skills/code-search/scripts/search.sh grep "import" --type go --path /some/project

# With context lines
bash /root/.openclaw/workspace/skills/code-search/scripts/search.sh grep "TODO" --context 2 --path /some/project

# Limit results
bash /root/.openclaw/workspace/skills/code-search/scripts/search.sh grep "error" --max 20 --path /some/project
```

Options:
- `--path <dir>` — Search directory (default: current dir)
- `--type <ext>` — File type filter: go, py, ts, js, etc. (repeatable)
- `--literal` — Treat pattern as literal text, not regex
- `--max <n>` — Max results (default: 100)
- `--context <n>` — Show N lines of context around matches (default: 0)

### glob — Search filenames

```bash
# Find all Go files
bash /root/.openclaw/workspace/skills/code-search/scripts/search.sh glob "*.go" --path /some/project

# Find test files
bash /root/.openclaw/workspace/skills/code-search/scripts/search.sh glob "*_test.go" --path /some/project

# Find config files
bash /root/.openclaw/workspace/skills/code-search/scripts/search.sh glob "*.{json,yaml,yml,toml}" --path /some/project

# Filter by type
bash /root/.openclaw/workspace/skills/code-search/scripts/search.sh glob "config" --type f --path /some/project
```

Options:
- `--path <dir>` — Search directory (default: current dir)
- `--type <f|d>` — f=files only, d=directories only
- `--max <n>` — Max results (default: 200)

### tree — Directory structure

```bash
# Default (3 levels deep)
bash /root/.openclaw/workspace/skills/code-search/scripts/search.sh tree --path /some/project

# Shallow view
bash /root/.openclaw/workspace/skills/code-search/scripts/search.sh tree --path /some/project --depth 1

# With file sizes
bash /root/.openclaw/workspace/skills/code-search/scripts/search.sh tree --path /some/project --depth 2 --size
```

Options:
- `--path <dir>` — Target directory (default: current dir)
- `--depth <n>` — Max depth (default: 3)
- `--size` — Show file sizes

### check — Verify dependencies

```bash
bash /root/.openclaw/workspace/skills/code-search/scripts/search.sh check
```

## Output Format

All commands output structured text with clear delimiters:
- `[SEARCH RESULTS: grep]` / `[SEARCH RESULTS: glob]` / `[DIRECTORY TREE]`
- `[END RESULTS]` / `[END TREE]`
- `[TRUNCATED: ...]` when results exceed the limit
- `[ERROR] ...` on failures

## Notes

- All operations are read-only — no files are modified
- Automatically ignores .git, node_modules, __pycache__, vendor, build artifacts
- Respects .gitignore rules
- Results sorted by modification time (newest first) for grep and glob

