{"id":323067,"date":"2026-06-17T15:31:52","date_gmt":"2026-06-17T15:31:52","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/octopress\/"},"modified":"2026-06-17T15:31:32","modified_gmt":"2026-06-17T15:31:32","slug":"octopress","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/octopress\/","author":14886853,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.4.1","stable_tag":"0.4.1","tested":"7.0","requires":"6.0","requires_php":"8.1","requires_plugins":null,"header_name":"OctoPress","header_author":"Nazmul Alam","header_description":"WordPress-hosted agent foundation with a durable PHP core.","assets_banners_color":"","last_updated":"2026-06-17 15:31:32","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/octopress.dev","header_author_uri":"https:\/\/nazmul.io","rating":0,"author_block_rating":0,"active_installs":0,"downloads":26,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.4.1":{"tag":"0.4.1","author":"nazmulpcc","date":"2026-06-17 15:31:32"}},"upgrade_notice":{"0.4.1":"<p>Adds reviewer-facing security hardening, privacy\/data-control cleanup, and WordPress.org package compatibility fixes.<\/p>","0.4.0":"<p>Moves the free runtime to WordPress-native request ticks, removes shell\/CLI requirements, and adds Stop for active runs.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3576053,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3576053,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.4.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3576053,"resolution":"1","location":"assets","locale":"","width":2996,"height":1722},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3576053,"resolution":"10","location":"assets","locale":"","width":2996,"height":1726},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3576053,"resolution":"11","location":"assets","locale":"","width":2998,"height":1722},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3576053,"resolution":"12","location":"assets","locale":"","width":2998,"height":1722},"screenshot-13.png":{"filename":"screenshot-13.png","revision":3576053,"resolution":"13","location":"assets","locale":"","width":2998,"height":1722},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3576053,"resolution":"2","location":"assets","locale":"","width":2996,"height":1722},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3576053,"resolution":"3","location":"assets","locale":"","width":2996,"height":1722},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3576053,"resolution":"4","location":"assets","locale":"","width":2996,"height":1722},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3576053,"resolution":"5","location":"assets","locale":"","width":2996,"height":1722},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3576053,"resolution":"6","location":"assets","locale":"","width":2996,"height":1722},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3576053,"resolution":"7","location":"assets","locale":"","width":2996,"height":1722},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3576053,"resolution":"8","location":"assets","locale":"","width":2996,"height":1722},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3576053,"resolution":"9","location":"assets","locale":"","width":3022,"height":1722}},"screenshots":{"1":"OctoPress chat workspace with agent, provider, and model selection.","2":"Agent selector with Octo and Block Content Builder profiles.","3":"Native input request modal for clarifying requirements.","4":"Tool permission request modal for approval-gated actions.","5":"Native plan confirmation modal before implementation work.","6":"Summarized tool result rendered in the chat transcript.","7":"First-run onboarding readiness check.","8":"First-run onboarding provider setup.","9":"System prompt settings.","10":"Agent profile settings with configurable default agent.","11":"Tool settings grouped by capability and policy.","12":"Skill settings for prompt\/context resources.","13":"Extension settings for enabling feature bundles."}},"plugin_section":[],"plugin_tags":[2353,5739,529,148076,8197],"plugin_category":[],"plugin_contributors":[267575],"plugin_business_model":[],"class_list":["post-323067","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-artificial-intelligence","plugin_tags-content","plugin_tags-gutenberg","plugin_tags-workflow","plugin_contributors-nazmulpcc","plugin_committers-nazmulpcc"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/octopress\/assets\/icon-128x128.png?rev=3576053","icon_2x":"https:\/\/ps.w.org\/octopress\/assets\/icon-256x256.png?rev=3576053","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/octopress\/assets\/screenshot-1.png?rev=3576053","caption":"OctoPress chat workspace with agent, provider, and model selection."},{"src":"https:\/\/ps.w.org\/octopress\/assets\/screenshot-2.png?rev=3576053","caption":"Agent selector with Octo and Block Content Builder profiles."},{"src":"https:\/\/ps.w.org\/octopress\/assets\/screenshot-3.png?rev=3576053","caption":"Native input request modal for clarifying requirements."},{"src":"https:\/\/ps.w.org\/octopress\/assets\/screenshot-4.png?rev=3576053","caption":"Tool permission request modal for approval-gated actions."},{"src":"https:\/\/ps.w.org\/octopress\/assets\/screenshot-5.png?rev=3576053","caption":"Native plan confirmation modal before implementation work."},{"src":"https:\/\/ps.w.org\/octopress\/assets\/screenshot-6.png?rev=3576053","caption":"Summarized tool result rendered in the chat transcript."},{"src":"https:\/\/ps.w.org\/octopress\/assets\/screenshot-7.png?rev=3576053","caption":"First-run onboarding readiness check."},{"src":"https:\/\/ps.w.org\/octopress\/assets\/screenshot-8.png?rev=3576053","caption":"First-run onboarding provider setup."},{"src":"https:\/\/ps.w.org\/octopress\/assets\/screenshot-9.png?rev=3576053","caption":"System prompt settings."},{"src":"https:\/\/ps.w.org\/octopress\/assets\/screenshot-10.png?rev=3576053","caption":"Agent profile settings with configurable default agent."},{"src":"https:\/\/ps.w.org\/octopress\/assets\/screenshot-11.png?rev=3576053","caption":"Tool settings grouped by capability and policy."},{"src":"https:\/\/ps.w.org\/octopress\/assets\/screenshot-12.png?rev=3576053","caption":"Skill settings for prompt\/context resources."},{"src":"https:\/\/ps.w.org\/octopress\/assets\/screenshot-13.png?rev=3576053","caption":"Extension settings for enabling feature bundles."}],"raw_content":"<!--section=description-->\n<p>OctoPress adds an AI workspace inside WordPress admin. It lets site administrators configure their own AI providers, choose models, chat with agent profiles, and use WordPress-aware tools for content and site workflows.<\/p>\n\n<p>The free plugin focuses on a safe foundation for AI-assisted WordPress work:<\/p>\n\n<ul>\n<li>First-run onboarding for provider setup and readiness checks.<\/li>\n<li>Admin chat workspace with saved chats and per-chat model\/agent selection.<\/li>\n<li>Configurable AI providers, including OpenAI Platform, OpenAI OAuth, OpenAI Responses-compatible providers, and OpenAI Chat Completions-compatible providers.<\/li>\n<li>Agent profiles with configurable prompts, skills, handoff behavior, and a default agent for new chats.<\/li>\n<li>Permission controls for approval-gated tool calls.<\/li>\n<li>Block editor content tools for inspecting blocks, patterns, theme design tokens, and composing draft content.<\/li>\n<li>Extension architecture for additional first-party or third-party capabilities.<\/li>\n<\/ul>\n\n<p>OctoPress stores its operational data in your WordPress database and runs from your WordPress admin. It does not include an AI model. You connect it to the provider and model you choose.<\/p>\n\n<h4>Runtime requirements<\/h4>\n\n<p>OctoPress requires PHP 8.1 or newer and working WordPress HTTP loopback requests to its own REST API. The free WordPress.org build uses WordPress-native request ticks for agent runs and WP-Cron as a recovery watchdog. It does not require PHP CLI access, shell access, <code>exec()<\/code>, <code>shell_exec()<\/code>, <code>pcntl_fork()<\/code>, or <code>posix_setsid()<\/code>.<\/p>\n\n<p>Some hosts block loopback HTTP requests or disable WP-Cron. In those environments OctoPress can activate, but chat runs may not continue reliably until loopback requests to the same WordPress site are allowed. Sites with disabled WP-Cron should configure a real server cron for <code>wp-cron.php<\/code>, as recommended by WordPress hosting documentation.<\/p>\n\n<h4>External services<\/h4>\n\n<p>OctoPress can send requests to external AI providers after an administrator configures a provider and uses model sync, chat, or an AI-assisted workflow. Depending on the action, data sent to the configured provider may include prompts, chat messages, selected WordPress content, tool context, model names, provider metadata, and generated responses.<\/p>\n\n<p>Built-in provider options include OpenAI services:<\/p>\n\n<ul>\n<li>OpenAI terms: https:\/\/openai.com\/policies\/terms-of-use\/<\/li>\n<li>OpenAI privacy policy: https:\/\/openai.com\/policies\/privacy-policy\/<\/li>\n<\/ul>\n\n<p>OctoPress also supports custom OpenAI-compatible endpoints. If you configure a custom provider, that provider receives the request data for the models you use. Review that provider's terms, privacy policy, and data handling practices before connecting it.<\/p>\n\n<p>API keys and OAuth credentials are stored server-side in WordPress and are not returned to browsers by OctoPress REST responses.<\/p>\n\n<h4>Development source<\/h4>\n\n<p>OctoPress includes compiled admin JavaScript and CSS in <code>assets\/admin\/dist<\/code>. The human-readable admin frontend source is included in <code>assets\/admin\/src<\/code>, with build configuration in <code>package.json<\/code>, <code>package-lock.json<\/code>, <code>vite.config.ts<\/code>, and <code>tsconfig.json<\/code>.<\/p>\n\n<p>To rebuild the admin assets from source:<\/p>\n\n<pre><code>npm install\nnpm run build\ncomposer install\n<\/code><\/pre>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>octopress<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the plugin ZIP from WordPress admin.<\/li>\n<li>Activate OctoPress from the Plugins screen.<\/li>\n<li>Open OctoPress in WordPress admin.<\/li>\n<li>Complete onboarding by configuring at least one AI provider.<\/li>\n<li>Sync provider models and enable the model you want to use.<\/li>\n<li>Open the chat workspace and start a new chat.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20octopress%20include%20an%20ai%20model%3F\"><h3>Does OctoPress include an AI model?<\/h3><\/dt>\n<dd><p>No. OctoPress is a WordPress-hosted workspace and orchestration layer. You connect it to an AI provider and model using your own provider account or endpoint.<\/p><\/dd>\n<dt id=\"which%20providers%20are%20supported%3F\"><h3>Which providers are supported?<\/h3><\/dt>\n<dd><p>OctoPress supports OpenAI Platform, OpenAI OAuth, OpenAI Responses-compatible providers, and OpenAI Chat Completions-compatible providers. Some third-party providers may work through compatibility modes when their APIs match the expected format.<\/p><\/dd>\n<dt id=\"what%20data%20is%20stored%20in%20wordpress%3F\"><h3>What data is stored in WordPress?<\/h3><\/dt>\n<dd><p>OctoPress stores provider configuration, encrypted provider secrets, chats, messages, runs, settings, agent profiles, tool settings, skill settings, and extension settings in your WordPress database.<\/p><\/dd>\n<dt id=\"are%20api%20keys%20exposed%20to%20browser%20users%3F\"><h3>Are API keys exposed to browser users?<\/h3><\/dt>\n<dd><p>No. Provider secrets are stored server-side and are not returned in normal browser-facing REST responses.<\/p><\/dd>\n<dt id=\"can%20octopress%20update%20wordpress%20content%3F\"><h3>Can OctoPress update WordPress content?<\/h3><\/dt>\n<dd><p>Yes, but only through enabled tools and permissions. Content-writing workflows are designed around drafts or explicit user-approved updates. Approval-gated actions require confirmation unless the chat has been configured for auto approval.<\/p><\/dd>\n<dt id=\"does%20octopress%20work%20without%20a%20provider%3F\"><h3>Does OctoPress work without a provider?<\/h3><\/dt>\n<dd><p>You can activate the plugin and open onboarding, but chat workflows require at least one configured provider with an enabled model.<\/p><\/dd>\n<dt id=\"does%20octopress%20run%20on%20cpanel%20hosting%3F\"><h3>Does OctoPress run on cPanel hosting?<\/h3><\/dt>\n<dd><p>Yes, when the hosting account allows normal WordPress loopback HTTP requests to the site's own REST API. The free plugin does not require shell\/process execution. If a host blocks loopback requests or disables WP-Cron without a replacement cron job, long-running chat workflows may not continue reliably.<\/p><\/dd>\n<dt id=\"where%20can%20i%20get%20support%3F\"><h3>Where can I get support?<\/h3><\/dt>\n<dd><p>Use the WordPress.org support forum for the free OctoPress plugin.<\/p><\/dd>\n<dt id=\"what%20is%20the%20difference%20between%20free%20features%20and%20extensions%3F\"><h3>What is the difference between free features and extensions?<\/h3><\/dt>\n<dd><p>The free plugin includes the core AI workspace, provider setup, agents, block editor content support, permissions, and extension infrastructure. Optional first-party or third-party extensions may add more tools, agents, skills, or integrations.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.4.1<\/h4>\n\n<ul>\n<li>Hardened chat REST permissions so chat reads and message creation verify ownership before returning or writing private conversation data.<\/li>\n<li>Added direct WordPress capability checks immediately before content creation and content update tool writes.<\/li>\n<li>Added a privacy policy helper and administrator-only Data Control setting for deleting OctoPress data on uninstall.<\/li>\n<li>Added uninstall cleanup for OctoPress custom tables and core options when Data Control cleanup is enabled.<\/li>\n<li>Added package metadata and compatibility cleanup for WordPress.org review, including Text Domain, GPL license file, and direct-access guards.<\/li>\n<li>Improved use of WordPress core helpers for JSON parsing, excerpts, plugin activation checks, and core skill caching.<\/li>\n<\/ul>\n\n<h4>0.4.0<\/h4>\n\n<ul>\n<li>Replaced shell-spawned background processing in the free package with a WordPress-native request-tick runtime.<\/li>\n<li>Added WP-Cron watchdog recovery for abandoned request-tick runs.<\/li>\n<li>Removed free-package dependence on PHP CLI and shell\/process execution.<\/li>\n<li>Added a Stop action for active chat runs.<\/li>\n<li>Aligned internal loopback HTTP requests with WordPress HTTP API SSL verification defaults.<\/li>\n<\/ul>","raw_excerpt":"A WordPress-hosted AI workspace for chat, agents, block content, and provider-managed workflows.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/323067","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=323067"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/nazmulpcc"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=323067"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=323067"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=323067"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=323067"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=323067"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=323067"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}