Back to Guides & Cookbooks

How to Connect Cadreen as a Model Provider

Cadreen speaks the OpenAI API format. Any tool that works with any OpenAI-compatible provider works with Cadreen — just change the base URL. You get governance, memory, traces, and self-healing on top.

Quick Start

Base URLhttps://accomplishanything.today/api/v1/cadreen
API Keysk_cadreen_...— get from Settings
Model"cadreen"— required by clients, Cadreen ignores it

curl

BASH
curl -X POST https://accomplishanything.today/api/v1/cadreen/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk_cadreen_..." \
-d '{
"model": "cadreen",
"messages": [
{"role": "user", "content": "Hello"}
]
}'}

Python

TEXT
from openai import OpenAI

client = OpenAI(
base_url="https://accomplishanything.today/api/v1/cadreen",
api_key="sk_cadreen_...",
)

response = client.chat.completions.create(
model="cadreen",
messages=[{"role": "user", "content": "Hello"}],
)
print(response.choices[0].message.content)

Node.js

TEXT
import OpenAI from "openai";

const client = new OpenAI({
baseURL: "https://accomplishanything.today/api/v1/cadreen",
apiKey: "sk_cadreen_...",
});

const response = await client.chat.completions.create({
model: "cadreen",
messages: [{ role: "user", content: "Hello" }],
});
console.log(response.choices[0].message.content);

Go

TEXT
client := openai.NewClient(
"sk_cadreen_...",
"https://accomplishanything.today/api/v1/cadreen",
)

resp, err := client.Chat.Completions.New(ctx, openai.ChatCompletionNewParams{
Model: "cadreen",
Messages: []openai.ChatCompletionMessageParamUnion{
openai.UserMessage("Hello"),
},
})
Note
The model field is required by OpenAI-compatible clients but Cadreen ignores it. Cadreen decides which model to use internally based on the request.

Platform-Specific Setup

Cursor

TEXT
// Cursor Settings → Models → Add Model
{
"name": "Cadreen",
"baseURL": "https://accomplishanything.today/api/v1/cadreen",
"model": "cadreen",
"apiKey": "sk_cadreen_..."
}

opencode

TEXT
// opencode.json
{
"provider": {
"name": "@ai-sdk/openai-compatible",
"baseURL": "https://accomplishanything.today/api/v1/cadreen/v1",
"apiKey": "sk_cadreen_..."
},
"model": "cadreen/cadreen"
}

Continue

TEXT
# config.yaml
models:
- name: Cadreen
provider: openai
baseURL: https://accomplishanything.today/api/v1/cadreen
model: cadreen
apiKey: sk_cadreen_...

LangChain

TEXT
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
model="cadreen",
openai_api_base="https://accomplishanything.today/api/v1/cadreen",
openai_api_key="sk_cadreen_...",
)

LlamaIndex

TEXT
from llama_index.llms.openai import OpenAI

llm = OpenAI(
model="cadreen",
api_base="https://accomplishanything.today/api/v1/cadreen",
api_key="sk_cadreen_...",
)

LiteLLM

TEXT
import litellm

response = litellm.completion(
model="openai/cadreen",
api_base="https://accomplishanything.today/api/v1/cadreen",
api_key="sk_cadreen_...",
messages=[{"role": "user", "content": "Hello"}],
)

Vercel AI SDK

TEXT
import { createOpenAI } from "@ai-sdk/openai";

const cadreen = createOpenAI({
baseURL: "https://accomplishanything.today/api/v1/cadreen",
apiKey: "sk_cadreen_...",
});

const model = cadreen("cadreen");

What Cadreen Adds

You don't choose Cadreen instead of your model. You choose structure around it. Same API, same tools — but every request is governed, remembered, and traced.

GovernanceEvery tool call checked against your rules. Approvals, blocks, escalations — you decide.
MemoryRemembers across sessions. Facts, preferences, past decisions — searchable and versioned.
Intelligence TracesSee why every decision was made. What it checked, what it remembered, what it decided.
Self-HealingRetries failed tool calls automatically. Analyzes errors, fixes arguments, tries again.
Auto-LearningTurns successful patterns into permanent knowledge. Gets better over time.

What Cadreen Adds Over Raw API Calls

temperature, top_pIgnored — Cadreen manages internally
model fieldRequired but ignored — use "cadreen"
Response metadataIncludes confidence, governance decision, trace ID
Chain-of-thoughtStripped — not visible to client
n parameterAlways 1 — one completion per request