Seshat AIDocumentation

Documentation / Reference

Built-in tools

The tools the agent can use out of the box, grouped by theme: what each does, whether it only reads, and what it needs to be available.

A tool is something the model can ask Seshat to do: read a file, run a command, search the web. Each tool is declared, and the agent only uses the ones it is given. Sensitive calls ask for your approval first, as described in Security and trust.

How to read the tables

  • Read-only says whether the tool changes nothing. The runtime treats a read-only call more leniently and may run several in parallel.
  • Available says whether the tool is offered to the model. “Yes” means it is active without any configuration. Otherwise it names what is missing: a provider, a key or a service. A tool that is not available is left out of the list the model sees.
  • To add your own tools in Go, see Tools. Tools from MCP servers are described in Skills and MCP.

The runtime registers 129 tools, and sdk.NewClient adds 3 more (agent, spawn_agent, resume_agent). 95 of the registered ones are active in an environment with no key, no provider and no service configured; the others wait for what the last column names. client.ToolNames() lists the active ones only.

Files, shell and documents

ToolWhat it doesRead-onlyAvailable
apply_patchApply a structured multi-file patch that can add, delete, update, and rename files in one atomic call.NoYes
bashExecute shell commands in the current directory.NoYes
convert_documentConvert a local file to markdown using the configured document reader: OCR, layout analysis, table structure, and audio transcription.YesYes
create_directoryCreate a directory and any necessary parent directories.NoYes
docx_editCreate a new Word (.docx) document, or find/replace edit an existing one’s text.NoYes
edit_fileEdit an existing file by replacing an exact string with a new one.NoYes
excel_editWrite values (and formulas) into an Excel (.xlsx) spreadsheet, creating the file or sheet if they don’t exist yet.NoYes
get_file_metadataReturn metadata for a file or directory: size, type (file/dir/symlink), permissions, timestamps.YesYes
globFind files in the workspace by name or extension using glob patterns.YesYes
grepSearch for text patterns in files using regular expressions.YesYes
job_killKill a running background bash job.NoYes
job_outputRead buffered stdout/stderr from a background bash job, plus its current status.NoYes
list_directoryList the files and directories inside a path.YesYes
read_document_urlFetch a document at a URL and convert it to readable markdown.YesYes
read_fileRead the contents of a file.YesYes
remove_fileDelete a file or directory.NoYes
render_document_pageRender one page of a local document to a PNG image for visual inspection, then attach it to the conversation as an image (in the message that follows this…YesYes
search_startStart a content search as a background job instead of blocking until it finishes - use this instead of grep for a search that might be slow (huge directory,…YesYes
write_fileWrite the full content of a file.NoYes
write_pdfCreate a new PDF from plain/markdown-ish text, append text as new page(s) to an existing PDF, or delete pages from an existing PDF.NoYes
write_stdinWrite text to a running background task’s stdin and read back what it produces.NoYes

Skills

ToolWhat it doesRead-onlyAvailable
seshat_list_skillsList the skills available to the current Seshat runtime, including builtin, managed, user, project, MCP, and installed repo collections.YesYes
seshat_read_skillRead the full content of a Seshat skill by name, including skill.md and the bundled files present in that skill directory.YesYes
seshat_validate_skillValidate a Seshat skill directory against the runtime’s expected structure and frontmatter fields.YesYes
skillRun a skill.NoYes

Web and browser

ToolWhat it doesRead-onlyAvailable
browser_clickClick an interactive element from the latest browser snapshot using its element_id.NoYes
browser_close_pageClose a browser page in the current Seshat session.NoYes
browser_extractExtract a richer text-oriented view of the current browser page, including semantic headings when available.YesYes
browser_get_network_policyReturn the current browser session request blocking policy, including blocked URL patterns and resource policy preset.YesYes
browser_list_downloadsList recent browser downloads captured for the current session.YesYes
browser_list_pagesList all browser pages associated with the current Seshat session.YesYes
browser_navigateNavigate an existing browser page to a URL.NoYes
browser_network_listList recent browser network activity captured for the current session.YesYes
browser_openOpen a new browser page in the current Seshat session.NoYes
browser_pressSend a keyboard key such as Enter, Tab, Escape, ArrowDown, or PageDown to the active browser page.NoYes
browser_screenshotCapture a PNG screenshot of the active browser page and return it as base64 data.YesYes
browser_scrollScroll the active browser page up, down, left, or right by a configurable amount.YesYes
browser_search_contentSearch across the text, titles, URLs, and headings of snapshots previously captured in the current browser session.YesYes
browser_select_pageSelect the active browser page to target subsequent page-less operations.NoYes
browser_set_network_policyReplace the current browser session request blocking policy.NoYes
browser_snapshotCapture a compact agent-facing snapshot of the current browser page including visible text and indexed interactive elements.YesYes
browser_typeType text into an editable element from the latest browser snapshot using its element_id.NoYes
browser_waitWait for the active browser page to stabilize, or until page text contains a requested string.YesYes
web_fetchFetch content from a specified URL and process it using a prompt-oriented extraction.YesYes
web_searchSearch the web for current information.YesYes

Research and communities

ToolWhat it doesRead-onlyAvailable
appstore_reviewsRead customer reviews of an app in the Apple App Store: rating, title, text, version, author and date.YesYes
appstore_searchFind apps in the Apple App Store by name or topic.YesYes
devto_articleFetch a single dev.to article with full content.YesYes
devto_feedList recent articles from dev.to, optionally filtered by tag.YesYes
devto_publishCreate or update an article on dev.to.NoYes
hn_itemFetch a single Hacker News story or comment thread by ID.YesYes
hn_searchSearch Hacker News posts and comments using Algolia.YesYes
hn_storiesFetch stories from Hacker News feeds.YesYes
places_reviewsRead the reviews of a place on Google Maps, with its average rating and number of ratings.YesWith the key google_places_api_key
places_searchFind businesses and places on Google Maps by name, type and area (a restaurant, a shop, a service company).YesWith the key google_places_api_key
reddit_postRead one Reddit post with its comments (the discussion under it), indented by reply depth.YesWith the keys reddit_client_id and reddit_client_secret
reddit_postsList posts of a subreddit.YesWith the keys reddit_client_id and reddit_client_secret
reddit_searchSearch public posts on Reddit, across Reddit or inside one subreddit.YesWith the keys reddit_client_id and reddit_client_secret
trustpilot_companyLook a company up on Trustpilot by its website’s domain: its TrustScore, stars and number of reviews, and the id that trustpilot_reviews accepts.YesWith the key trustpilot_api_key
trustpilot_reviewsRead the public Trustpilot reviews of a company: stars, title, text, author, country and date, and the company’s reply when there is one.YesWith the key trustpilot_api_key
youtube_commentsRead the comments under a YouTube video: author, text, likes, date, and the first replies.YesWith the key youtube_api_key
youtube_searchSearch YouTube videos (reviews, comparisons, reactions).YesWith the key youtube_api_key

Notebooks

ToolWhat it doesRead-onlyAvailable
notebook_createCreate a new Jupyter notebook (.ipynb) file.NoYes
notebook_editEdit cells in a Jupyter notebook - single operation or batch.NoYes
notebook_executeExecute all (or selected) cells in a Jupyter notebook using a live kernel.NoYes
notebook_kernelManage Jupyter kernels: list, start, restart, interrupt, or stop.NoYes
notebook_readRead and display the contents of a Jupyter notebook (.ipynb) file.YesYes
notebook_runRun arbitrary code in a Jupyter kernel and return the output.NoYes
notebook_writeWrite an entire Jupyter notebook in one shot - creates or fully replaces the file.NoYes

Code and context

ToolWhat it doesRead-onlyAvailable
code_completeFill in code at the cursor position using a FIM (fill-in-the-middle) model.NoWith a fill-in-the-middle model
get_configGet the currently effective security policy: which commands need approval or are always blocked, which paths are protected from reads/writes, file-read…YesYes
lspThis tool provides Language Server Protocol (LSP) features for code intelligence.NoYes
repo_mapBuild a compact structural map of the current repository.YesYes
workflow_draftValidate and render a static workflow DAG draft as YAML or JSON.YesYes

Plans, tasks and goals

ToolWhat it doesRead-onlyAvailable
create_goalSet a persistent goal for the current session.NoYes
enter_plan_modeEnter plan mode, to explore and agree on a plan before changing anything.YesYes
exit_plan_modeLeave plan mode once you have approved the submitted plan.NoYes
get_goalReturn the current goal for this session, including live usage metrics.YesYes
submit_planSubmit a plan for your review while in plan mode.NoWith a PlanStore
task_createCreate a new task in the task list to track execution steps.NoYes
task_getGet detailed information about a specific tracked task or background task by its ID.NoYes
task_listList tracked session tasks and/or background runtime tasks.NoYes
task_stopStop tracking a session task, or stop a running background task by its ID.NoYes
task_updateUpdate a task’s status, details, or dependencies.NoYes
update_goalUpdate the active goal’s status and/or objective.NoYes

Sub-agents

ToolWhat it doesRead-onlyAvailable
agentRun a sub-agent on a focused task, with the tools of its type, and get its result back.NoYes
close_agentTerminate a sub-agent and remove it from the active registry.NoYes
list_agentsList all currently active sub-agents and their status.YesYes
resume_agentResume a sub-agent that has finished and give it a new task, with its history intact.NoYes
send_agent_messageSend a message to a running sub-agent.NoYes
spawn_agentStart a background sub-agent on a task.NoYes
wait_agentBlock until a previously spawned agent finishes, then return its result.YesYes

Worktrees

ToolWhat it doesRead-onlyAvailable
enter_worktreeCreates an isolated git worktree and switches the session into it.NoYes
exit_worktreeExits a worktree session and returns to the original working directory.NoYes

Scheduling

ToolWhat it doesRead-onlyAvailable
delete_jobPermanently delete an automation job.NoWith AutomationServiceURL
list_jobsList all automation jobs for the current user.YesWith AutomationServiceURL
pause_jobPause an active automation job so it stops triggering.NoWith AutomationServiceURL
resume_jobResume a paused automation job.NoWith AutomationServiceURL
run_job_nowImmediately trigger a single run of an automation job, regardless of its schedule.NoWith AutomationServiceURL
schedule_jobCreate a new automation job that runs an agent on a defined schedule.NoWith AutomationServiceURL
update_jobUpdate an existing automation job’s configuration.NoWith AutomationServiceURL

Memory and knowledge

ToolWhat it doesRead-onlyAvailable
memory_add_observationsAppend new observations to existing entities in the knowledge graph.NoWith the memory service (EnableMemory)
memory_create_entitiesCreate one or more entities in the long-term memory knowledge graph.NoWith the memory service (EnableMemory)
memory_open_nodesRetrieve specific entities from the knowledge graph by their exact names, along with relations that connect them.YesWith the memory service (EnableMemory)
memory_search_nodesSearch for entities in the long-term memory knowledge graph.YesWith the memory service (EnableMemory)
rag_deleteDelete an entire corpus (omit file_id/filename), or just one file’s chunks within a corpus (provide file_id or filename).NoWith a RAGService
rag_ingestChunk a text document into a named corpus for later search.NoWith a RAGService
rag_searchSearch a document corpus using semantic similarity (or keyword/BM25 ranking when no embedding provider is configured - same tool either way).YesWith a RAGService

Media

ToolWhat it doesRead-onlyAvailable
generate_imageGenerate an image from a text prompt using the configured image generation provider.NoWith an ImageGeneration provider
speech_to_textTranscribe audio to text using the configured STT provider (Whisper or equivalent).NoWith a SpeechToText provider
text_to_speechConvert text to speech audio using the configured TTS provider.NoWith a TextToSpeech provider

Calculation

ToolWhat it doesRead-onlyAvailable
calculatorPerform mathematical calculations: basic arithmetic, advanced functions, and expression evaluation.YesYes
financial_calcPerform financial calculations: interest, loan payments, ROI, and present/future value.YesYes
statisticsPerform statistical analysis on a numeric dataset.YesYes
unit_convertConvert values between units of measurement.YesYes

Interaction and control

ToolWhat it doesRead-onlyAvailable
ask_user_questionAsks the user multiple choice questions to gather information, clarify ambiguity, understand preferences, make decisions or offer them choices.YesYes
mcpCall a tool of a connected MCP server.YesYes
monitorExecute a shell command in the background and stream its stdout line-by-line as notifications.NoYes
request_permissionsRequests additional permissions before performing an operation that exceeds the current authorization.NoYes
tool_searchFind deferred tools (MCP tools, for example) that are not in the first tool list.YesWith EnableToolSearch

Planned, not active

These tools are registered but always off. They have no working implementation yet: do not count on them.

ToolWhat it was meant to do
discord_sendSend a message to a Discord channel via webhook or Bot API.
email_sendSend an email via SMTP.
git_branchList, create, switch, or delete git branches.
git_commitStage files and create a git commit.
git_diffShow changes between commits, working tree, or staged index.
git_logShow the commit history of a git repository.
git_statusShow the working tree status of a git repository.
slack_sendSend a message to a Slack channel or user.
telegram_sendSend a message to a Telegram chat, group, or channel via Bot API.
twitter_searchSearch recent tweets on Twitter/X (last 7 days, free tier).
twitter_tweetPost a tweet on Twitter/X.
whatsapp_sendSend a WhatsApp message via the Business Cloud API.

Limit the tools of an agent

You do not have to give an agent every tool. A sub-agent type has its own tool list, and the tools parameter of a call narrows it further. See Agents and delegation. ManagedPolicy.ForbiddenTools in ClientConfig removes tools for every agent of a host.

Updated on 2026-10-16