Die Claude-Familie von Anthropic ist eine leistungsfähige Closed-Source-Modellreihe für Programmierung, autonome Aufgaben und Long-Context-Reasoning. Der API-Preis kann jedoch schnell zum Limit für Seitenprojekte werden: Sonnet kostet 3 $ / 15 $ pro Million Tokens, Opus ist teurer. Puter.js dreht das Abrechnungsmodell um: Sie integrieren Claude im Browser ohne Anthropic-API-Key, während die Nutzung über das Puter-Konto des Endbenutzers läuft. Für Sie als Entwickler entstehen dadurch keine direkten Anthropic-Kosten.
Dieser Leitfaden zeigt die praktische Integration: Skript einbinden, Modell auswählen, Chat-Aufrufe ausführen, Streaming aktivieren, Konversationen verwalten und die Grenzen des Ansatzes kennen.
TL;DR
- Puter.js ermöglicht browserbasierten Zugriff auf Claude ohne eigenen Anthropic-API-Key.
- Die Nutzung wird dem Puter-Konto des Endbenutzers zugeordnet, nicht Ihrem Entwicklerkonto.
- Unterstützte Modelle laut ursprünglichem Katalog: Opus 4.7, Opus 4.6, Opus 4.6 Fast, Opus 4.5, Opus 4.1, Opus 4, Sonnet 4.6, Sonnet 4.5, Sonnet 4, Haiku 4.5.
- Die Basisintegration besteht aus einem
<script>-Tag und einem Aufruf vonputer.ai.chat(). - Streaming, System-Prompts und mehrstufige Unterhaltungen funktionieren über eine Anthropic-ähnliche Nachrichtenstruktur.
- Mit Apidog können Sie dieselben Prompts gegen Puter-Prototypen und eine spätere offizielle Anthropic-API-Integration vergleichen.
Wie das Abrechnungsmodell funktioniert
Puter.js ist eine browserbasierte Cloud- und KI-Bibliothek. Der zentrale Unterschied zur direkten Anthropic-Integration:
- Sie speichern keinen Anthropic-API-Key.
- Ihr Backend muss keine Claude-Aufrufe signieren.
- Der Benutzer meldet sich bei Puter an.
- Die Nutzung läuft über das Guthaben des jeweiligen Puter-Kontos.
Für Entwickler bedeutet das:
Kein API-Key im Frontend oder Repository
Kein Schlüssel, kein Leak-Risiko, keine Rotation.Keine zentrale Entwicklerabrechnung
Jeder Benutzer bringt seine eigene Nutzung mit.Schneller Prototyping-Pfad
Besonders geeignet für statische Websites, Hackathon-Projekte, Browser-Apps und Demos.
Der wichtigste Kompromiss: Puter.js ist browserzentriert. Für Cron-Jobs, Discord-Bots, serverseitige Batch-Verarbeitung oder API-Endpunkte ist die offizielle Anthropic API weiterhin die passendere Option.
Schritt 1: Puter.js einbinden
Für eine statische Seite reicht ein Script-Tag:
<script src="https://js.puter.com/v2/"></script>
Minimalbeispiel:
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8" />
<title>Claude mit Puter.js</title>
</head>
<body>
<div id="output"></div>
<script src="https://js.puter.com/v2/"></script>
<script>
async function main() {
const response = await puter.ai.chat(
"Erkläre Quantencomputing in einfachen Worten.",
{ model: "claude-sonnet-4-6" }
);
document.getElementById("output").textContent =
response.message.content[0].text;
}
main();
</script>
</body>
</html>
Wenn Sie eine gebündelte App mit Vite, Webpack oder ähnlichen Tools bauen, können Sie stattdessen das Paket verwenden:
npm install @heyputer/puter.js
import { puter } from "@heyputer/puter.js";
Für den schnellsten Einstieg ist das CDN-Tag meist ausreichend. Für TypeScript-Projekte oder größere Frontends ist der NPM-Import praktischer.
Schritt 2: Claude-Modell auswählen
Puter stellt Claude-Modelle über Modell-IDs bereit. Die Auswahl hängt vom Anwendungsfall ab:
| Modell-ID | Wann verwenden? |
|---|---|
claude-opus-4-7 |
Für besonders anspruchsvolle Reasoning-, Coding- und Agentenaufgaben |
claude-opus-4-6 |
Starke Code-Erstellung und komplexe Aufgaben |
claude-opus-4.6-fast |
Opus-Variante mit Fokus auf geringere Latenz |
claude-opus-4-5 |
Stabile Option für komplexere Produktionsszenarien |
claude-opus-4-1 |
Älteres, gut einschätzbares Opus-Modell |
claude-opus-4 |
Basislinie der Opus-4-Reihe |
claude-sonnet-4-6 |
Guter Standard für tägliche Entwicklungs- und Chat-Aufgaben |
claude-sonnet-4-5 |
Frühere Sonnet-Version für allgemeine Aufgaben |
claude-sonnet-4 |
Basislinie der Sonnet-4-Reihe |
claude-haiku-4-5 |
Schnelle Antworten, Klassifizierung, einfache Transformationen |
Praktische Startpunkte:
- Verwenden Sie
claude-sonnet-4-6als Standardmodell. - Verwenden Sie
claude-haiku-4-5, wenn Latenz wichtiger ist als maximale Tiefe. - Verwenden Sie
claude-opus-4-7, wenn der Prompt komplexe Planung, tiefe Codeanalyse oder mehrstufiges Reasoning benötigt.
Schritt 3: Einen einfachen Chat-Aufruf bauen
Der kleinste funktionierende Aufruf sieht so aus:
<!DOCTYPE html>
<html>
<body>
<script src="https://js.puter.com/v2/"></script>
<script>
puter.ai.chat(
"Erklären Sie Quantencomputing in einfachen Worten",
{ model: "claude-sonnet-4-6" }
).then(response => {
puter.print(response.message.content[0].text);
});
</script>
</body>
</html>
Die Antwortstruktur ähnelt der Anthropic Messages API:
response.message.content[0].text
Für reine Textantworten reicht meist der erste Content-Block. Wenn Sie mit mehrteiligen Antworten arbeiten, sollten Sie alle Blöcke iterieren:
for (const block of response.message.content) {
if (block.type === "text") {
console.log(block.text);
}
}
Schritt 4: Fehlerbehandlung ergänzen
Für Prototypen reicht der Minimalcode. Für eine echte UI sollten Sie Ladezustand und Fehler anzeigen:
<button id="run">Prompt senden</button>
<pre id="output"></pre>
<script src="https://js.puter.com/v2/"></script>
<script>
const output = document.getElementById("output");
const button = document.getElementById("run");
button.addEventListener("click", async () => {
output.textContent = "Lade...";
try {
const response = await puter.ai.chat(
"Gib mir drei Ideen für eine REST-API-Teststrategie.",
{ model: "claude-sonnet-4-6" }
);
output.textContent = response.message.content[0].text;
} catch (error) {
console.error(error);
output.textContent = "Fehler beim Claude-Aufruf. Details siehe Konsole.";
}
});
</script>
Das ist besonders wichtig, weil der Benutzer sich gegebenenfalls zuerst bei Puter anmelden muss.
Schritt 5: Streaming aktivieren
Für längere Antworten ist Streaming deutlich angenehmer. Aktivieren Sie es mit stream: true:
const response = await puter.ai.chat(
"Schreiben Sie einen detaillierten Aufsatz über die Auswirkungen künstlicher Intelligenz auf die Gesellschaft.",
{
model: "claude-sonnet-4-6",
stream: true
}
);
for await (const part of response) {
puter.print(part?.text);
}
Für eine eigene Chat-Oberfläche hängen Sie jeden Chunk an ein DOM-Element an:
const output = document.getElementById("output");
const stream = await puter.ai.chat(
"Erstelle eine Schritt-für-Schritt-Anleitung für API-Mocking.",
{
model: "claude-sonnet-4-6",
stream: true
}
);
output.textContent = "";
for await (const part of stream) {
if (part?.text) {
output.textContent += part.text;
}
}
Schritt 6: Mehrstufige Unterhaltungen verwalten
Für Chatverläufe übergeben Sie ein Array von Nachrichten:
const messages = [
{
role: "user",
content: "Ich entwickle eine Next.js-App mit Postgres."
},
{
role: "assistant",
content: "Verstanden. Wobei benötigen Sie Hilfe?"
},
{
role: "user",
content: "Wie soll ich den Migrationsordner strukturieren?"
}
];
const response = await puter.ai.chat(messages, {
model: "claude-opus-4-7"
});
console.log(response.message.content[0].text);
In einer echten App speichern Sie den Verlauf clientseitig:
const messages = [];
async function sendMessage(userText) {
messages.push({
role: "user",
content: userText
});
const response = await puter.ai.chat(messages, {
model: "claude-sonnet-4-6"
});
const assistantText = response.message.content[0].text;
messages.push({
role: "assistant",
content: assistantText
});
return assistantText;
}
Wichtig: Je länger der Verlauf wird, desto mehr Kontext wird mitgeschickt. Für lange Chats sollten Sie ältere Nachrichten zusammenfassen oder gezielt kürzen.
Schritt 7: System-Prompts verwenden
System-Prompts definieren Rolle, Stil, Einschränkungen und Ausgabeformat:
const messages = [
{
role: "system",
content:
"Sie sind ein erfahrener Backend-Ingenieur. Antworten Sie in nummerierten Punkten und mit maximal fünf Punkten."
},
{
role: "user",
content: "Wie verhindere ich SQL-Injection in einer Node-App?"
}
];
const response = await puter.ai.chat(messages, {
model: "claude-sonnet-4-6"
});
console.log(response.message.content[0].text);
Gute System-Prompts sind konkret:
const systemPrompt = `
Sie sind ein API-Reviewer.
Prüfen Sie die folgende OpenAPI-Spezifikation.
Antworten Sie mit:
1. Kritischen Fehlern
2. Sicherheitsrisiken
3. Verbesserungen für Developer Experience
4. Konkreten Änderungsvorschlägen
`;
Modelle mit demselben Prompt vergleichen
Um ein passendes Modell zu wählen, testen Sie denselben Prompt gegen mehrere Modelle:
const models = [
"claude-haiku-4-5",
"claude-sonnet-4-6",
"claude-opus-4-7"
];
const prompt =
"Refaktorisieren Sie diese React-Komponente, um Hooks zu verwenden: ...";
for (const model of models) {
const start = performance.now();
const response = await puter.ai.chat(prompt, { model });
const elapsed = performance.now() - start;
console.log(`${model}: ${elapsed.toFixed(0)}ms`);
console.log(response.message.content[0].text);
console.log("---");
}
Bewerten Sie nicht nur die Antwortqualität, sondern auch:
- Latenz
- Antwortlänge
- Konsistenz bei wiederholten Runs
- Qualität bei Randfällen
- Eignung für Ihren konkreten UI-Flow
Für viele Anwendungen ist claude-sonnet-4-6 ein sinnvoller Default. claude-haiku-4-5 eignet sich für schnelle Klassifizierung oder einfache Texttransformationen. claude-opus-4-7 sollten Sie für Aufgaben reservieren, bei denen bessere Reasoning-Qualität den Mehraufwand rechtfertigt.
Wenn Sie Puter mit einer späteren offiziellen Anthropic-Integration vergleichen möchten, können Sie in Apidog separate Umgebungen für Prototyp und Produktion pflegen.
Was Sie bekommen — und was nicht
Puter.js ist praktisch, aber nicht identisch mit einer direkten Backend-Integration über die offizielle Anthropic API.
Sie bekommen:
- Zugriff auf Claude-Modelle über eine einfache Browser-API
- Mehrstufige Unterhaltungen
- System-Prompts
- Streaming-Antworten
- Keine Verwaltung eigener Anthropic-Keys
- Kein zentrales Abrechnungsrisiko für Ihr Projekt
Sie bekommen möglicherweise nicht oder nur eingeschränkt:
- Native Tool-Nutzung / Function Calling, abhängig vom aktuellen Puter-Funktionsumfang
- Vision-Eingaben wie Bildanhänge
- Direkte Kontrolle über Anthropic-spezifisches Prompt-Caching
- Serverseitige Nutzung ohne Browserkontext
- Direkte Einsicht in Anthropic-Rate-Limit-Header
Für Workflows mit komplexer Tool-Nutzung, MCP-Servern oder Backend-Automatisierung bietet die offizielle Anthropic API mehr Kontrolle. Für MCP-bezogene Tests siehe auch MCP-Server-Testing in Apidog.
Wann Sie Puter verwenden sollten
Verwenden Sie Puter.js, wenn:
- Sie eine browserbasierte Demo oder öffentliche App bauen.
- Sie keine eigene Anthropic-Abrechnung verwalten möchten.
- Sie schnell prototypen wollen.
- Ihre App ohne Backend auskommen soll.
- Ihre Benutzer einen Puter-Login akzeptieren.
Verwenden Sie die offizielle Anthropic API, wenn:
- Sie serverseitige Jobs, Cron-Prozesse oder Backend-Endpunkte haben.
- Sie Tool-Nutzung, Vision oder Files-Workflows benötigen.
- Sie Prompt-Caching gezielt zur Kostenoptimierung einsetzen wollen.
- Sie Compliance-Anforderungen vertraglich abdecken müssen.
- Ihre Benutzer keinen zusätzlichen Login-Schritt akzeptieren.
Ein praktikabler Weg ist: mit Puter prototypen, Produktlogik validieren und bei Bedarf später auf die offizielle API migrieren. Da die Nachrichtenstruktur ähnlich ist, bleibt die Migration überschaubar.
Für das GPT-Äquivalent siehe Wie man die GPT-5.5 API verwendet.
Die Integration mit Apidog testen
Puter-Aufrufe laufen im Browser. Ein klassischer Backend-Test-Runner kann sie daher nicht direkt wie eine normale REST-API testen. Ein praktikabler Testaufbau:
- Erstellen Sie eine kleine statische Testseite mit Puter.js.
- Übergeben Sie den Prompt per Query-Parameter oder Formularfeld.
- Loggen Sie Modell, Prompt, Antwort und Laufzeit im Browser.
- Pflegen Sie in Apidog parallel die spätere Anthropic-API-Struktur.
- Vergleichen Sie beide Pfade über separate Umgebungen.
Laden Sie Apidog herunter und legen Sie zwei Umgebungen an:
puter-prototype
Beispiel:http://localhost:5173anthropic-prod
Beispiel:https://api.anthropic.com/v1
So können Sie Prompts, erwartete Antworten und spätere API-Verträge an einem Ort dokumentieren.
Beispiel: Prompt über URL testen
Eine einfache Testseite kann den Prompt aus der URL lesen:
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8" />
<title>Puter Claude Test</title>
</head>
<body>
<pre id="output">Lade...</pre>
<script src="https://js.puter.com/v2/"></script>
<script>
async function main() {
const params = new URLSearchParams(window.location.search);
const prompt = params.get("prompt") || "Sag Hallo in einem Satz.";
const model = params.get("model") || "claude-sonnet-4-6";
const output = document.getElementById("output");
try {
const start = performance.now();
const response = await puter.ai.chat(prompt, { model });
const elapsed = performance.now() - start;
output.textContent = JSON.stringify(
{
model,
elapsedMs: Math.round(elapsed),
prompt,
response: response.message.content[0].text
},
null,
2
);
} catch (error) {
output.textContent = String(error);
}
}
main();
</script>
</body>
</html>
Aufruf im Browser:
http://localhost:5173/?model=claude-sonnet-4-6&prompt=Erkläre%20API-Mocking
Damit erhalten Sie einen reproduzierbaren Prototyp, den Sie später mit einer serverseitigen Anthropic-Route vergleichen können.
FAQ
Ist das wirklich unbegrenzt?
Aus Entwicklersicht gibt es keine zentrale Anthropic-Abrechnung über Ihr Konto. Die tatsächliche Nutzung hängt vom Puter-Konto und Guthaben des jeweiligen Endbenutzers ab.
Muss ich mich bei Anthropic anmelden?
Nein. Bei diesem Ansatz verwalten Sie keinen Anthropic-API-Key.
Kann ich das in Produktion verwenden?
Ja, für browserbasierte Apps, wenn der Puter-Login für Ihre Benutzer akzeptabel ist. Für serverseitige Produktionslogik sollten Sie die offizielle Anthropic API prüfen.
Verhält sich Claude über Puter identisch zur offiziellen API?
Die Modellantworten sollten grundsätzlich aus demselben Claude-Modell stammen. Die verfügbare API-Oberfläche, Latenz und Zusatzfunktionen können sich jedoch von der direkten Anthropic API unterscheiden.
Was ist mit Prompt-Caching?
Wenn Sie Anthropic-spezifisches Prompt-Caching gezielt steuern möchten, ist die offizielle API der bessere Weg.
Kann ich Puter in einem Discord-Bot oder Backend-Dienst verwenden?
Nicht sauber, da Puter.js browserzentriert ist und eine Benutzersitzung voraussetzt. Für Bots und Backends verwenden Sie besser die offizielle Anthropic API.
Welches Modell sollte ich standardmäßig verwenden?
claude-sonnet-4-6 ist ein guter Startpunkt. Wechseln Sie zu claude-opus-4-7 für tiefere Analyse und zu claude-haiku-4-5 für schnelle, einfache Aufgaben.
Zusammenfassung
Puter.js ist ein schneller Weg, Claude in browserbasierte Apps einzubauen, ohne einen eigenen Anthropic-API-Key zu verwalten. Die Integration ist minimal: Skript einfügen, Modell wählen, puter.ai.chat() aufrufen.
Für Prototypen, statische Websites, Hackathon-Projekte und kostenlose öffentliche Tools ist dieser Ansatz besonders praktisch. Für serverseitige Workloads, Tool-Nutzung, Prompt-Caching oder Compliance-Anforderungen bleibt die offizielle Anthropic API die robustere Option.
Erstellen Sie Ihre Testfälle in Apidog, vergleichen Sie Puter-Prototypen mit einer offiziellen API-Integration und migrieren Sie erst dann, wenn Ihr Anwendungsfall es wirklich erfordert.

Top comments (0)