RolitRolit Docs
Rolit CLI

Agent tools

The tools the Rolit agent can call in the CLI, how they load, and how each is approved.

When you chat or run a goal, the agent works by calling tools. Some read and edit files in your workspace, others search the web, drive a browser, or run marketing jobs. You don't call tools directly. You can control which are available, and what needs your approval.

Tool families

FamilyWhat it doesPage
local.*Read, search, write, and edit files; run commands; ask you questions; keep a checklistWorkspace tools
web.*Search the web and fetch public pagesWorkspace tools
media.*Understand and generate images, audio, music, sound, videoWorkspace tools
deployPublish a file or site to a public URLWorkspace tools
local.memorySave and recall long-term notesWorkspace tools
browser.*, computer.*Drive your Chrome browser or your desktopBrowser and desktop
seo.*, aeo.*, link.*, rank.*Audit sites for search and AI-answer visibilityMarketing tools
research.*, content.*, creative.*, social.*, email.*, analytics.*Research, drafting, media, and email lintMarketing tools
crm.*, outreach.*, meeting.*, sales.*Sales work against a CRMMarketing tools
ads.*, google.*Paid ads and Google WorkspaceMarketing tools
lsp.*, duckdb.*, setup.*, agent.*, <server>.<tool>Code intelligence, data, installs, subagents, MCP serversExtensions

How tools load

Core tools (reading, writing, editing, commands, asking you a question) are sent to the model at the start of every turn. Most other tools are deferred: the model sees their names and loads the full definition on demand with a built-in tool_search tool.

AvailabilityTools
Always onlocal.*, web.*, tool_search
On by defaultlocal.todo (turn off with --no-todo or /todo off) and media.extract_text
On when enabledmedia.* generation (/media), deploy (/deploy), browser.* (/browser), computer.* (/computer)
On when configuredlsp.*, MCP server tools, duckdb.* after /setup duckdb
Needs a tool packseo.*, research.*, crm.*, and other marketing tools
Chat onlyagent.* and duckdb.* exist only in interactive chat

Tool packs

Marketing tools are enabled by packs listed in tools.gtm.packs in .rolit/config.json:

PackAdds
marketerSEO and AEO, content, email, social, ads, analytics
bloggerSEO and AEO, content
creatorContent, creative, social, sponsor tracking
salesCRM, outreach, meetings, sales documents
gtm-teamThe families above, combined

/seo on adds the marketer pack. A tool from a pack that is off fails as unknown_tool. Tools that can publish, send, or spend are not offered in plain REPL, piped, or --json runs.

How tools are approved

Every tool call is assigned a risk tier before it runs. The model doesn't choose the tier.

TierMeaningDefault behavior
MetadataSession bookkeeping, asking you a questionNever asks
ReadReads workspace or public contentFollows the approval mode
Protected readReads credential files or VCS internalsAsks outside auto
WriteChanges files or an external sessionAsks in cautious; allowed in auto and edits
CommandRuns or inspects a processAsks in cautious and edits; allowed in auto
GenerateUses a metered provider (images, video, music)Asks in cautious and edits; allowed in auto
MeteredA costly data call with a price shown firstAlways asks, even in auto
Browser navigationOpens a URL in the browserAllowed in auto; asks otherwise
Browser controlInput on an authenticated browserAllowed in auto interactively; asks in cautious and edits
Desktop controlReads or controls any visible appSame as browser control
External MCPA connected MCP server with unknown riskAsks unless session Auto is on
PublishMakes something publicly reachableAlways asks. Pending in scripts
SendDelivers a message to someone elseAlways asks. Pending in scripts
SpendCommits money outside Rolit creditsAlways asks. Pending in scripts
Explicit consentInstalls software, starts background work, or replaces dataAlways asks
Bulk writeChanges more than 25 CRM recordsAlways asks
High risk, outside workspaceDestructive or escaping the workspaceAlways denied

plan-only denies every tier that has a side effect. The session Auto switch (Shift+Tab) never promotes Publish, Send, Spend, Metered, or Bulk write, and never overrides a denial. Subagents can never hold a Send or Spend tool. See Approval modes.

Results and errors

Tool results are JSON. Failures share one shape: a code, a message, and whether retrying can help.

{ "error": { "code": "stale_hash", "message": "...", "retryable": false } }

Common codes:

CodeMeaning
approval_deniedPolicy denied the call, no prompt was possible, or you declined.
path_protectedThe target is a protected path.
stale_hashThe file changed on disk since the agent last read or wrote it.
read_requiredAn edit targeted a file that hasn't been read in this session.
ambiguous_matchThe text to replace occurs more than once.
no_matchThe text to replace wasn't found.
already_existsA create write targeted an existing path.
binary_fileThe file isn't UTF-8 text or a supported image.
not_foundThe path or resource doesn't exist.
invalid_argsThe arguments don't match the tool's schema.
upstreamA provider or server error. Retryable only when retryable is true.

A non-interactive run that reaches a publish, send, or spend call gets this instead of running it, and exits with code 21:

{ "status": "approval_pending", "pending_action_id": "pa_xxxxxxxxxxxx" }

On this page