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 24 built-in tools, auto-discovered from src/tools/ at startup, 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


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
delete_taskDelete a task
update_taskUpdate a task

Permissions: read: ALLOW, write: ASK


Voice I/O and phone call integration.

ActionDescription
initiate_callStart an outbound call (notify or conversation mode)
continue_callSend a message in an active call
end_callHang up an active call
get_statusCheck call state
list_callsList all active calls

Permissions: initiate: ASK, manage: ALLOW


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

ActionDescription
create_artifactCreate a new artifact
list_artifactsList artifacts
get_artifactGet artifact details
update_artifactUpdate an artifact
delete_artifactDelete an artifact

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


Utilities for working with artifacts (syntax highlighting, export, etc).

ActionDescription
export_artifactExport artifact in various formats
syntax_highlightApply syntax highlighting

Permissions: read: ALLOW


Image generation and analysis.

ActionDescription
generate_imageGenerate an image from a prompt
analyze_imageAnalyze or describe an image

Permissions: generate: ASK, analyze: ALLOW


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_stateRead workflow state for a task
list_statesList all workflow states

Permissions: read: ALLOW

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 auto-discovered from src/tools/ at startup. To disable tools, modify the discovery config or set ENABLED_TOOLS environment variable:

ENABLED_TOOLS=filesystem,shell,git,browser,websearch,docker,github,gitlab,google-workspace,microsoft365,messaging,scheduling,tasks,voice,artifacts,visual,knowledge,documents,email-processor,profiles,browser-ext,task-state,artifacts-toolbox

All 24 tools are enabled by default if this variable is not set.

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.