仓库 →

Built-in Tools

AtomCode currently ships 21 built-in tools, grouped into four categories: filesystem & shell, code graph, web, automation. The model picks tools per task — you almost never need to specify by hand.

Filesystem & shell (9)

ToolPurposeConfirmation?
read_fileRead file content; supports line offset and rangeNo
write_fileWrite a full file (overwrite)Sensitive paths: yes
edit_fileString-match local edits; returns the edited contextSensitive paths: yes
search_replaceBatch string replacements; good for multi-line / multi-site patternsSensitive paths: yes
bashRun shell commands; destructive commands trigger the permission dialogDestructive: yes
grepRegex search with ripgrep semanticsNo
globFilename glob matching (e.g. src/**/*.ts)No
list_directoryList directory contentsNo
change_dirSwitch the agent's current working directoryNo
Sensitive paths

Writes to paths like /etc, ~/.ssh, and shell rc files always trigger the permission dialog — "always allow" cannot skip them. Likewise, rm on source files always needs explicit confirmation.

Background long-running tasks

Pass run_in_background: true to bash and the command launches as a detached process and returns immediately with a PID and a log-file path; the process survives across conversation turns — ideal for dev servers, file watchers, and tunnels, without blocking the session.

Destructive-command guard

High-risk commands like rm -rf, dd, mkfs, and sudo, plus schema-destroying database migrations (e.g. migrate:fresh, db:reset), always force a permission prompt. This confirmation always fires — even a prior "always allow" on bash cannot skip it.

Code graph (8)

This is what sets AtomCode apart from generic agents. With the code-graph index, the model can pinpoint symbols, references, and call relationships without scanning the entire tree — especially valuable on large repos.

ToolPurpose
list_symbolsList all symbols defined in a file or directory (functions, classes, constants, …)
read_symbolRead a symbol's full definition surgically, without dragging the entire file into context
find_referencesFind every location that references a symbol
trace_callersWalk the caller chain of a function backwards
trace_calleesExpand a function's downstream calls
trace_chainSearch for a possible call chain between two symbols
file_depsAnalyse a file's imports / dependency graph
blast_radiusEstimate the files / symbols a change to a given symbol could affect

Typical scenarios

Web (2)

ToolPurpose
web_searchSearch the web for keywords; returns a list of title / snippet / URL
web_fetchFetch a URL and convert it to markdown for the model

Typical uses: looking up the latest docs, comparing library APIs, reading a GitHub issue. In offline environments or to save cost, disable them with --disable-tools web_search,web_fetch.

Automation (2)

ToolPurpose
auto_fixRun the project's lint / typecheck and iterate over the error list until clean
use_skillInvoke a user-defined skill — package a multi-step flow as a reusable command

See Skills for details.

Disabling specific tools

Use the --disable-tools flag at launch to hide tools from the model entirely. For example, inside the SWE-bench sandbox:

atomcode -p "solve this issue" --disable-tools web_search,web_fetch

Disabled tools don't appear in the tool schemas, so the model won't attempt to call a tool guaranteed to fail.

Next steps