Tools reference

Seanos AI ships up to 57 tools the agent can call from inside a chat. The free edition is 41 tools on WordPress, 40 on Joomla — the one-tool gap is extension_state, which has no Joomla analogue (Joomla folds it into discover_extensions). The Pro add-on adds the same 16 developer-grade tools on either platform.

Every tool has the same canonical name on both platforms — read_file does the same thing whether the agent is running inside WordPress or Joomla, just bounded to the right install root. Where the implementations diverge meaningfully (different config tables, different extension lifecycle), the WordPress and Joomla notes are inline.

Attachments

Drop a file into the chat composer and the agent sees it on the next turn. Four buckets, with provider-specific delivery:

KindFormatsWhat the model sees
Image.png, .jpg, .gif, .webpOn any vision-capable model: native image input. On text-only models: a graceful "doesn't accept image inputs" error — switch to a vision model.
Text.txt, .md, .csv, .json, source filesInlined as a text content part, capped at 200 KB per attachment.
Office.docx, .xlsx, .pptx (Office Open XML)Plain text extracted server-side via PHP's native ZipArchive + DOMXPath (no composer dependencies) and inlined as a text block. The original binary stays on disk for download. Legacy .doc / .xls / .ppt aren't supported — re-save as OOXML. 10 MB cap per file.
PDF.pdfOn Anthropic and Gemini: native PDF blocks (the model reads tables, layout, embedded images). On OpenAI / Grok / DeepSeek / GitHub Models / Ollama / generic openai-compatible: shells out to pdftotext (poppler-utils) for plain-text extraction. If poppler isn't installed, the agent gets a "install poppler-utils or switch to Anthropic / Gemini" note.

Every provider sees attachments — previously only Anthropic and Gemini did. The plugin doesn't silently filter; if a model can't accept an attachment kind, the operator gets a clear error and the option to switch model.

Code blocks in chat

Fenced code blocks ( `language ... ` ) render with a dark-themed header that shows the language label and a Copy button on the right. Same style on WordPress and Joomla — chats look identical across platforms.

Free tier — 41 tools (WordPress) / 40 tools (Joomla)

These ship with the free edition for both platforms.

Read & inspect

ToolDescription
get_wordpress_context (WP) / get_joomla_context (Joomla)Snapshot CMS, PHP, DB, theme/template, extensions and paths for the running site.
read_fileRead a text file under the install root. Refuses wp-config.php / configuration.php, secrets, cache, and paths outside the root.
list_directoryList the immediate contents of a directory under the install root.
globFind files matching a glob pattern (supports **, *, ?, [abc]).
list_logsList log files. WP: wp-content/debug.log and wp-content/seanosai-logs/. Joomla: administrator/logs/.
tail_logRead the last N lines of a log file with optional grep.
list_extensionsList installed plugins / modules / templates / themes with active state and version.
extension_state (WP)Return active / version state for a single plugin file or theme slug. (Joomla folds this into discover_extensions.)
discover_extensionsWP: alias of list_extensions for cross-platform parity. Joomla: runs the extension discovery scan.
list_mediaList files under the uploads directory. WP: wp-content/uploads/. Joomla: /images/.
list_usersList CMS users with their roles / groups. Filterable by name / email / login substring and role / group id. Sensitive columns (password, otpKey, activation key) never returned. Default limit 50, max 500.
list_tagsList taxonomy / category terms with their post counts. Optional taxonomy arg — defaults to post_tag on WordPress, #__tags on Joomla.
list_widget_instances (WP) / list_module_instances (Joomla)Walk the active widget assignments / module instances, grouped by sidebar / position.
list_redirectsRead redirect rules. WP: the Redirection plugin (John Godley); returns an "install Redirection plugin" stub when the table doesn't exist. Joomla: #__redirect_links (com_redirect).

Database (read-only)

ToolDescription
query_databaseRun a read-only SELECT / SHOW / DESCRIBE / EXPLAIN query.
describe_tableShow columns and indexes for any CMS table.
run_sqlRead-only SQL with a verb whitelist; results surfaced for inspection.
get_global_configRead a curated subset of CMS options. WP: blogname, default_role, permalinks, etc. Joomla: the config Registry, with secrets redacted.
get_component_paramsReturn Seanos AI's own settings with API keys redacted.

Web fetch

ToolDescription
fetch_urlGET a public HTTP(S) URL with private-IP guard. Up to 200 KB of body.
fetch_page_metadataFetch a public page and extract title, description, canonical URL, h1.
inspect_local_urlHit a path on this site for a quick smoke check.
download_assetSave a public asset under the platform's downloads dir. WP: wp-content/uploads/seanosai-downloads/. Joomla: media/seanosai/downloads/.
crawl_site_auditAudit a small list of local paths and report status / title / image-alt / internal-link metadata.

Cache

ToolDescription
clear_cacheWP: flush the WordPress object cache and expired transients. Joomla: clear cache groups (all or a single named group).
rebuild_menuRebuild menu metadata. WP: flush nav-menu and term caches. Joomla: rebuild the #__menu nested-set tree.

Content

ToolDescription
create_articleCreate a post / page / com_content article. Both platforms auto-suffix the alias on collision.
edit_articleUpdate title / body / status / excerpt on an existing article.
create_categoryCreate a category, taxonomy term, or tag. Joomla: any extension that uses #__categories.
create_menu_itemAdd an item to a navigation menu / #__menu row.
create_custom_fieldWP: set post meta on any post. Joomla: create a #__fields entry.
upload_mediaUpload a file to the media library / /images/; MIME is sniffed from the bytes (not trusted from the filename).
import_chat_attachmentMove an attachment dropped into the chat into the media library / /images/seanosai/imports/.
resize_imageResize an image using the platform's image editor.

Users & roles / ACL

ToolDescription
create_userCreate a CMS user with a chosen role / group.
assign_user_groupWP: assign a role. Joomla: add or remove from a #__usergroups row.
create_view_levelWP: create a role (closest analogue to a Joomla view level). Joomla: create a #__viewlevels row pointing at a list of group ids.
set_action_permissionGrant or revoke a capability on a role / ACL action on an asset.

Extension activation

ToolDescription
enable_extensionActivate a plugin (WP) or enable an installed extension by id or by type / element / folder / client (Joomla).
disable_extensionDeactivate / disable, same shape as enable_extension.

Image generation

ToolDescription
generate_imageGenerate a raster image from a text prompt using the conversation's configured image provider. Currently OpenAI (DALL·E 3 / gpt-image-1 / gpt-image-2) and Google Gemini (Imagen 3 / gemini-2.5-flash-image / "Nano Banana") implement it; other providers return a "switch provider" error. The image is saved to the platform's media tree (wp-content/uploads/seanosai-ai/ on WordPress, /images/seanosai-ai/ on Joomla) and surfaced back to the chat as ![alt](url) markdown the renderer turns into an inline image. Approval-gated.

Each conversation has its own chat-provider, chat-model, image-provider, and image-model selector in a compact chat header. Image generation defaults to "use chat provider"; switching the image-provider (e.g. chat with Anthropic, generate images with OpenAI) is a per-conversation choice.


Pro tier — 16 tools (WordPress) / 29 tools (Joomla)

These ship in the WordPress Pro plugin or the Joomla Pro plugin. The free editions don't contain their source code; installing the Pro package alongside registers them via the public extension hook (seanosai_register_tools action on WordPress, onSeanosaiRegisterTools event on Joomla).

The Joomla Pro plugin carries 13 extra tools beyond the shared Pro core. They cover module-instance lifecycle, edit + delete coverage for users / menus / categories / articles, tags + redirects, mail testing, and Smart Search reindex — surface area Joomla operators expect from a one-stop admin agent. The WordPress Pro plugin keeps to the leaner shared core; WordPress operators reach the same surface through query_database + run_sql_write plus the free tier's edit_article / delete_* tools.

Every Pro write tool snapshots the prior state into the audit log before it edits, so restore_snapshot can roll any single change back without restoring the whole site.

File editing

ToolDescription
write_fileWrite a UTF-8 text file. Snapshots the existing bytes first so you can roll back any time.
edit_fileReplace an exact substring in a file. Supports replace_all and produces a unified diff.
delete_fileRemove a file under the install root. Refuses paths Seanos AI flags as protected.
create_directoryCreate a directory tree under the install root.
restore_snapshotRoll any Pro write tool back to its pre-edit state from the audit log.

Database edits

ToolDescription
run_sql_writeRun one write SQL statement after operator approval — INSERT, UPDATE, DELETE, DDL.
set_global_configWP: update an allow-listed WordPress option. Joomla: patch allow-listed keys in the global configuration.
set_component_paramsWP: patch Seanos AI plugin settings (provider keys excluded). Joomla: patch any component / module / plugin / template params (merge or replace).

Developer

ToolDescription
run_php_lintRun php -l on a file under the install root and surface any syntax issues.

Plugin & extension authoring

ToolDescription
create_pluginWP: scaffold a plugin directory and main file. Joomla: scaffold a plugin (group + element).
create_moduleWP: alias of create_plugin for a widget-style mini-extension. Joomla: scaffold a module for the site or admin client.
create_templateWP: scaffold a child theme. Joomla: scaffold a template for the site or admin client.
create_componentWP: alias of create_plugin (Joomla-component analogue, kept for cross-platform parity). Joomla: scaffold a com_… component with admin + site MVC plumbing.
build_extension_packageZip a plugin / theme / component / module / template directory into the platform's packages dir, ready to ship.

Install & uninstall

ToolDescription
install_extensionInstall a packaged extension from a local archive. WP: WordPress upgrader. Joomla: Joomla extension installer.
uninstall_extensionDeactivate and remove an installed plugin / extension.

Joomla Pro extras (13 tools)

These ship only in the Joomla Pro plugin — they don't have direct WordPress counterparts because the underlying admin surfaces differ.

Module instances

ToolDescription
create_module_instancePlace a new module instance on a template position with menu assignments.
edit_module_instanceUpdate title, position, params, ordering, or assignments on an existing module.
delete_module_instanceRemove a module instance and its menu assignments.

Edit & delete coverage

ToolDescription
edit_userUpdate name / email / username / password / block flag / group set on an existing user.
edit_menu_itemUpdate title, alias, link, params, or position of a menu item.
delete_menu_itemRemove a menu item (and clean up nested-set children).
edit_categoryUpdate name, alias, parent, or params on an existing category.
delete_articleTrash or permanently delete a com_content article by id.

Tags, redirects & ops

ToolDescription
create_tagCreate a #__tags taxonomy term with optional parent.
assign_tagAssign or unassign tags from a content item via #__contentitem_tag_map.
create_redirectCreate a com_redirect rule mapping an old URL to a new URL.
send_test_mailSend a test email through the configured Joomla mailer to verify SMTP / sendmail.
smart_search_reindexTrigger Smart Search index rebuild (com_finder) and report counts.

Approval flow

Every write tool's first run in a fresh conversation triggers an inline approval card in the chat:

  • Approve runs the tool and shows the result.
  • Reject writes a synthetic "rejected" tool result and the model

continues without the side effect.

  • Trusted approval mode (a per-conversation toggle) bypasses the

prompt and runs writes immediately. Use sparingly — it disables the one safety check between an LLM-emitted call and an actual write.

Snapshots of every file the agent touches via write_file / edit_file / delete_file land under the platform's snapshot dir (wp-content/uploads/seanosai-snapshots/ on WordPress, the audit-row blob on Joomla). Use restore_snapshot (Pro) to roll back a single change without restoring the whole site.

See also

string these tools together.

enable a provider, take the agent for a spin.