

0 / 2 embers
0 / 3000 xp
click for more info
Complete a lesson to start your streak
click for more info
Difficulty: 3
click for more info
Not enough gems
Cost: 6 gems
1: Tools
incomplete
2: Built-in Tools
incomplete
3: Specialized Tools
incomplete
4: Custom Tools
incomplete
5: Create a Custom Tool
incomplete
6: Tool Permissions
incomplete
7: Sandboxing
incomplete
Back
ctrl+,
Next
ctrl+.
This lesson's interactive features are locked, please to keep using them
It's tempting to think:
Bash can do almost anything, so what's with all these specialized tools like
webfetchandread?! Why not justcurlandcat?
In practice, specialized tools are nice because:
In other words, the agent's developers can shape a tool specifically for coding work. For example, webfetch:
As another example, OpenCode's grep tool is not just the Unix grep command or even the modern ripgrep.
It does use ripgrep under the hood, but it's also permission-aware, workspace-aware, and returns results in a shape that's better for the model.
All that said, specialized tools are not a replacement for the shell tool. Your shell is still the critical escape hatch. It's how your agent can do seemingly anything on your command line, even when no dedicated tool exists.
Tell OpenCode to find and fix the typo in unexpected charcter in Sloperator's error messages. Watch which tool it uses to locate the text.
Then tell OpenCode to run and submit the CLI tests from the project root.