{"id":319443,"date":"2026-05-31T08:34:15","date_gmt":"2026-05-31T08:34:15","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/any-ai-connector\/"},"modified":"2026-06-27T00:59:46","modified_gmt":"2026-06-27T00:59:46","slug":"koneek-multi-provider-ai-gateway","status":"publish","type":"plugin","link":"https:\/\/ky.wordpress.org\/plugins\/koneek-multi-provider-ai-gateway\/","author":17975618,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.2.1","stable_tag":"2.2.1","tested":"7.0","requires":"7.0","requires_php":"7.4","requires_plugins":null,"header_name":"Koneek - AI Provider for OpenAI-Compatible","header_author":"silversh","header_description":"A multi-provider AI gateway for the WordPress AI Client SDK (WordPress Connectors API).","assets_banners_color":"fafcfe","last_updated":"2026-06-27 00:59:46","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/paypal.me\/storedot2","header_plugin_uri":"https:\/\/github.com\/mnasikin\/koneek-multi-provider-ai-gateway","header_author_uri":"https:\/\/github.com\/mnasikin","rating":0,"author_block_rating":0,"active_installs":0,"downloads":261,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"silversh","date":"2026-05-31 08:31:31"},"2.0.0":{"tag":"2.0.0","author":"silversh","date":"2026-06-03 13:24:56"},"2.1.0":{"tag":"2.1.0","author":"silversh","date":"2026-06-17 12:17:44"},"2.2.0":{"tag":"2.2.0","author":"silversh","date":"2026-06-21 09:33:20"},"2.2.1":{"tag":"2.2.1","author":"silversh","date":"2026-06-27 00:59:46"}},"upgrade_notice":{"2.2.1":"<p>Koneek adds provider presets for OpenRouter, Groq, NVIDIA NIM, Cerebras, SambaNova, OpenCode Zen, OpenCode Go, and native Gemini, so setup no longer requires manually entering common base URLs.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3580469,"resolution":"256x256","location":"assets","locale":"","width":2720,"height":2720},"icon.svg":{"filename":"icon.svg","revision":3580469,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3555207,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3555207,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","2.0.0","2.1.0","2.2.0","2.2.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3559484,"resolution":"1","location":"assets","locale":"","width":1269,"height":714},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3559484,"resolution":"2","location":"assets","locale":"","width":1608,"height":796},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3555207,"resolution":"3","location":"assets","locale":"","width":1072,"height":812},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3555207,"resolution":"4","location":"assets","locale":"","width":1347,"height":848}},"screenshots":{"1":"Setting page with multiple AI Provider","2":"AI Log when using OpenAI-Compatible API Key","3":"Post title Generation using OpenAI-Compatible API Key","4":"Post content replacements using OpenAI-Compatible API Key"}},"plugin_section":[],"plugin_tags":[2353,264549,25308,265131,226518],"plugin_category":[],"plugin_contributors":[247542],"plugin_business_model":[],"class_list":["post-319443","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-ai-connector","plugin_tags-connector","plugin_tags-openai-compatible","plugin_tags-wordpress-ai","plugin_contributors-silversh","plugin_committers-silversh"],"banners":{"banner":"https:\/\/ps.w.org\/koneek-multi-provider-ai-gateway\/assets\/banner-772x250.png?rev=3555207","banner_2x":"https:\/\/ps.w.org\/koneek-multi-provider-ai-gateway\/assets\/banner-1544x500.png?rev=3555207","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/koneek-multi-provider-ai-gateway\/assets\/icon.svg?rev=3580469","icon":"https:\/\/ps.w.org\/koneek-multi-provider-ai-gateway\/assets\/icon.svg?rev=3580469","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/koneek-multi-provider-ai-gateway\/assets\/screenshot-1.png?rev=3559484","caption":"Setting page with multiple AI Provider"},{"src":"https:\/\/ps.w.org\/koneek-multi-provider-ai-gateway\/assets\/screenshot-2.png?rev=3559484","caption":"AI Log when using OpenAI-Compatible API Key"},{"src":"https:\/\/ps.w.org\/koneek-multi-provider-ai-gateway\/assets\/screenshot-3.png?rev=3555207","caption":"Post title Generation using OpenAI-Compatible API Key"},{"src":"https:\/\/ps.w.org\/koneek-multi-provider-ai-gateway\/assets\/screenshot-4.png?rev=3555207","caption":"Post content replacements using OpenAI-Compatible API Key"}],"raw_content":"<!--section=description-->\n<p>Koneek AI connects WordPress to OpenAI, Google Gemini, Anthropic Claude, and any OpenAI-compatible endpoint, all from a single plugin. It supports standard JSON and Server-Sent Events (SSE) responses from AI gateways such as OmniRoute and 9Router. No need to install separate provider plugins for each service. Built on top of the WordPress Connectors API, API keys are encrypted before being stored in the database.<\/p>\n\n<p>Add as many provider connections as you like, each with its own priority. When the WordPress AI Client makes a request, Koneek routes it to the lowest priority number first and automatically falls back to the next connection if that provider times out or returns an error \u2014 even falling back across different providers (for example, OpenAI first, then Anthropic, then Google).<\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li><strong>Multiple Provider Connections:<\/strong> Configure any number of connections \u2014 including several keys for the same provider \u2014 each with its own model and priority.<\/li>\n<li><strong>Priority-Based Fallback:<\/strong> Requests try priority 1 first; on timeout or error, Koneek automatically retries the next connection in order. Fallback works across different providers thanks to an automatic request\/response format translation layer.<\/li>\n<li><strong>Multi-Provider Support:<\/strong> Seamless integration with OpenAI, Google Gemini, Anthropic Claude, and custom OpenAI-compatible providers (like Groq, Together AI, NVIDIA, etc.).<\/li>\n<li><strong>Secure Storage:<\/strong> API keys are securely stored in the database using strong AES-256-CBC encryption derived from your WordPress secret salts (<code>wp-config.php<\/code>). Each connection's key is stored in its own option, named after the provider and the connection's name (<code>koneek_api_key_openai<\/code>, <code>koneek_api_key_custom_openai_nvidia<\/code>, <code>koneek_api_key_anthropic<\/code>, ...).<\/li>\n<li><strong>Per-Connection Timeout:<\/strong> Set how long to wait before falling back to the next provider.<\/li>\n<li><strong>OpenAI Compatibility Layer:<\/strong> Automatically redirects standard API calls to custom providers, converting newer Responses API formats back to standard Chat Completions.<\/li>\n<li><strong>SSE Response Support:<\/strong> Parses streamed Server-Sent Events responses from OpenAI-compatible AI gateways, including separate reasoning and final answer content.<\/li>\n<li><strong>Automatic Integration:<\/strong> Automatically syncs and registers credentials with the WordPress Connectors API, auto-approving connection permissions for AI plugins.<\/li>\n<li><strong>Flexible Model Mapping:<\/strong> Choose from predefined models or enter your own custom model names.<\/li>\n<\/ul>\n\n<p><strong>Requirements:<\/strong><\/p>\n\n<ul>\n<li>PHP 7.4 or higher<\/li>\n<li>OpenAI API key, Gemini API Key, Anthropic API Key, or Any OpenAI Compatible API Key<\/li>\n<\/ul>\n\n<h3>How It Works<\/h3>\n\n<p>This plugin does <strong>not<\/strong> perform AI content generation directly. It is a connector\/bridge that registers your provider credentials with the WordPress AI Client SDK.<\/p>\n\n<p><strong>Provider API URLs<\/strong> (e.g., <code>api.openai.com<\/code>, <code>api.anthropic.com<\/code>, <code>generativelanguage.googleapis.com<\/code>) are used exclusively for:<\/p>\n\n<ol>\n<li><strong>Provider metadata<\/strong> \u2014 Base URL configuration passed to the WordPress AI Client registry so the SDK knows where to route requests.<\/li>\n<li><strong>Connection testing<\/strong> \u2014 An admin-only \"Test Connection\" feature that sends a minimal request (<code>max_tokens=1<\/code>) to validate your API key and model before saving. This is not used for content generation.<\/li>\n<li><strong>Custom provider URL rewriting<\/strong> \u2014 For OpenAI-compatible endpoints, the plugin intercepts requests from the WordPress AI Client and redirects them to your custom URL.<\/li>\n<\/ol>\n\n<p>All actual AI generation is handled by the WordPress AI Client SDK (<code>WordPress\\AiClient\\AiClient<\/code>). This plugin simply ensures the correct provider is registered and credentials are available.<\/p>\n\n<p>There are no third-party AI SDKs in <code>composer.json<\/code>. The only HTTP calls to provider APIs originate from the connection tester (admin-only, lightweight validation).<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to third-party AI provider APIs for connection testing and credential registration purposes. It does not perform AI content generation directly \u2014 all actual AI generation is handled by the WordPress AI Client SDK.<\/p>\n\n<h4>OpenAI API<\/h4>\n\n<p>Used to validate API keys and test connectivity when the administrator clicks \"Test Connection\" on the settings page. A minimal request (max_tokens=1) is sent to verify the API key and model are valid. The API URL is also registered with the WordPress AI Client SDK so it can route generation requests.<\/p>\n\n<p>Data sent: API key, model name, and a single-word test prompt (\"Hi\") with max_tokens=1.\nWhen: Only when an administrator manually clicks \"Test Connection\" on the plugin settings page, or when the WordPress AI Client SDK makes generation requests through the registered provider.<\/p>\n\n<p>Service provided by OpenAI, LLC.\nTerms of use: https:\/\/openai.com\/policies\/terms-of-use\nPrivacy policy: https:\/\/openai.com\/policies\/privacy-policy<\/p>\n\n<h4>Anthropic API<\/h4>\n\n<p>Used to validate API keys and test connectivity when the administrator clicks \"Test Connection\" on the settings page. A minimal request (max_tokens=1) is sent to verify the API key and model are valid. The API URL is also registered with the WordPress AI Client SDK so it can route generation requests.<\/p>\n\n<p>Data sent: API key, model name, and a single-word test prompt (\"Hi\") with max_tokens=1.\nWhen: Only when an administrator manually clicks \"Test Connection\" on the plugin settings page, or when the WordPress AI Client SDK makes generation requests through the registered provider.<\/p>\n\n<p>Service provided by Anthropic PBC.\nTerms of use: https:\/\/www.anthropic.com\/legal\/consumer-terms\nPrivacy policy: https:\/\/www.anthropic.com\/legal\/privacy<\/p>\n\n<h4>Google Generative Language API (Gemini)<\/h4>\n\n<p>Used to validate API keys and test connectivity when the administrator clicks \"Test Connection\" on the settings page. A minimal request (maxOutputTokens=1) is sent to verify the API key and model are valid. The API URL is also registered with the WordPress AI Client SDK so it can route generation requests.<\/p>\n\n<p>Data sent: API key, model name, and a single-word test prompt (\"Hi\") with maxOutputTokens=1.\nWhen: Only when an administrator manually clicks \"Test Connection\" on the plugin settings page, or when the WordPress AI Client SDK makes generation requests through the registered provider.<\/p>\n\n<p>Service provided by Google LLC.\nTerms of use: https:\/\/ai.google.dev\/gemini-api\/terms\nPrivacy policy: https:\/\/policies.google.com\/privacy<\/p>\n\n<h4>Custom OpenAI-Compatible Endpoints<\/h4>\n\n<p>When configured with a custom provider (e.g., Groq, Together AI, NVIDIA), the plugin redirects API requests from the WordPress AI Client SDK to the user-specified endpoint URL. The same test connection behavior applies.<\/p>\n\n<p>Data sent: API key, model name, and prompts as determined by the WordPress AI Client SDK or the test connection feature.\nWhen: Only when an administrator manually clicks \"Test Connection,\" or when the WordPress AI Client SDK makes generation requests through the registered provider.<\/p>\n\n<p>The terms of service and privacy policy depend on the specific third-party service configured by the site administrator.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/koneek-multi-provider-ai-gateway\/<\/code><\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Navigate to <strong>Settings &gt; Koneek<\/strong>, add one or more provider connections, set each connection's API key, model, and priority, then save.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20configure%20different%20ai%20providers%3F\"><h3>How do I configure different AI providers?<\/h3><\/dt>\n<dd><p>On the settings page, click \"Add Provider\" to create a connection. For each connection, select the provider (OpenAI, Google Gemini, Anthropic, or Custom OpenAI-compatible), enter the API key, choose a model, and set a priority number. Add more connections to build a fallback chain.<\/p><\/dd>\n<dt id=\"how%20does%20the%20priority%20fallback%20work%3F\"><h3>How does the priority fallback work?<\/h3><\/dt>\n<dd><p>Each connection has a priority number. When the WordPress AI Client makes a request, Koneek tries the connection with the lowest priority number first. If that provider times out or returns an error, it automatically retries the next connection in priority order. Because Koneek translates between the OpenAI, Anthropic, and Google request\/response formats, fallback works even when the next connection uses a different provider.<\/p><\/dd>\n<dt id=\"how%20are%20multiple%20keys%20stored%3F\"><h3>How are multiple keys stored?<\/h3><\/dt>\n<dd><p>Each connection's API key is stored in its own encrypted option, named after the provider and the connection's name. A named connection uses <code>koneek_api_key_{provider}_{name}<\/code> (e.g. a <code>custom_openai<\/code> connection named <code>nvidia<\/code> is stored in <code>koneek_api_key_custom_openai_nvidia<\/code>), while an unnamed connection uses <code>koneek_api_key_{provider}<\/code> (e.g. <code>koneek_api_key_openai<\/code>). The name may only contain letters, numbers, and hyphens, and is lowercased in the option name. If two connections would resolve to the same option name, the later one is numbered: <code>_2<\/code>, <code>_3<\/code>, and so on.<\/p><\/dd>\n<dt id=\"are%20my%20api%20keys%20stored%20securely%3F\"><h3>Are my API keys stored securely?<\/h3><\/dt>\n<dd><p>Yes. All API keys are encrypted using AES-256-CBC before they are saved to the database. The encryption key is dynamically derived from your WordPress secret salts (defined in your <code>wp-config.php<\/code>), meaning your keys remain secure even if your database is compromised.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20work%20without%20the%20php%20ai%20client%3F\"><h3>Does this plugin work without the PHP AI Client?<\/h3><\/dt>\n<dd><p>No, this plugin requires the PHP AI Client plugin to be installed and activated. It acts as a gateway that registers your credentials with the WordPress Connectors API.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.2.1<\/h4>\n\n<ul>\n<li>Added provider presets for OpenRouter, Groq, NVIDIA NIM, Cerebras, SambaNova, OpenCode Zen, OpenCode Go, and native Gemini so only the model, API key, and timeout need to be entered manually.<\/li>\n<\/ul>\n\n<h4>2.2.0<\/h4>\n\n<ul>\n<li>Added Koneek as a standalone WordPress AI Connector with its own provider identity and connector logo.<\/li>\n<li>Removed the hard dependency on the AI plugin while retaining compatibility with its editor features.<\/li>\n<li>Added a Connectors screen summary for all saved Koneek connections with direct access to Koneek settings.<\/li>\n<li>Added Koneek connector credentials and preferred-model integration for reliable AI feature detection.<\/li>\n<li>Improved model discovery and fallback routing across OpenAI, Anthropic, Google, and OpenAI-compatible connections.<\/li>\n<li>Added Server-Sent Events (SSE) response support for OpenAI-compatible AI gateways such as OmniRoute and 9Router, while keeping reasoning content separate from the final answer.<\/li>\n<li>Fixed AI plugin settings incorrectly reporting that no valid AI Connector was configured when Koneek already had a saved API key.<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Fix Koneek that still relying on  the separate OpenAI provider plugin.<\/li>\n<li>Added model preference integration so the WordPress AI plugin can detect Koneek-configured text generation models.<\/li>\n<li>Improved OpenAI-compatible request routing and response parsing for Responses API and Chat Completions formats.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Added support to save multiple API Keys with priority order.<\/li>\n<li>Redesigned the settings UI into compact, independent provider cards.<\/li>\n<li>Collapsed connections now display as a compact tile grid showing the name and model, so many providers fit without long stacked cards.<\/li>\n<li>An expanded connection spans the full width for editing; collapsed tiles flow side by side.<\/li>\n<li>Added an optional custom name for each connection, shown in the card header.<\/li>\n<li>Cards are now collapsible. Saved connections start collapsed, showing just the name and priority, so the list stays compact.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added support for multiple provider connections, each with its own model and priority.<\/li>\n<li>Added priority-based automatic fallback: requests try priority 1 first and fall back to the next connection on timeout or error.<\/li>\n<li>Added cross-provider fallback via an automatic OpenAI\/Anthropic\/Google request and response translation layer.<\/li>\n<li>Added per-connection request timeout.<\/li>\n<\/ul>","raw_excerpt":"A multi-provider AI gateway for the WordPress WordPress Connectors AI with priority-based automatic fallback &amp; OpenAI-Compatible API.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/319443","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=319443"}],"author":[{"embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/silversh"}],"wp:attachment":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=319443"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=319443"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=319443"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=319443"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=319443"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=319443"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}