{"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-03T13:24:56","modified_gmt":"2026-06-03T13:24:56","slug":"koneek-multi-provider-ai-gateway","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/koneek-multi-provider-ai-gateway\/","author":17975618,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.0","stable_tag":"2.0.0","tested":"7.0","requires":"7.0","requires_php":"7.4","requires_plugins":null,"header_name":"Koneek - Multi-Provider AI Gateway","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-03 13:24:56","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/paypal.me\/storedot2","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/koneek-multi-provider-ai-gateway\/","header_author_uri":"https:\/\/nasikin.web.id","rating":0,"author_block_rating":0,"active_installs":0,"downloads":67,"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"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3555207,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"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"],"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":false,"icon":"https:\/\/ps.w.org\/koneek-multi-provider-ai-gateway\/assets\/icon-256x256.png?rev=3555207","icon_2x":"https:\/\/ps.w.org\/koneek-multi-provider-ai-gateway\/assets\/icon-256x256.png?rev=3555207","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. 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>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.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>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release of Koneek - Multi-Provider AI Gateway<\/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:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/319443","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=319443"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/silversh"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=319443"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=319443"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=319443"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=319443"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=319443"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=319443"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}