Generate vector embeddings via KeiRouter /v1/embeddings using OpenAI / Gemini / Mistral / Voyage / Nvidia embedding models for RAG, semantic search, similarity. Use when the user wants embeddings, vectors, RAG, semantic search, or to embed text.
Scanned 8/30/2026
Install to Claude Code
npx -y skills add mydisha/keirouter --skill keirouter-embeddings --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Keirouter Embeddings?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/mydisha-keirouter-embeddings)More formats (shields.io, HTML) on the badges page.
---
name: keirouter-embeddings
description: Generate vector embeddings via KeiRouter /v1/embeddings using OpenAI / Gemini / Mistral / Voyage / Nvidia embedding models for RAG, semantic search, similarity. Use when the user wants embeddings, vectors, RAG, semantic search, or to embed text.
---
# KeiRouter — Embeddings
Requires `KEIROUTER_URL` (and `KEIROUTER_KEY` if auth enabled). See https://raw.githubusercontent.com/mydisha/keirouter/main/skills/keirouter/SKILL.md for setup.
## Discover
```bash
curl $KEIROUTER_URL/v1/models/embedding | jq '.data[].id'
# Per-model dimensions
curl "$KEIROUTER_URL/v1/models/info?id=openai/text-embedding-3-small"
```
## Endpoint
`POST $KEIROUTER_URL/v1/embeddings`
| Field | Required | Notes |
|---|---|---|
| `model` | yes | from `/v1/models/embedding` |
| `input` | yes | string OR array of strings |
| `encoding_format` | no | `float` (default) / `base64` |
| `dimensions` | no | OpenAI v3 only |
## Examples
```bash
curl -X POST $KEIROUTER_URL/v1/embeddings \
-H "Authorization: Bearer $KEIROUTER_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"openai/text-embedding-3-small","input":["hello","world"]}'
```
JS:
```js
const r = await fetch(`${process.env.KEIROUTER_URL}/v1/embeddings`, {
method: "POST",
headers: { "Authorization": `Bearer ${process.env.KEIROUTER_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({ model: "gemini/text-embedding-004", input: "RAG chunk text" }),
});
const { data } = await r.json();
console.log(data[0].embedding.length); // dimension
```
## Response shape
```json
{ "object": "list", "model": "openai/text-embedding-3-small",
"data": [
{ "object": "embedding", "index": 0, "embedding": [0.0123, -0.045, ...] },
{ "object": "embedding", "index": 1, "embedding": [...] }
],
"usage": { "prompt_tokens": 5, "total_tokens": 5 } }
```
## Provider quick reference
| Provider | Notes |
|---|---|
| OpenAI, Mistral, Voyage, Fireworks, Together, Nebius, NVIDIA, Jina | Native OpenAI shape — `dimensions` works only on OpenAI v3 (`text-embedding-3-*`) |
| Gemini | Server auto-converts to `embedContent`/`batchEmbedContents` — send OpenAI shape |
| Custom OpenAI | Custom `baseUrl` from credentials |
Batch (`input` as array) is faster; some providers cap batch size.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!