potluck-chatlisted
Install: claude install-skill Ezero23/potluck
# Potluck — Chat
Requires `POTLUCK_URL` (and `POTLUCK_KEY` if auth enabled). See https://raw.githubusercontent.com/Ezero23/potluck/refs/heads/main/skills/potluck/SKILL.md for setup.
## Endpoints
- `POST $POTLUCK_URL/v1/chat/completions` — OpenAI format
- `POST $POTLUCK_URL/v1/messages` — Anthropic format
## Discover
```bash
curl $POTLUCK_URL/v1/models | jq '.data[].id'
# Per-model metadata (contextWindow, params)
curl "$POTLUCK_URL/v1/models/info?id=openai/gpt-4o"
```
Combos (e.g. `vip`, `mycodex`) auto-fallback through multiple providers.
## OpenAI format
```bash
curl -X POST $POTLUCK_URL/v1/chat/completions \
-H "Authorization: Bearer $POTLUCK_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"openai/gpt-5","messages":[{"role":"user","content":"Hi"}],"stream":false}'
```
JS (OpenAI SDK):
```js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: `${process.env.POTLUCK_URL}/v1`, apiKey: process.env.POTLUCK_KEY });
const res = await client.chat.completions.create({
model: "openai/gpt-5",
messages: [{ role: "user", content: "Hi" }],
stream: true,
});
for await (const chunk of res) process.stdout.write(chunk.choices[0]?.delta?.content || "");
```
## Anthropic format
```bash
curl -X POST $POTLUCK_URL/v1/messages \
-H "Authorization: Bearer $POTLUCK_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{"model":"cc/claude-opus-4-7","max_tokens":1024,"messages":[{"role":"user","content":"Hi"}]}'
`