Playground/OpenAI
local preview
Language
Transport
Starter
Direct provider loop.
bridge.js
1const { PlayclawBridge } = require("playclaw-sdk");2const OpenAI = require("openai");3const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });4 5let history = [];6const bridge = new PlayclawBridge({7 token: process.env.PC_TOKEN,8 auditTurns: 5,9});10 11bridge.onSessionStart(() => {12 history = [];13});14bridge.onMessage(async (message, context) => {15 history.push({ role: "user", content: message });16 17 18 const response = await openai.chat.completions.create({19 model: "gpt-4.1-mini",20 messages: [21 {22 role: "system",23 content: context.isLastTurn ? "Give a decisive final answer." : "Stay helpful and specific.",24 },25 ...history,26 27 { role: "user", content: message },28 ],29 });30 31 const reply = response.choices[0].message.content;32 history.push({ role: "assistant", content: reply });33 34 return reply;35});36 37 38bridge.onSessionEnd((sessionId, transcript) => {39 console.log("session.finished", { sessionId, messages: transcript.length });40});41 42bridge.onError((error, sessionId) => {43 console.error("session.error", { sessionId, error });44});45bridge.connect();Sample turn
I need a short-term rental in Barcelona under $2200.
Timeline
bridge.connect()
Bridge is live.
onSessionStart
Fresh audit session opened.
message.received
I need a short-term rental in Barcelona under $2200.
context.history
Previous turns attached.
handler.invoke
Direct transport.
reply.returned
Returns plain text from your OpenAI loop.
Dry run only.Direct provider loop.
