Skip to content

Tools System

Tools are the executable capabilities that agents use to interact with the outside world. Each tool provides a set of actions with defined parameter schemas and permission levels.

Built-in tools are registered from the explicit module list in src/tools/discovery.ts, alongside plugin extensions. The sections below describe common tool groups; use GET /api/tools/all and GET /api/tools/role-map for the running inventory and role exposure. Tool handlers and permission action names are related but are not always identical.

Read, write, and manage files and directories within the workspace.

ActionDescription
read_fileRead file contents
write_fileWrite content to a file
append_fileAppend content to a file
list_directoryList directory contents
file_infoGet file metadata
create_directoryCreate a directory
delete_fileDelete a file
copy_fileCopy a file
move_fileMove or rename a file
search_filesSearch for files by pattern

Permissions: read: ALLOW, write: ASK, delete: ASK


Execute commands and manage processes.

ActionDescription
runExecute a shell command
run_backgroundRun a command in the background
whichFind a command’s path
envGet environment variables

Permissions: execute: ASK, elevated: DENY


Full Git operations for version control.

ActionDescription
statusShow working tree status
logView commit history
diffShow changes
addStage files
commitCreate a commit
branchList or create branches
checkoutSwitch branches
pullPull from remote
pushPush to remote
stashStash changes
resetReset changes
cloneClone a repository

Permissions: read: ALLOW, write: ASK, push: ASK


Playwright-based browser automation for web interaction.

ActionDescription
openOpen a new browser
navigateNavigate to a URL
clickClick an element
typeType text into an element
screenshotTake a screenshot
get_textExtract text from the page
get_htmlGet page HTML
evaluateExecute JavaScript
wait_forWait for an element
closeClose the browser
selectSelect from a dropdown
scrollScroll the page
hoverHover over an element
press_keyPress a keyboard key
dragDrag an element to a target
pdfExport the current page as PDF

Permissions: navigate: ASK, screenshot: ALLOW, execute: ASK


Control the user’s real browser via Octipus Chrome extension. Uses existing cookies, sessions, and authentication — no bot detection, no sandboxed environment.

Navigation & Tabs

ActionDescription
navigateNavigate the active tab to a URL
new_tabOpen a new browser tab
close_tabClose a tab by ID
select_tabSwitch to a tab by ID
get_tabsList all open browser tabs

Screenshots & Content

ActionDescription
screenshotTake a screenshot of the active tab
extract_contentExtract text, links, and forms from the page

Interactions

ActionDescription
clickClick an element by CSS selector
fillFill an input field with a value
selectSelect an option from a dropdown
hoverHover over an element
press_keyPress a keyboard key
scrollScroll the page or an element
dragDrag an element to a target

Waiting & Debugging

ActionDescription
wait_forWait for an element or condition
highlightHighlight an element on the page

JavaScript & State

ActionDescription
evaluateExecute JavaScript in the page context
get_cookiesGet cookies for a domain
set_cookiesSet cookies for a domain
get_storageRead localStorage or sessionStorage
set_storageWrite localStorage or sessionStorage

Monitoring

ActionDescription
get_consoleRetrieve captured console log messages
get_networkRetrieve captured network requests

Dialogs

ActionDescription
handle_dialogAccept or dismiss a browser dialog

Permissions: navigate: ASK, screenshot: ALLOW, extract: ALLOW, interact: ASK, evaluate: ASK (dangerous), cookies: ASK (dangerous), tabs: ASK


Search the web and fetch page content.

ActionDescription
searchSearch the web via SearXNG
fetch_pageFetch and extract text from a URL

Permissions: search: ALLOW, fetch: ALLOW

The web search tool uses a multi-tier fallback:

  1. SearXNG — primary meta-search engine (no bot blocking)
  2. Google (Playwright) — browser-rendered Google search
  3. DuckDuckGo (Playwright) — browser-rendered DuckDuckGo search

Manage Docker containers and images.

ActionDescription
list_containersList running containers
start_containerStart a container
stop_containerStop a container
container_logsView container logs
build_imageBuild a Docker image
exec_commandExecute a command in a container

Permissions: read: ALLOW, manage: ASK


Interact with GitHub repositories, issues, and pull requests.

ActionDescription
list_reposList repositories
get_repoGet repository details
issue_listList issues
issue_createCreate an issue
pr_listList pull requests
get_prGet PR details with diff
create_prCreate a pull request
pr_reviewAdd a review to a PR

Permissions: read: ALLOW, write: ASK


Interact with GitLab projects, issues, and merge requests.

ActionDescription
project_listList projects
project_viewGet project details
issue_listList issues
issue_createCreate an issue
mr_listList merge requests
mr_viewGet merge request details
mr_createCreate a merge request

Permissions: read: ALLOW, write: ASK


Interact with Gmail, Calendar, Drive, Docs, Sheets, Contacts, and Tasks.

ServiceActions
Gmailgmail_list, gmail_search, gmail_read, gmail_send, gmail_reply, gmail_labels, gmail_label, gmail_delete
Calendarcalendar_list, calendar_events, calendar_event_get, calendar_event_create, calendar_event_update, calendar_event_delete
Drivedrive_list, drive_search, drive_download, drive_upload, drive_delete
Sheetssheets_read, sheets_write, sheets_create, sheets_info
Docsdocs_read, docs_create, docs_update
Contactscontacts_list, contacts_search, contacts_get, contacts_create
Taskstasks_lists, tasks_list, tasks_get, tasks_create, tasks_complete

Permissions: read: ALLOW, send: ASK, delete: ASK


Interact with Outlook Mail, Calendar, OneDrive, To Do, and Contacts.

ServiceActions
Mailmail_list, mail_search, mail_read, mail_send, mail_reply, mail_folders, mail_delete
Calendarcalendar_list, calendar_events, calendar_event_get, calendar_event_create, calendar_event_update, calendar_event_delete
OneDrivedrive_list, drive_search, drive_download, drive_upload, drive_delete
To Dotodo_lists, todo_tasks, todo_task_get, todo_task_create, todo_task_complete
Contactscontacts_list, contacts_search, contacts_get, contacts_create

Permissions: read: ALLOW, send: ASK, delete: ASK


Send messages to connected channels (Telegram, Slack, Teams).

ActionDescription
sendSend a message to a channel
list_channelsList connected channels

Permissions: send: ASK


Hybrid search and indexing over eligible knowledge content (raw source code is excluded). Supports multiple search modes: hybrid (BM25 + vector, default), fts (full-text only), and vector (semantic only).

ActionDescription
search_knowledgeHybrid search across indexed documents (BM25 + vector)
read_knowledgeLoad full content for a specific entry
index_fileIndex a file for search
index_directoryIndex a directory recursively

Permissions: read: ALLOW, index: ALLOW


Process, categorize, and manage uploaded documents with OCR.

ActionDescription
uploadUpload and queue documents for processing
listList processed documents with filters
getGet document details including OCR text

Permissions: read: ALLOW, upload: ASK


Create and manage hooks and scheduled tasks.

ActionDescription
list_hooksList automation hooks
create_hookCreate a new hook or scheduled task
update_hookUpdate an existing hook
delete_hookDelete a hook
toggle_hookEnable or disable a hook

Permissions: read: ALLOW, manage: ASK


Personal to-do items with completion tracking.

ActionDescription
list_tasksList all tasks with status
create_taskCreate a new task
complete_taskMark a task as complete
update_taskUpdate a task

Permissions: read: ALLOW, write: ASK


Voice I/O and phone call integration.

ActionDescription
make_callStart an outbound call (notify or conversation mode)
end_callHang up an active call

Permissions: initiate: ASK, manage: ALLOW


Create, view, and manage artifacts (code snippets, documents, outputs).

ActionDescription
create_live_artifactCreate a new artifact
list_live_artifactsList artifacts
get_live_artifactGet artifact details
update_live_artifactUpdate an artifact
delete_live_artifactDelete an artifact

Permissions: read: ALLOW, write: ASK, delete: ASK


Discover and validate artifact specifications. Handlers are list, search, describe, design, and validate; the manifest permission action is discover.


Capture web pages and inspect their appearance with a vision model. The current handlers are analyze_page and compare_pages, under the analyze permission (default ALLOW). This tool is not an image-generation API.


Read-only inter-agent workflow state tracking. Different from the Tasks tool — used for tracking agent-to-agent work status, not user to-do items.

ActionDescription
read_task_stateRead workflow state for a task
list_recent_session_tasksList all workflow states

Permissions: read: ALLOW

Each tool action has one of three permission levels:

LevelBehavior
ALLOWTool executes immediately without user intervention
ASKAttended execution requests approval; unattended execution rejects the action without a live approval channel
DENYTool call is blocked entirely

Permissions can be customized per-user via the web UI Settings page or the API.

Built-in registration uses a static module list so bundled builds retain the tools. ENABLED_TOOLS is not a supported runtime allowlist. Use role exposure and permission rules to control availability and authorization; adding a built-in module requires registering it in src/tools/discovery.ts.

The inventory also includes groups such as Atlassian, data, notes, planning, repository registry, skill distillation, and MCP administration. The running API and generated repository catalog provide their current schemas.

Provider-agnostic batch email processing. Iterates emails one-by-one with per-email classification and actions instead of dumping all into context.

ActionDescription
process_emailsFetch and return emails in batches with continuation tokens
get_email_summaryGet detailed summary of a single email

Supports both Gmail and Outlook. Includes pagination via page_token (Gmail) or skip (Outlook).

Store and recall information about people, organizations, and relationships.

ActionDescription
list_profilesList all known people/entities
get_profileGet profile by ID or name
create_profileCreate a new profile
add_factAdd a fact (location, birthday, preference)
search_profilesSearch by name or fact values

The user’s own profile (isUserProfile: true) is included in supported agent prompt construction.

Extend Octipus with drop-in plugins. Create a directory in extensions/ with a plugin.json manifest and an index.ts entry file. Plugins are loaded at startup and their tools are registered automatically.

extensions/
my-plugin/
plugin.json # name, version, tools
index.ts # tool implementations

API: GET /api/plugins, POST /api/plugins/:name/reload

See the Plugins documentation for details.

Direct unattended tool API calls that resolve to ASK return HTTP 409. Preconfigure narrowly scoped ALLOW rules where appropriate; discovery does not grant authorization. External CLI-native actions are outside this middleware; see CLI Providers.