Skip to content

Node.js / TS support #5

Open
Open

Description

@Hendrixer

When could we expect a Node.js server implementation of this Chatkit Server?

Activity

  1. patrickjaja commented on Oct 7, 2025

    @patrickjaja
  2. aerobless commented on Oct 8, 2025

    @aerobless

    like this? https://github.com/openai/chatkit-js

    I think this is only the frontend, chatkit-python ist the backend library.

  3. weedon-openai commented on Oct 9, 2025

    @weedon-openai
    Contributor

    ❤️ 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.

  4. Hendrixer commented on Oct 9, 2025

    @Hendrixer
    Author

    @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

  5. oliverchanyw commented on Oct 9, 2025

    @oliverchanyw

    glad it's coming. so like ... next Friday? 🥺

  6. EvoTechMike commented on Oct 13, 2025

    @EvoTechMike

    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.

  7. traversng commented on Oct 31, 2025

    @traversng

    Any updates on this? Is there something in the works or should we all just port this over?

  8. EvoTechMike commented on Oct 31, 2025

    @EvoTechMike

    I'm using the port I made, not had any issues with it yet

  9. tylersmith-openai commented on Nov 10, 2025

    @tylersmith-openai

    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.

  10. bakikucukcakiroglu commented on Nov 11, 2025

    @bakikucukcakiroglu

    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!

  11. bakikucukcakiroglu commented on Mar 23, 2026

    @bakikucukcakiroglu

    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.

  12. abenhamdine commented on Mar 24, 2026

    @abenhamdine

    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.

    Why don't use https://github.com/EvoTechMike/chatkit-node-backend-sdk ? It works perfectly

  13. bakikucukcakiroglu commented on Mar 24, 2026

    @bakikucukcakiroglu

    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.

    Why don't use https://github.com/EvoTechMike/chatkit-node-backend-sdk ? It works perfectly

  14. abenhamdine commented on Mar 24, 2026

    @abenhamdine

    @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.

  15. bakikucukcakiroglu commented on Mar 24, 2026

    @bakikucukcakiroglu

    @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.

  16. traversng commented on Mar 24, 2026

    @traversng

    @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.

    It feels dead imo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions