{"id":333287,"date":"2026-07-01T02:43:22","date_gmt":"2026-07-01T02:43:22","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/custom-ai-provider\/"},"modified":"2026-07-01T02:42:41","modified_gmt":"2026-07-01T02:42:41","slug":"linger-ai-bridge-for-openai-compatible-apis","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/linger-ai-bridge-for-openai-compatible-apis\/","author":23524674,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.0","stable_tag":"0.1.0","tested":"7.0","requires":"7.0","requires_php":"7.4","requires_plugins":null,"header_name":"Linger AI Bridge for OpenAI-Compatible APIs","header_author":"Linger0","header_description":"AI provider for the WordPress AI Client with configurable Responses and Chat Completions endpoints.","assets_banners_color":"","last_updated":"2026-07-01 02:42:41","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/github.com\/Linger0","rating":0,"author_block_rating":0,"active_installs":0,"downloads":24,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"linger0er","date":"2026-07-01 02:42:41"}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Provider settings screen for configuring the API base URL and models."}},"plugin_section":[],"plugin_tags":[2353,5739,194533,269664,227698],"plugin_category":[],"plugin_contributors":[269665],"plugin_business_model":[],"class_list":["post-333287","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-artificial-intelligence","plugin_tags-openai","plugin_tags-responses-api","plugin_tags-text-generation","plugin_contributors-linger0er","plugin_committers-linger0er"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/linger-ai-bridge-for-openai-compatible-apis.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Linger AI Bridge for OpenAI-Compatible APIs registers an AI provider for the WordPress AI Client. It lets site administrators configure a shared API base URL, an API key through WordPress Connectors, and multiple text generation models for a service that exposes OpenAI-compatible endpoints.<\/p>\n\n<p>This plugin is not affiliated with, endorsed by, sponsored by, or officially connected to OpenAI.<\/p>\n\n<p>Each model can use one of two endpoint types:<\/p>\n\n<ul>\n<li>Responses-compatible endpoint: <code>\/v1\/responses<\/code><\/li>\n<li>Chat Completions-compatible endpoint: <code>\/v1\/chat\/completions<\/code><\/li>\n<\/ul>\n\n<p>For Responses-compatible models, the plugin adapts WordPress AI Client chat-style prompt payloads into the Responses API <code>input<\/code> format, then adapts Responses API output back into the chat-style response shape expected by the WordPress AI Client.<\/p>\n\n<h4>External Services<\/h4>\n\n<p>This plugin sends text generation requests to the API endpoint configured by the site administrator. The plugin does not contact an AI service until an administrator enters an API base URL and configures credentials.<\/p>\n\n<p>Data sent to the configured service can include prompt text, system instructions, model configuration, and any other request fields provided by the WordPress AI Client for text generation.<\/p>\n\n<p>If the configured endpoint is OpenAI's API, usage is subject to OpenAI's terms and privacy policy:<\/p>\n\n<ul>\n<li>Terms: https:\/\/openai.com\/policies\/terms-of-use<\/li>\n<li>Privacy policy: https:\/\/openai.com\/policies\/privacy-policy<\/li>\n<\/ul>\n\n<p>If another OpenAI-compatible gateway is configured, usage is subject to that service provider's terms and privacy policy.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/linger-ai-bridge-for-openai-compatible-apis<\/code> directory, or install the plugin ZIP through the WordPress Plugins screen.<\/li>\n<li>Activate the plugin through the <code>Plugins<\/code> screen in WordPress.<\/li>\n<li>Open <code>Settings &gt; Connectors<\/code> and set the API key for <code>Linger AI Bridge for OpenAI-Compatible APIs<\/code>.<\/li>\n<li>Open <code>Settings &gt; Linger AI Bridge for OpenAI-Compatible APIs<\/code>.<\/li>\n<li>Configure the API base URL and enabled model list.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20require%20an%20api%20key%3F\"><h3>Does this plugin require an API key?<\/h3><\/dt>\n<dd><p>It requires an API key for the OpenAI-compatible service configured by the site administrator.<\/p><\/dd>\n<dt id=\"where%20is%20the%20api%20key%20stored%3F\"><h3>Where is the API key stored?<\/h3><\/dt>\n<dd><p>The API key is stored through the WordPress Connectors settings for this provider. For local development, the plugin can also read <code>LINGER_AI_BRIDGE_FOR_OPENAI_COMPATIBLE_APIS_API_KEY<\/code>.<\/p><\/dd>\n<dt id=\"why%20do%20i%20see%20%22input%20is%20required%22%3F\"><h3>Why do I see \"input is required\"?<\/h3><\/dt>\n<dd><p>That error means a Responses API request was sent without the required <code>input<\/code> field. This plugin adapts WordPress AI Client <code>messages<\/code> payloads into Responses API <code>input<\/code> payloads for models configured to use <code>\/v1\/responses<\/code>.<\/p><\/dd>\n<dt id=\"can%20i%20use%20a%20local%20gateway%3F\"><h3>Can I use a local gateway?<\/h3><\/dt>\n<dd><p>Yes. Configure the base URL as a full HTTP URL such as <code>http:\/\/localhost:1234\/v1<\/code>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Adds a configurable AI provider for the WordPress AI Client with support for OpenAI-compatible Responses and Chat Completions endpoints.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/333287","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=333287"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/linger0er"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=333287"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=333287"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=333287"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=333287"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=333287"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=333287"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}