Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions components/icons/providers/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ export { default as TogetherAIIcon } from './togetherai'
export { default as TraefikIcon } from './traefik'
export { default as TrueFoundryIcon } from './truefoundry'
export { default as VLLMIcon } from './vllm'
export { default as VoltageGPUIcon } from './voltagegpu'
export { default as VultrIcon } from './vultr'
export { default as WolframIcon } from './wolfram'
export { default as XAIIcon } from './xai'
29 changes: 29 additions & 0 deletions components/icons/providers/voltagegpu.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import React from 'react'

// VoltageGPU mark (ring and bolt), from the logo component of voltagegpu.com
export default function VoltageGPUIcon({ className, ...props }: React.SVGProps<SVGSVGElement>) {
return (
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 32 32"
fill="none"
className={className}
aria-hidden="true"
{...props}
>
<path
d="M16 2C8.268 2 2 8.268 2 16C2 23.732 8.268 30 16 30C23.732 30 30 23.732 30 16C30 8.268 23.732 2 16 2Z"
stroke="currentColor"
strokeWidth="2"
fill="none"
/>
<path
d="M16 8L10 18H16L16 24L22 14H16L16 8Z"
fill="currentColor"
stroke="currentColor"
strokeWidth="0.5"
strokeLinejoin="round"
/>
</svg>
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
"togetherai",
"truefoundry",
"vllm",
"voltagegpu",
"vultrcloudinference",
"xai"
]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
title: VoltageGPU
icon: VoltageGPU
description: Configure VoltageGPU as a custom endpoint in LibreChat.
---

VoltageGPU provides an OpenAI-compatible endpoint that you can add to LibreChat through `endpoints.custom`. Its models run in a trusted execution environment (Intel TDX guests with confidential-computing GPUs), and every model ID ends in `-TEE`. Requests pass through VoltageGPU's relay, which sees them in clear (TLS ends at VoltageGPU's host). To keep plaintext off VoltageGPU's servers, run your own inference server in a [Confidential VM](https://voltagegpu.com/confidential-vm) and terminate TLS inside its trust domain.

## Get an API key

Create an API key from the [VoltageGPU API keys page](https://voltagegpu.com/api-keys). Add it to your `.env` file:

```bash filename=".env"
VOLTAGEGPU_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: "VoltageGPU"
apiKey: "${VOLTAGEGPU_API_KEY}"
baseURL: "https://api.voltagegpu.com/v1"
models:
default:
- "Qwen/Qwen3.8-27B-TEE"
- "deepseek-ai/DeepSeek-V3.2-TEE"
fetch: true
titleConvo: true
titleModel: "Qwen/Qwen3.8-27B-TEE"
modelDisplayLabel: "VoltageGPU"
```

To let each user supply their own key through the LibreChat UI instead of reading one from `.env`, set `apiKey: "user_provided"`.

## Notes

- With `fetch: true`, LibreChat loads the model list from VoltageGPU's OpenAI-compatible `/v1/models` endpoint. The `default` array is only the initial selection.
- Use model IDs exactly as they appear in the [model list](https://api.voltagegpu.com/v1/models). The API only accepts IDs ending in `-TEE`.
- Each entry in `/v1/models` carries a live `status.state` (`available`, `busy`, `saturated` or `unavailable`) and its price per million tokens. If a selected model is unavailable, choose another chat-capable model from the list.
- `GET /v1/attestation?model=<id>&nonce=<64 hex characters>` returns the Intel TDX quotes and NVIDIA GPU evidence of that model's running instances, bound to your nonce, for you to verify. See the [VoltageGPU documentation](https://docs.voltagegpu.com) for details.
2 changes: 2 additions & 0 deletions lib/icons.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ import {
TraefikIcon,
TrueFoundryIcon,
VLLMIcon,
VoltageGPUIcon,
VultrIcon,
WolframIcon,
XAIIcon,
Expand Down Expand Up @@ -285,6 +286,7 @@ const icons: Record<string, ReactElement> = {
Traefik: <TraefikIcon />,
TrueFoundry: <TrueFoundryIcon />,
VLLM: <VLLMIcon />,
VoltageGPU: <VoltageGPUIcon />,
Vultr: <VultrIcon />,
Wolfram: <WolframIcon />,
XAI: <XAIIcon />,
Expand Down