Agents and features

Tools

The tools Hull uses to read, edit, run and search, and how permissions control them.

Hull gets work done through tools: small, specific actions such as reading a file, editing it, running a command or searching the web. You describe the outcome, and Hull decides which tools to call, in what order, and shows each call in the session as it happens.

How a tool call works

  1. Hull picks a tool and its inputs based on your request and what it has learned so far.
  2. Hull checks your permissions. The call runs, waits for your approval, or is blocked.
  3. The result goes back to Hull, which decides what to do next.
  4. This repeats until the task is done or Hull needs your input.

Built-in tools

ToolWhat it does
readReads a file, with line numbers.
globFinds files by pattern, such as src/**/*.test.ts.
grepSearches file contents with a regular expression.
semantic_searchFinds code by meaning. Available when codebase indexing is on.

Edit

ToolWhat it does
editReplaces exact text in a file.
writeCreates a file or overwrites one.
apply_patchApplies a patch. Used instead of edit with models that work better with patches.

Run

ToolWhat it does
bashRuns a shell command in your project. On Windows it can use PowerShell or cmd, but the tool and its permission are still called bash.
background_processStarts and manages long-running processes such as dev servers and watchers, so they don't block the session.
interactive_terminalRuns a command that needs your input in a terminal you can type into. CLI and Desktop.

Web

ToolWhat it does
webfetchFetches a URL and returns its content.
websearchSearches the web. Available when you use models through Hull Gateway.

Workflow

ToolWhat it does
taskHands work to a subagent that runs in its own session and reports back.
todowriteCreates and updates the session's task list.
questionAsks you a question with suggested answers.
skillLoads a skill.
plan_exitEnds planning in the Plan agent and asks whether to start building.
suggestSuggests reviewing the changes once implementation is done. CLI and VS Code.

Memory

ToolWhat it does
hull_local_recallSearches past conversations from this project on your machine, including its worktrees.
hull_memory_recall, hull_memory_saveRead and save notes in the project's memory.

VS Code only

ToolWhat it does
agent_managerStarts and coordinates Agent Manager sessions.
browser_openOpens your local app in the Agent Manager's browser panel. See Browser use.

MCP tools

Tools from connected MCP servers appear alongside the built-in ones, named <server>_<tool>.

Which tools an agent sees depends on the agent. Ask and Plan can't edit files, and Ask can't start subagents. See Agents.

Permissions

Every tool call is checked against your permission rules. Each rule resolves to allow (run it), ask (wait for your approval) or deny (block it).

With the default rules for the Code agent:

ToolDefault
Most tools, including read, edit, write, webfetch and taskallow
bashask, except a list of read-only commands such as cat, ls and pwd, which are allowed
Reading .env filesask (.env.example is allowed)
Files outside your project (external_directory)ask
hull_local_recall, hull_memory_recall, hull_memory_saveask
The same call repeated in a loop (doom_loop)ask

How Hull asks depends on the app's permission setting. In Desktop, for example, you can have Hull ask before edits and commands, approve on your behalf, or act without asking. See Your first session and Auto-approve.

When Hull asks, you can approve once, always allow matching calls, or decline.

Set rules in hull.jsonc:

{
  "permission": {
    "edit": "ask",
    "bash": {
      "*": "ask",
      "npm test": "allow",
      "git push *": "deny"
    },
    "webfetch": "allow"
  }
}

See Permissions for patterns, file paths and per-agent rules.

On this page