You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I don't have firm timelines yet, but definitely something we'll want to do. We already have a JS implementation of the Agents SDK, so it should be doable.
Reacted by Hung Nguyen, Hasan Baki Kucukcakiroglu and Graham Place
Reacted by Theo Winter, Hasan Baki Kucukcakiroglu and Graham Place
@weedon-openai thanks for the quick response. I've translated this python sdk to node + typescript and have been using it so happy to share / help contribute to this. Maybe this is work another issue or just a conversation, but one thing that I'm thinking about is just the philosophy of interacting with agents as they currently stand.
Right now, unless an agent can fulfill a request, (complete with looping on tools) in an http request model, then it limits the scope of the agent. Anything related to long jobs that can take an indefinite about of time due to the nature of the task, HITL controls that cause it to pause and wait, etc, don't really have a good story here (UI and protocol wise). Being able to "circle back" and notify chat UI's like chatkit would be massive for having agents that do real work. Sure there is the new concept of pinned widgets that could potentially solve this, but if my agent has jobs that run on distributed compute on other systems outside of the API that handles the chat request, then we need some kind of event protocol to send to and from and subscribe to. HTTP request then become proxies for events sent to these workers that execute the agents durably, similar to how one would design webhook handlers. They shouldn't synchronous and waiting for responses even if they are streamed as tokens are generated. Does that make sense?
I know internally you all do the same for some of your products, definitely codex and maybe some of the scheduling work you have in chatGPT and others, and I know you've refactored the python agents sdk so it better works with durable execution products like Temporal, but the UI still seems to want you to have a synchronous agent that at best will stream tokens. And when I say the "the UI", I'm referring to pretty much all chat bots right now. So much focus is on synchronous conversations, and not asynchronous distributed tasks.
I think the UI should move past that and instead onto handling agents that can send events to the UI at anytime, prompting change in that chat or other parts in the UI like approvals, clarifications, status updates, etc. Have you all thought of this? That is the biggest limitation for me right now when thinking about the current state of Chat UX, Chatkit UI, and the protocols we use to chat to agents, that honestly should also be transport agnostic
Reacted by Georg Wölflein, Michael Schock and Hasan Baki Kucukcakiroglu
I got it working for my use-case, I can load my own agent config in the backend and stream widgets.
There is probably some use cases not fully working, I'll fix them as I come across them in my own project. If anyone else wants to work on it they are welcome.
I am assuming an official library will drop at some point but I wanted to get a head start on integration.
Reacted by Theo Winter, Scott Moss, tylersmith-openai, Hasan Baki Kucukcakiroglu and Arnaud Benhamdine
This is absolutely needed. Isn’t JavaScript the most popular backend and frontend language for web startups? Am I missing something? It always seems to be pushed into the background by OpenAI, and we even had to wait months for OpenAI Agents JS. Just disappointing!
Please understand that startup teams are often very small nowadays, especially with the rise of AI-driven development. At the same time, everything is moving incredibly fast, so it is difficult for us to dedicate the time and resources needed to keep up with every change.
You introduced the vision of the Frontier Platform, right? But clearly, OpenAI itself cannot be the one-size-fits-all Frontier Platform for every use case. That is exactly why you opened up tools like the Agents SDK, Agent Builder, ChatKit, Traces, and others to the broader ecosystem.
That vision is also one of the main reasons we chose OpenAI over other providers. For example, we could have gone with LangGraph instead of the Agents SDK. And then, we could use CopilotKit as an alternative kit with supported JS LangGraph backend. That likely would have left us less inference vendor-locked, since although the Agents SDK is vendor-independent in theory, in practice it is designed around OpenAI APIs first. Still, we chose this path, and today we are already spending thousands of dollars on only OpenAI APIs. If we succeed, that could grow into millions.
What I want from my provider is to spend my time thinking about the new use cases unlocked by the tools you release, not fighting with gaps like a missing JS port.
Please understand that startup teams are often very small nowadays, especially with the rise of AI-driven development. At the same time, everything is moving incredibly fast, so it is difficult for us to dedicate the time and resources needed to keep up with every change.
You introduced the vision of the Frontier Platform, right? But clearly, OpenAI itself cannot be the one-size-fits-all Frontier Platform for every use case. That is exactly why you opened up tools like the Agents SDK, Agent Builder, ChatKit, Traces, and others to the broader ecosystem.
That vision is also one of the main reasons we chose OpenAI over other providers. For example, we could have gone with LangGraph instead of the Agents SDK. And then, we could use CopilotKit as an alternative kit with supported JS LangGraph backend. That likely would have left us less inference vendor-locked, since although the Agents SDK is vendor-independent in theory, in practice it is designed around OpenAI APIs first. Still, we chose this path, and today we are already spending thousands of dollars on only OpenAI APIs. If we succeed, that could grow into millions.
What I want from my provider is to spend my time thinking about the new use cases unlocked by the tools you release, not fighting with gaps like a missing JS port.
I’m already using it. The problem is that it lacks maintenance. When something new is released, that’s where it stops.
Any updates? It has been almost six months. @tylersmith-openai@weedon-openai
Please understand that startup teams are often very small nowadays, especially with the rise of AI-driven development. At the same time, everything is moving incredibly fast, so it is difficult for us to dedicate the time and resources needed to keep up with every change.
You introduced the vision of the Frontier Platform, right? But clearly, OpenAI itself cannot be the one-size-fits-all Frontier Platform for every use case. That is exactly why you opened up tools like the Agents SDK, Agent Builder, ChatKit, Traces, and others to the broader ecosystem.
That vision is also one of the main reasons we chose OpenAI over other providers. For example, we could have gone with LangGraph instead of the Agents SDK. And then, we could use CopilotKit as an alternative kit with supported JS LangGraph backend. That likely would have left us less inference vendor-locked, since although the Agents SDK is vendor-independent in theory, in practice it is designed around OpenAI APIs first. Still, we chose this path, and today we are already spending thousands of dollars on only OpenAI APIs. If we succeed, that could grow into millions.
What I want from my provider is to spend my time thinking about the new use cases unlocked by the tools you release, not fighting with gaps like a missing JS port.
@EvoTechMike looks open to contributions, I think someone could send PR to backport the Python changes, one version at once, with the help of a coding agent.
I will try to find the time but I can't promise anything.
@abenhamdine That’s exactly the point: the real issue is the resources required. Otherwise, anyone could port it.
What I expect from my inference provider is a first-class port for the most widely used programming language in the world, and long-term maintenance for it.
This is a mutual relationship. It saves us time and engineering effort, while also pulling us deeper into their ecosystem, which we effectively pay for through API usage. That is the real reason these open-source projects are released in the first place. But you cannot make one project available in TypeScript and leave another one unsupported. Be consistent. If you no longer want to maintain the TypeScript ecosystem, then please announce it publicly.
@abenhamdine That’s exactly the point: the real issue is the resources required. Otherwise, anyone could port it.
What I expect from my inference provider is a first-class port for the most widely used programming language in the world, and long-term maintenance for it.
This is a mutual relationship. It saves us time and engineering effort, while also pulling us deeper into their ecosystem, which we effectively pay for through API usage. That is the real reason these open-source projects are released in the first place. But you cannot make one project available in TypeScript and leave another one unsupported. Be consistent. If you no longer want to maintain the TypeScript ecosystem, then please announce it publicly.
Activity
patrickjaja commentedon Oct 7, 2025
like this? https://github.com/openai/chatkit-js
aerobless commentedon Oct 8, 2025
I think this is only the frontend, chatkit-python ist the backend library.
weedon-openai commentedon Oct 9, 2025
❤️ JS/TS/Node/Deno/Bun etc :)
I don't have firm timelines yet, but definitely something we'll want to do. We already have a JS implementation of the Agents SDK, so it should be doable.
Hendrixer commentedon Oct 9, 2025
@weedon-openai thanks for the quick response. I've translated this python sdk to node + typescript and have been using it so happy to share / help contribute to this. Maybe this is work another issue or just a conversation, but one thing that I'm thinking about is just the philosophy of interacting with agents as they currently stand.
Right now, unless an agent can fulfill a request, (complete with looping on tools) in an http request model, then it limits the scope of the agent. Anything related to long jobs that can take an indefinite about of time due to the nature of the task, HITL controls that cause it to pause and wait, etc, don't really have a good story here (UI and protocol wise). Being able to "circle back" and notify chat UI's like chatkit would be massive for having agents that do real work. Sure there is the new concept of pinned widgets that could potentially solve this, but if my agent has jobs that run on distributed compute on other systems outside of the API that handles the chat request, then we need some kind of event protocol to send to and from and subscribe to. HTTP request then become proxies for events sent to these workers that execute the agents durably, similar to how one would design webhook handlers. They shouldn't synchronous and waiting for responses even if they are streamed as tokens are generated. Does that make sense?
I know internally you all do the same for some of your products, definitely codex and maybe some of the scheduling work you have in chatGPT and others, and I know you've refactored the python agents sdk so it better works with durable execution products like Temporal, but the UI still seems to want you to have a synchronous agent that at best will stream tokens. And when I say the "the UI", I'm referring to pretty much all chat bots right now. So much focus is on synchronous conversations, and not asynchronous distributed tasks.
I think the UI should move past that and instead onto handling agents that can send events to the UI at anytime, prompting change in that chat or other parts in the UI like approvals, clarifications, status updates, etc. Have you all thought of this? That is the biggest limitation for me right now when thinking about the current state of Chat UX, Chatkit UI, and the protocols we use to chat to agents, that honestly should also be transport agnostic
oliverchanyw commentedon Oct 9, 2025
glad it's coming. so like ... next Friday? 🥺
EvoTechMike commentedon Oct 13, 2025
I did a hasty (AI assisted) port to node - https://github.com/EvoTechMike/chatkit-node-backend-sdk
NPM package - https://www.npmjs.com/package/chatkit-node-backend-sdk
I got it working for my use-case, I can load my own agent config in the backend and stream widgets.
There is probably some use cases not fully working, I'll fix them as I come across them in my own project. If anyone else wants to work on it they are welcome.
I am assuming an official library will drop at some point but I wanted to get a head start on integration.
traversng commentedon Oct 31, 2025
Any updates on this? Is there something in the works or should we all just port this over?
EvoTechMike commentedon Oct 31, 2025
I'm using the port I made, not had any issues with it yet
tylersmith-openai commentedon Nov 10, 2025
Thank you for putting that node SDK port together, @EvoTechMike!
We don't have an update on timelines for a first-class Typescript SDK. We'll leave this issue open and share more info once we start it.
bakikucukcakiroglu commentedon Nov 11, 2025
This is absolutely needed. Isn’t JavaScript the most popular backend and frontend language for web startups? Am I missing something? It always seems to be pushed into the background by OpenAI, and we even had to wait months for OpenAI Agents JS. Just disappointing!
bakikucukcakiroglu commentedon Mar 23, 2026
Any updates? It has been almost six months. @tylersmith-openai @weedon-openai
Please understand that startup teams are often very small nowadays, especially with the rise of AI-driven development. At the same time, everything is moving incredibly fast, so it is difficult for us to dedicate the time and resources needed to keep up with every change.
You introduced the vision of the Frontier Platform, right? But clearly, OpenAI itself cannot be the one-size-fits-all Frontier Platform for every use case. That is exactly why you opened up tools like the Agents SDK, Agent Builder, ChatKit, Traces, and others to the broader ecosystem.
That vision is also one of the main reasons we chose OpenAI over other providers. For example, we could have gone with LangGraph instead of the Agents SDK. And then, we could use CopilotKit as an alternative kit with supported JS LangGraph backend. That likely would have left us less inference vendor-locked, since although the Agents SDK is vendor-independent in theory, in practice it is designed around OpenAI APIs first. Still, we chose this path, and today we are already spending thousands of dollars on only OpenAI APIs. If we succeed, that could grow into millions.
What I want from my provider is to spend my time thinking about the new use cases unlocked by the tools you release, not fighting with gaps like a missing JS port.
abenhamdine commentedon Mar 24, 2026
Why don't use https://github.com/EvoTechMike/chatkit-node-backend-sdk ? It works perfectly
bakikucukcakiroglu commentedon Mar 24, 2026
I’m already using it. The problem is that it lacks maintenance. When something new is released, that’s where it stops.
abenhamdine commentedon Mar 24, 2026
@EvoTechMike looks open to contributions, I think someone could send PR to backport the Python changes, one version at once, with the help of a coding agent.
I will try to find the time but I can't promise anything.
bakikucukcakiroglu commentedon Mar 24, 2026
@abenhamdine That’s exactly the point: the real issue is the resources required. Otherwise, anyone could port it.
What I expect from my inference provider is a first-class port for the most widely used programming language in the world, and long-term maintenance for it.
This is a mutual relationship. It saves us time and engineering effort, while also pulling us deeper into their ecosystem, which we effectively pay for through API usage. That is the real reason these open-source projects are released in the first place. But you cannot make one project available in TypeScript and leave another one unsupported. Be consistent. If you no longer want to maintain the TypeScript ecosystem, then please announce it publicly.
This is not a child’s joke.
traversng commentedon Mar 24, 2026
It feels dead imo.