Skip to content

Tools

Every tool the Empryo agent can use: what each one does, which app or mode it needs, which tools are always on, and how to turn the others off.

Reference7 minutes to read
Copy & share
On this page5 sections

<!-- Generated file. Do not edit by hand: run bun run docs:tools. -->

Tools are the actions the agent can take: read a file, search your code, run a command, edit, commit. This page lists every tool, what it does, and which modes can use it.

To keep requests small, Empryo does not send every tool with every message. Tools you use less often stay out of the request until the agent needs one. The agent finds it with tool_search and runs it with run_tool. You do not have to do anything for this to work. To change it, see tool loading.

See compound tools for why Empryo's tools do a whole job in one call.

All toolsLink to this section

The catalog has 44 tools; /tools lists the ones you can turn off.

ToolWhat it doesNotes
skillsLet the agent search, install, and load skills from skills.sh
readRead file contents with optional line range or symbol targetalways on
edit_fileEdit, create, or write files with line-anchored matchingalways on
multi_editApply multiple edits to one or more files atomicallyalways on
undo_editUndo recent edits to a file
grepThe Genome's repo-wide search (symbol context, count mode, dep search)always on
findThe Genome's file/symbol finder: fuzzy ranked, globs, concept overviewalways on
shellExecute shell commands (background:true for servers/watchers/long builds)always on
shell_jobsBackground shell jobs: list, status, log tail/poll, wait, stop
advisorSecond opinion over this conversation from a tool-less model
linkLive link to other agents: list, send, ask (blocking), reply, broadcast, inbox, history
orchestrateMulti-agent graphs with loops: validate, save, run, watch, resume, stop
routineScheduled routines (cron): list, add, remove, enable, run now
projectAuto-detected lint, format, test, build, typecheck across 23 ecosystemsalways on
exploreDelegate a read-only question to a solo explore agent (fg or background)
dispatchSpawn parallel subagents for multi-file tasks
background_dispatchSpawn a detached agent that runs while you keep working
background_statusCheck background agents (non-blocking)
background_stopStop a running background agent
background_awaitBlock until background agents finish and collect results
agent_sendSend a follow-up instruction to a running subagent (dispatch id or bg-N)
agent_createCreate or update a custom agent definition, dispatchable immediately
planCreate an implementation plan for large changes (7+ files)
update_plan_stepUpdate a plan step's status during execution
ask_userAsk the user a question and wait for their response
navigateLSP symbol lookup: definitions, references, callers, type hierarchiesalways on
genome_queryChain search → filter → deps → outline → read in one Genome callalways on
genome_analyzeCodebase analysis: file profiles, dead code, packages, symbol queriesalways on
genome_impactDependency graph: dependents, dependencies, cochanges, blast radiusalways on
genome_visionDisplay images and videos inline in chat (PNG, JPG, GIF, video files/URLs)TUI only
analyzeLSP diagnostics, type info, outline, code actions on a filealways on
web_searchSearch the web for documentation, APIs, error messages
find_modelFuzzy-search the model catalog: providers, models, key state
find_agentFuzzy-search custom agent definitions: name, purpose, mode, model
fetch_pageFetch readable pages or make structured HTTP probes
gitGit operations: status, diff, log, commit, push, pull, stash, branch
list_dirList directory contents (supports multiple paths + recursive depth in one call)
refactorCode transforms: extract, format, organize imports, rename/move symbols and files
memoryRead/write persistent memories across sessionsalways on
editorOpen file in embedded Neovim editorTUI only, needs the neovim addon
task_listCreate and track tasks for the current session
settingsRead/change Empryo's own settings — the running surface applies and repaints
ast_editSurgical AST editing for TS/JS — prefer over edit_file/multi_editalways on
structural_editPolyglot AST find/rewrite via ast-grep — non-TS/JS (Go, Rust, Python, …)

Tools added by the app or the modeLink to this section

Empryo adds these automatically when the current app or mode needs them. They do not appear in /tools.

ToolWhat it does
final_responseEnds the turn with the final answer, which the model writes in its answer argument; the answer streams into the chat as it is written
respond_to_steeringAnswer a message you sent while the agent was working, next to that message
code_scriptRun one script that looks things up, edits code in any language, checks the result, and reports back
councilHave 2 to 4 agents, each with its own brief, debate one topic and return a verdict
cellsRead and use the rules, lookups, and data a morph gives the agent
browserUse the built-in browser: read the page, click, type, take screenshots, inspect, audit
rename_tabRename this tab when the task changes
worktreeList, create, open, move and remove git worktrees. open starts a new tab on a task in a worktree, and move moves this tab once its turn ends.
computer, computer_*Computer use: see and drive the apps on your screen. Added when computer use is on and your machine supports it.
modelLook up models and switch the one a task uses
sparkHand a read-only research task to a helper agent
agentHand work to one of your custom agents
reviewerReview the current state of the repository and return PASS, FAIL, or PARTIAL

Tools by modeLink to this section

Each mode gives the agent a different set of tools.

SetPurposeTools
CoreSent with every request.read, edit_file, multi_edit, grep, find, shell, project, memory
Always availablePresent in every mode.final_response, respond_to_steering
Cannot be turned off/tools does not list these, and Empryo ignores them in disabledTools.read, edit_file, multi_edit, grep, find, shell, project, memory, genome_query, genome_analyze, genome_impact, navigate, analyze, ast_edit, code_script, final_response, respond_to_steering
Architect, Socratic, ChallengeRead and analyze only. No edits, shell, or git.read, grep, find, genome_analyze, genome_impact, list_dir, web_search, explore, code_script, editor, navigate, analyze, memory, skills, fetch_page, ask_user, plan, update_plan_step
Running a planWhat the agent can use while it carries out an approved plan.read, edit_file, code_script, undo_edit, multi_edit, task_list, list_dir, shell, shell_jobs, project, grep, find, navigate, analyze, git, editor, refactor, update_plan_step, memory, skills, genome_analyze, genome_impact
Morph modeFor building panels and boards. See Morphs.read, grep, find, list_dir, code_script, navigate, genome_query, genome_analyze, genome_impact, analyze, edit_file, multi_edit, undo_edit, web_search, fetch_page, git, ask_user, task_list, memory, find_model, find_agent, cells, rename_tab
Duck modeCannot see your code. Web and agent messages only.web_search, fetch_page, link, advisor, find_model, rename_tab
Orchestrate modeDesigns and runs multi-agent workflows. Does not edit files itself.read, grep, find, list_dir, code_script, navigate, genome_query, genome_analyze, genome_impact, web_search, fetch_page, ask_user, task_list, memory, find_agent, find_model, orchestrate, routine, background_status, background_stop, background_await, agent_send, shell_jobs, link, council, rename_tab

Switching tools offLink to this section

json
{ "disabledTools": ["shell", "git"] }

/tools in the terminal app and My tools → Permissions & reach in the desktop app both change this setting. Tools marked *always on* are ignored in this list, even if you edit the file by hand. The agent cannot do basic work without them, so turning off read or grep would only cause confusing failures.

NextLink to this section