diff --git a/components/icons/providers/index.ts b/components/icons/providers/index.ts index e287de290..a0c2587ac 100644 --- a/components/icons/providers/index.ts +++ b/components/icons/providers/index.ts @@ -22,6 +22,7 @@ export { default as HeliconeIcon } from './helicone' export { default as HuggingFaceIcon } from './huggingface' export { default as KeycloakIcon } from './keycloak' export { default as LemonadeIcon } from './lemonade' +export { default as LinkrraIcon } from './linkrra' export { default as LiteLLMIcon } from './litellm' export { default as MeilisearchIcon } from './meilisearch' export { default as MistralIcon } from './mistral' diff --git a/components/icons/providers/linkrra.tsx b/components/icons/providers/linkrra.tsx new file mode 100644 index 000000000..9c7c58606 --- /dev/null +++ b/components/icons/providers/linkrra.tsx @@ -0,0 +1,30 @@ +import React from 'react' + +export default function LinkrraIcon({ className, ...props }: React.SVGProps) { + return ( + + ) +} diff --git a/content/docs/configuration/librechat_yaml/ai_endpoints/linkrra.mdx b/content/docs/configuration/librechat_yaml/ai_endpoints/linkrra.mdx new file mode 100644 index 000000000..813439b70 --- /dev/null +++ b/content/docs/configuration/librechat_yaml/ai_endpoints/linkrra.mdx @@ -0,0 +1,43 @@ +--- +title: Linkrra +icon: Linkrra +description: Configure Linkrra as a custom endpoint in LibreChat. +--- + +Linkrra provides an OpenAI-compatible inference API for open-weight models that you can add to LibreChat through `endpoints.custom`. + +## Get an API key + +Sign in on the [Linkrra account page](https://synap.linkrra.com/account) and create an API key. Add it to your `.env` file: + +```bash filename=".env" +LINKRRA_API_KEY=your-api-key +``` + +## Configuration + +Add the endpoint to the `custom` list under `endpoints` in your `librechat.yaml`. If your file already has an `endpoints.custom` list, paste only the `- name:` entry into it, keeping the same indentation: + +```yaml filename="librechat.yaml" +endpoints: + custom: + - name: "Linkrra" + apiKey: "${LINKRRA_API_KEY}" + baseURL: "https://pool.linkrra.com/v1" + models: + default: + - "qwen3-coder-30b" + - "gpt-oss-20b" + - "gemma-4-26b-a4b-it" + fetch: false + titleConvo: true + titleModel: "qwen3-coder-30b" + modelDisplayLabel: "Linkrra" +``` + +To let each user supply their own key through the LibreChat UI instead of reading one from `.env`, set `apiKey: "user_provided"`. + +## Notes + +- Use model IDs exactly as they appear in the list above. Model availability can change over time; the current IDs are published at [`/v1/models?format=openrouter`](https://pool.linkrra.com/v1/models?format=openrouter). +- The endpoint supports chat completions with streaming. See the [Linkrra documentation](https://synap.linkrra.com/docs) for details. diff --git a/content/docs/configuration/librechat_yaml/ai_endpoints/meta.json b/content/docs/configuration/librechat_yaml/ai_endpoints/meta.json index c46fe3dfd..a96f30447 100644 --- a/content/docs/configuration/librechat_yaml/ai_endpoints/meta.json +++ b/content/docs/configuration/librechat_yaml/ai_endpoints/meta.json @@ -14,6 +14,7 @@ "helicone", "huggingface", "lemonade", + "linkrra", "litellm", "mistral", "mlx", diff --git a/lib/icons.tsx b/lib/icons.tsx index 047336d10..1b5153008 100644 --- a/lib/icons.tsx +++ b/lib/icons.tsx @@ -24,6 +24,7 @@ import { HuggingFaceIcon, KeycloakIcon, LemonadeIcon, + LinkrraIcon, LiteLLMIcon, MeilisearchIcon, MistralIcon, @@ -260,6 +261,7 @@ const icons: Record = { HuggingFace: , Keycloak: , Lemonade: , + Linkrra: , LiteLLM: , Meilisearch: , Mistral: ,