{"id":303271,"date":"2026-05-14T22:54:51","date_gmt":"2026-05-14T22:54:51","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ai-connector-for-local-ai\/"},"modified":"2026-05-14T22:57:10","modified_gmt":"2026-05-14T22:57:10","slug":"mw-local-ai-connector","status":"publish","type":"plugin","link":"https:\/\/test.wordpress.org\/plugins\/mw-local-ai-connector\/","author":127361,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"0.6.2","stable_tag":"0.6.2","tested":"7.0","requires":"7.0","requires_php":"7.4","requires_plugins":null,"header_name":"MW Local AI Connector","header_author":"Matt Wiebe","header_description":"AI providers for routing AI requests to your own machine.","assets_banners_color":"c9d7ea","last_updated":"2026-05-14 22:57:10","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/mattwiebe\/ai-connector-for-local-ai","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":39,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.6.1":{"tag":"0.6.1","author":"mattwiebe","date":"2026-05-14 22:54:28"},"0.6.2":{"tag":"0.6.2","author":"mattwiebe","date":"2026-05-14 22:57:10"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3532534,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3532534,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3532534,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3532534,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.6.1","0.6.2"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2353,259397,262994,46810,194533],"plugin_category":[],"plugin_contributors":[77556],"plugin_business_model":[],"class_list":["post-303271","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-connectors","plugin_tags-inference","plugin_tags-models","plugin_tags-openai","plugin_contributors-mattwiebe","plugin_committers-mattwiebe"],"banners":{"banner":"https:\/\/ps.w.org\/mw-local-ai-connector\/assets\/banner-772x250.png?rev=3532534","banner_2x":"https:\/\/ps.w.org\/mw-local-ai-connector\/assets\/banner-1544x500.png?rev=3532534","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/mw-local-ai-connector\/assets\/icon-128x128.png?rev=3532534","icon_2x":"https:\/\/ps.w.org\/mw-local-ai-connector\/assets\/icon-256x256.png?rev=3532534","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>MW Local AI Connector provides WordPress AI connectors for:<\/p>\n\n<ul>\n<li>Local AI: connect WordPress to a self-hosted OpenAI-compatible inference proxy on your own machine.<\/li>\n<li>Actual Computer: connect WordPress to the fixed Actual Computer API endpoint with your API key.<\/li>\n<\/ul>\n\n<p>The plugin integrates with the WordPress Connectors screen and provides a dedicated settings experience for each connector.<\/p>\n\n<p>This plugin is an independent project by Matt Wiebe and is not affiliated with, endorsed by, or sponsored by Actual Computer, Tailscale, Ollama, LM Studio, or any other third-party service it can be configured to talk to.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin can connect to a user-controlled Local AI proxy and to the Actual Computer API. Connections only happen after you explicitly configure the matching connector in the WordPress admin and either save it or trigger an AI request through the WordPress AI Client.<\/p>\n\n<h4>Local AI proxy (user-controlled)<\/h4>\n\n<p>The Local AI connector sends requests to the OpenAI-compatible endpoint URL that you enter on its settings page. This endpoint is intended to point at a proxy you run on your own machine (for example, in front of Ollama, llama.cpp, LM Studio, vLLM, or multiple local providers at once).<\/p>\n\n<ul>\n<li>What it sends: the prompts, messages, provider-prefixed model selection, and any other AI parameters supplied by callers of the WordPress AI Client. If you configure an API key, it also sends that key as a <code>Bearer<\/code> token so the proxy can authenticate the request. It also calls <code>\/v1\/models<\/code> on this endpoint to populate the model selector in settings.<\/li>\n<li>When it sends: when an admin saves connection details (model list refresh) and whenever WordPress generates a response through this connector.<\/li>\n<li>Where it sends: the endpoint URL you configure on the Local AI settings screen. By default no endpoint is configured and no requests are made.<\/li>\n<li>Because the endpoint is one you supply, this plugin cannot link a generic terms of service or privacy policy on your behalf -- the applicable terms are those of whatever software and network operator is running at that URL. If you expose the proxy through Tailscale Funnel, Tailscale's terms and privacy policy are available at <a href=\"https:\/\/tailscale.com\/terms\">https:\/\/tailscale.com\/terms<\/a> and <a href=\"https:\/\/tailscale.com\/privacy-policy\">https:\/\/tailscale.com\/privacy-policy<\/a>. If you expose it through Cloudflare Tunnel, Cloudflare's terms and privacy policy apply.<\/li>\n<\/ul>\n\n<h4>Actual Computer API<\/h4>\n\n<p>The Actual Computer connector sends requests to the fixed base URL <code>https:\/\/api.actual.inc\/v1<\/code>, operated by Actual Computer.<\/p>\n\n<ul>\n<li>What it sends: the prompts, messages, model selection, and any other AI parameters supplied by callers of the WordPress AI Client, plus the bearer API key you enter on the settings page. It also calls <code>\/v1\/models<\/code> to populate the model selector.<\/li>\n<li>When it sends: when an admin saves connection details (model list refresh) and whenever WordPress generates a response through this connector.<\/li>\n<li>Where it sends: <code>https:\/\/api.actual.inc\/v1<\/code>.<\/li>\n<li>Service provider: Actual Computer. Terms of service: <a href=\"https:\/\/actual.inc\/terms\">https:\/\/actual.inc\/terms<\/a>. Privacy policy: <a href=\"https:\/\/actual.inc\/privacy\">https:\/\/actual.inc\/privacy<\/a>.<\/li>\n<\/ul>\n\n<p>If you do not configure either connector, this plugin makes no outbound network requests.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install it through Composer.<\/li>\n<li>Activate the plugin through the <code>Plugins<\/code> screen in WordPress.<\/li>\n<li>Open <code>Settings &gt; Connectors<\/code> or the dedicated settings pages under <code>Settings<\/code>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20include%20the%20local%20proxy%3F\"><h3>Does this plugin include the local proxy?<\/h3><\/dt>\n<dd><p>The WordPress plugin ships the connector and settings UI. The recommended local proxy and CLI is SLOProxy, published separately as the <code>sloproxy<\/code> npm package.<\/p><\/dd>\n<dt id=\"which%20endpoint%20does%20the%20actual%20computer%20connector%20use%3F\"><h3>Which endpoint does the Actual Computer connector use?<\/h3><\/dt>\n<dd><p>It uses <code>https:\/\/api.actual.inc\/v1<\/code>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.6.2<\/h4>\n\n<ul>\n<li>Exclude VCS metadata from WordPress.org deployment packaging.<\/li>\n<\/ul>\n\n<h4>0.6.1<\/h4>\n\n<ul>\n<li>Fix the WordPress.org deployment slug used by release automation.<\/li>\n<\/ul>\n\n<h4>0.6.0<\/h4>\n\n<ul>\n<li>Add WordPress.org release deployment and plugin directory assets.<\/li>\n<\/ul>\n\n<h4>0.5.2<\/h4>\n\n<ul>\n<li>Update Local AI setup instructions to use the published <code>sloproxy<\/code> CLI commands.<\/li>\n<\/ul>\n\n<h4>0.5.0<\/h4>\n\n<ul>\n<li>Update plugin slugs, text domain, option names, handles, and packaged paths to use the <code>mwlai<\/code> prefix for WordPress.org compliance.<\/li>\n<\/ul>\n\n<h4>0.4.1<\/h4>\n\n<ul>\n<li>Keep the text domain aligned with the packaged plugin slug.<\/li>\n<li>Clean up settings model validation so Plugin Check passes without PHPCS suppressions.<\/li>\n<\/ul>\n\n<h4>0.4.0<\/h4>\n\n<ul>\n<li>Add support for provider-prefixed model IDs from a multi-provider local proxy.<\/li>\n<li>Add support for local-only proxy mode without API-key authentication.<\/li>\n<\/ul>\n\n<h4>0.3.2<\/h4>\n\n<ul>\n<li>Update release workflow metadata.<\/li>\n<\/ul>\n\n<h4>0.3.1<\/h4>\n\n<ul>\n<li>Fix release metadata and GitHub Actions checks.<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>Rename the plugin to \"MW Local AI Connector\" with a matching slug and text domain.<\/li>\n<li>Move the main plugin file to <code>mw-local-ai-connector.php<\/code>.<\/li>\n<li>Move the inline admin settings CSS and JavaScript into separate enqueued assets.<\/li>\n<li>Document the third-party services this plugin can connect to.<\/li>\n<\/ul>\n\n<h4>0.2.1<\/h4>\n\n<ul>\n<li>Move development and release documentation into <code>docs\/developing.md<\/code>.<\/li>\n<li>Refresh plugin metadata and WordPress.org tags.<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Rename the plugin and repository to AI Connector for Local AI.<\/li>\n<li>Fully migrate Local AI internals from the old Home Inference identifiers with no compatibility layer.<\/li>\n<li>Keep Actual Computer under the same plugin with updated packaging and release metadata.<\/li>\n<\/ul>\n\n<h4>0.1.6<\/h4>\n\n<ul>\n<li>Add an Actual Computer connector with a simplified API key flow.<\/li>\n<li>Improve packaged plugin assets and release contents for plugin-directory checks.<\/li>\n<\/ul>","raw_excerpt":"Route WordPress AI requests either to models running on your own machine or to an Actual Computer endpoint.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/303271","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=303271"}],"author":[{"embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mattwiebe"}],"wp:attachment":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=303271"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=303271"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=303271"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=303271"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=303271"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=303271"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}