
ChatKit Python
https://github.com/openai/chatkit-python- Category
- Developer Tools
- Rank
- No. 840Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- openai
- GitHub
- 391 stars
- Latest release
- v1.6.5
- Date
About
Official Python SDK for OpenAI's ChatKit, a toolkit for building chat-style AI apps.
What it does
ChatKit Python handles the server side of a conversational application. It routes requests through one HTTP endpoint, maintains ordered conversation threads through an application-provided store, and streams messages, widgets, actions, progress, errors, and client effects as events. Helpers translate stored conversation items into model input and convert agent output back into streamed UI updates.
Why it's ranked here
This is a strong backend foundation when the client already uses ChatKit. It defines the conversation protocol, persistence boundaries, typed content, and streaming lifecycle instead of leaving each application to invent them. Its value is clearest for rich interfaces involving history, citations, tools, widgets, feedback, or structured actions, not merely text completion.
What's good
The server automatically routes request types and persists completed or replaced conversation items. The store abstraction lets applications choose their own database. Agent helpers cover input conversion and streamed response conversion. The event model supports incremental content, transient progress, retryable errors, cancellation options, metadata changes, and fire-and-forget client effects. Citations from supported model tools can pass through automatically.
Tradeoffs
You must supply the frontend integration and implement durable storage yourself. The quick start deliberately omits persistence across restarts and attachment support. Thread locking and closure change the composer but do not automatically block server actions or tool work. Public interfaces may break in minor releases, so deployments that need stability should pin a minor series.
How to use it well
Use it for a Python backend paired with the ChatKit React bindings or vanilla JavaScript client. Start with the in-memory store to understand the protocol, then replace it with a database-backed implementation and add explicit authorization around actions. It does not replace the browser UI, durable database, or application-specific tool logic.
Technical notes+
pyproject.toml packages chatkit as openai-chatkit, requires Python 3.10 or newer, includes py.typed, and depends on Pydantic, Uvicorn, OpenAI, OpenAI Agents, and Jinja2. docs/quickstart.md shows a FastAPI endpoint passing raw request bodies to ChatKitServer.process, returning JSON or text/event-stream, and implementing the generic Store contract. docs/concepts/thread-stream-events.md documents persistence semantics: ThreadItemAddedEvent remains pending, while ThreadItemDoneEvent and ThreadItemReplacedEvent trigger store writes. docs/release.md states that minor versions may contain breaking public-interface changes. Makefile defines formatting, Ruff linting, Pyright, pytest, package builds, and documentation tasks.
Observed
- License
- Apache License 2.0
- Primary language
- Python
- Package
- Published install surface is openai-chatkit via pip
- Runtime support
- Requires Python 3.10 or newer
- Interface
- Python library integrated behind an HTTP endpoint with JSON and Server-Sent Event responses
- Typing
- The package includes a py.typed marker
Read from README.md, Makefile, pyproject.toml, docs/index.md, docs/release.md, docs/quickstart.md, docs/concepts/tools.md, docs/concepts/actions.md, docs/concepts/threads.md, docs/concepts/widgets.md, docs/concepts/entities.md, docs/guides/add-annotations.md, docs/guides/handle-feedback.md, docs/guides/browse-past-threads.md, docs/concepts/thread-stream-events.md.
What it can do
Send chat messages to OpenAI models
Text messages and conversation context → AI-generated responses
Manage conversation history
Chat messages and metadata → Structured conversation data
Stream real-time chat responses
User prompts → Incremental text chunks as they're generated
Configure chat parameters
Model settings like temperature, max tokens, system prompts → Configured chat session
Handle multiple conversation threads
Multiple chat sessions with unique identifiers → Organized conversation management
Process chat completions with function calling
Messages with function definitions and parameters → Function call results integrated into chat flow
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.