仓库 →

Built-in Tools

AtomCode ships built-in tools for filesystem & shell, code graph, web, automation, and native AtomGit operations. The model picks tools per task — you almost never need to specify them 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.

AtomGit integration (3)

After /login, the model can operate AtomGit directly through these built-in tools. Describe the outcome in natural language; there is no /issue slash command.

ToolPurposeConfirmation?
atomgit_repoList, inspect, create, delete, fork, or clone repositories; create tags and manage project labelsWrites: yes
atomgit_prList, inspect, create, close, and comment on pull requests; link or unlink related IssuesWrites: yes
atomgit_issueList or inspect Issues; create an Issue and view, add, edit, or delete commentsWrites: yes
Ask: Create an AtomGit issue for this bug, including the reproduction steps and environment.

Large tool outputs

When a tool result is too large, AtomCode shows a stable preview and stores the full content with the current session. The model can page through the remainder with fetch_output, so “output truncated” does not mean the result was lost. Stored output is removed when its session is deleted.

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