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.

Octipus ships with 17+ built-in tools, plus a plugin system for custom extensions:

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
list_issuesList issues
create_issueCreate an issue
list_prsList pull requests
get_prGet PR details with diff
create_prCreate a pull request
review_prAdd a review to a PR

Permissions: read: ALLOW, write: ASK


Interact with GitLab projects, issues, and merge requests.

ActionDescription
list_projectsList projects
get_projectGet project details
list_issuesList issues
create_issueCreate an issue
list_mrsList merge requests
get_mrGet merge request details
create_mrCreate 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 project files and tiered content. 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

Each tool action has one of three permission levels:

LevelBehavior
ALLOWTool executes immediately without user intervention
ASKAgent pauses and requests user approval before executing
DENYTool call is blocked entirely

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

Tools are enabled via the ENABLED_TOOLS environment variable:

ENABLED_TOOLS=filesystem,shell,git,browser,websearch,docker,github,gitlab

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 automatically injected into every agent’s system prompt.

Extend Octipus with drop-in plugins. Create a directory in extensions/ with a plugin.json manifest and an index.ts entry file. Plugins are hot-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.