Agent skill

native-tools

Claude Code native tools reference. Prefer native tools over bash commands for file operations, search, and orchestration.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/native-tools

SKILL.md

Provide comprehensive guidance on Claude Code's native tools. These tools are optimized for agent use and should ALWAYS be preferred over equivalent bash commands.

<critical_rule>

NEVER Use Bash For These Operations

Bad (Bash) Good (Native) Why
find . -name "*.ts" Glob({pattern: "**/*.ts"}) Faster, respects gitignore
grep -r "pattern" . Grep({pattern: "pattern"}) Structured output, pagination
cat file.txt Read({file_path: "file.txt"}) Line numbers, handles images/PDFs
head -n 50 file.txt Read({file_path: "file.txt", limit: 50}) Native pagination
sed -i 's/old/new/' Edit({old_string: "old", new_string: "new"}) Safe, atomic, validated
echo "text" > file Write({file_path: "file", content: "text"}) Permission checked

</critical_rule>

Tool Categories

Category Reference Tools
File Search references/file-search.md Glob, Grep
Structural Search See ast-grep skill ast-grep (sg) for AST patterns
File Operations references/file-operations.md Read, Edit, Write
User Interaction references/user-interaction.md AskUserQuestion, TodoWrite
Agent Orchestration references/orchestration.md Task, TaskOutput
External Resources references/external.md WebFetch, WebSearch, Bash
MCP Tools references/external.md Context7, OctoCode, Codex

Skill References

Skill When to Use
ast-grep Structural code patterns (function calls, imports, types)

<quick_reference>

Tool Permission Matrix

Tool Permission Required Description
Glob No Find files by pattern
Grep No Search file contents
Read No Read file contents
Edit Yes Modify files
Write Yes Create/overwrite files
AskUserQuestion No Interactive questions
TodoWrite No Task tracking
Task No Spawn sub-agents
TaskOutput No Get agent results
Bash Yes Shell commands
WebFetch Yes Fetch URLs
WebSearch Yes Web search
NotebookEdit Yes Edit Jupyter notebooks

</quick_reference>

<common_patterns>

Search Then Read

javascript
// Find files matching pattern
Glob({pattern: "src/**/*.ts"})

// Search for content (text patterns)
Grep({pattern: "function handleAuth", type: "ts"})

// Read specific file
Read({file_path: "src/auth/handler.ts"})

Structural Code Search (ast-grep skill)

For complex code patterns, use ast-grep instead of Grep:

bash
# Find all async functions
sg -p "async function $FUNC($$$)" -l typescript

# Find React hooks
sg -p "use$HOOK($$$)" -l tsx

# Find specific imports
sg -p 'import { $$$IMPORTS } from "react"' -l typescript

Documentation Lookup (MCP skill)

Prefer MCP tools over WebFetch for library docs:

javascript
// Context7 for library documentation
mcp__plugin_crew_context7__resolve-library-id({libraryName: "react-query"})
mcp__plugin_crew_context7__query-docs({
  context7CompatibleLibraryID: "/tanstack/query",
  topic: "query invalidation"
})

// OctoCode for GitHub code search
mcp__plugin_crew_octocode__githubSearchCode({
  keywordsToSearch: ["useQuery"],
  owner: "tanstack",
  repo: "query"
})

// Codex for deep reasoning
mcp__plugin_crew_codex__codex({
  prompt: "Analyze architectural trade-offs...",
  sandbox: "read-only"
})

Edit Workflow

javascript
// ALWAYS read before edit
Read({file_path: "path/to/file.ts"})

// Make targeted edit
Edit({
  file_path: "path/to/file.ts",
  old_string: "const x = 1",
  new_string: "const x = 2"
})

User Decision Points

javascript
AskUserQuestion({
  questions: [{
    question: "Which approach should we use?",
    header: "Approach",
    options: [
      {label: "Option A (Recommended)", description: "Fastest, simplest"},
      {label: "Option B", description: "More flexible"},
      {label: "Option C", description: "Most robust"}
    ],
    multiSelect: false
  }]
})

Agent Orchestration

javascript
// Launch parallel agents
Task({
  subagent_type: "Explore",
  prompt: "Find all API endpoints in src/",
  description: "Find API endpoints",
  run_in_background: true
})

// Retrieve results
TaskOutput({task_id: "abc123", block: true})

</common_patterns>

Didn't find tool you were looking for?

Be as detailed as possible for better results