openai/openai-agents-pythonPublic

A lightweight, powerful framework for multi-agent workflows

AI summary: The official Python SDK for building, managing, and orchestrating OpenAI's autonomous agents.

Stars
29.8K
+39 today
Forks
4.8K
Watchers
231
Open issues
1
Open PRs
7
Contributors
~402
Commits
2.4K
Branches
12

PythonMITCreated Mar 11, 2025Last push 2d agoLatest release v0.22.3+140 stars this week+665 this month

Quick answers

What is openai-agents-python?
The official Python SDK for building, managing, and orchestrating OpenAI's autonomous agents.
What does openai-agents-python do?
This library provides the official, streamlined interface for interacting with OpenAI's Agents API, abstracting away the raw HTTP calls into idiomatic Python. It handles the complex lifecycle of agents, threads, and runs, allowing developers to focus on the logic of their applications. The technical implementation emphasizes type safety, asynchronous support, and robust error handling while managing the stateful interactions required by the Assistants framework. What makes this distinctive is its deep integration with OpenAI's ecosystem, providing first-class support for capabilities like Code Interpreter and File Search out of the box. It represents the most reliable path for integrating production-grade OpenAI agents into Python backends.
Who is openai-agents-python for?
This SDK is designed for Python developers and software engineers building applications on top of OpenAI's platform. It requires a solid understanding of Python programming and familiarity with API concepts.
How do I get started with openai-agents-python?
pip install openai-agents && python -c 'import agents'
How popular is openai-agents-python on GitHub?
openai/openai-agents-python has 29,811 stars and 4,839 forks on GitHub, and gained 140 stars in the last 7 days.
What license does openai-agents-python use?
openai/openai-agents-python is released under the MIT license.

Star history

since Jul 29, 2026
010K20KJul 2026Aug 2026Sep 2026Oct 2026
29.8K stars as of Oct 3, 2026. Measured daily since Jul 29, 2026; GitHub no longer exposes earlier star timestamps.

Contribution activity

commits per day, last 52 weeks
OctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-10-05: 2 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 2 commits2025-10-09: 1 commit2025-10-10: 1 commit2025-10-11: 1 commit2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 7 commits2025-10-15: 2 commits2025-10-16: 2 commits2025-10-17: 4 commits2025-10-18: 5 commits2025-10-19: 2 commits2025-10-20: 2 commits2025-10-21: 8 commits2025-10-22: 8 commits2025-10-23: 1 commit2025-10-24: 2 commits2025-10-25: 2 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 2 commits2025-10-29: 1 commit2025-10-30: 2 commits2025-10-31: 2 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 3 commits2025-11-05: 6 commits2025-11-06: 1 commit2025-11-07: 0 commits2025-11-08: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 3 commits2025-11-14: 1 commit2025-11-15: 0 commits2025-11-16: 1 commit2025-11-17: 1 commit2025-11-18: 7 commits2025-11-19: 3 commits2025-11-20: 3 commits2025-11-21: 0 commits2025-11-22: 1 commit2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 1 commit2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 5 commits2025-12-03: 3 commits2025-12-04: 4 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 1 commit2025-12-08: 0 commits2025-12-09: 1 commit2025-12-10: 1 commit2025-12-11: 2 commits2025-12-12: 1 commit2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 1 commit2025-12-16: 3 commits2025-12-17: 6 commits2025-12-18: 1 commit2025-12-19: 5 commits2025-12-20: 1 commit2025-12-21: 0 commits2025-12-22: 3 commits2025-12-23: 1 commit2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 2 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 1 commit2026-01-06: 7 commits2026-01-07: 2 commits2026-01-08: 3 commits2026-01-09: 2 commits2026-01-10: 6 commits2026-01-11: 1 commit2026-01-12: 2 commits2026-01-13: 3 commits2026-01-14: 2 commits2026-01-15: 8 commits2026-01-16: 6 commits2026-01-17: 14 commits2026-01-18: 1 commit2026-01-19: 5 commits2026-01-20: 22 commits2026-01-21: 3 commits2026-01-22: 0 commits2026-01-23: 8 commits2026-01-24: 2 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 4 commits2026-01-29: 3 commits2026-01-30: 6 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 2 commits2026-02-03: 12 commits2026-02-04: 11 commits2026-02-05: 6 commits2026-02-06: 2 commits2026-02-07: 5 commits2026-02-08: 2 commits2026-02-09: 10 commits2026-02-10: 3 commits2026-02-11: 8 commits2026-02-12: 2 commits2026-02-13: 16 commits2026-02-14: 1 commit2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 7 commits2026-02-18: 4 commits2026-02-19: 2 commits2026-02-20: 0 commits2026-02-21: 2 commits2026-02-22: 2 commits2026-02-23: 0 commits2026-02-24: 9 commits2026-02-25: 1 commit2026-02-26: 4 commits2026-02-27: 2 commits2026-02-28: 4 commits2026-03-01: 11 commits2026-03-02: 5 commits2026-03-03: 4 commits2026-03-04: 12 commits2026-03-05: 1 commit2026-03-06: 11 commits2026-03-07: 11 commits2026-03-08: 4 commits2026-03-09: 7 commits2026-03-10: 0 commits2026-03-11: 1 commit2026-03-12: 6 commits2026-03-13: 5 commits2026-03-14: 5 commits2026-03-15: 3 commits2026-03-16: 2 commits2026-03-17: 9 commits2026-03-18: 6 commits2026-03-19: 9 commits2026-03-20: 8 commits2026-03-21: 3 commits2026-03-22: 1 commit2026-03-23: 4 commits2026-03-24: 3 commits2026-03-25: 10 commits2026-03-26: 6 commits2026-03-27: 6 commits2026-03-28: 2 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 3 commits2026-04-01: 4 commits2026-04-02: 3 commits2026-04-03: 0 commits2026-04-04: 2 commits2026-04-05: 0 commits2026-04-06: 3 commits2026-04-07: 1 commit2026-04-08: 3 commits2026-04-09: 2 commits2026-04-10: 2 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 0 commits2026-04-15: 4 commits2026-04-16: 18 commits2026-04-17: 4 commits2026-04-18: 3 commits2026-04-19: 3 commits2026-04-20: 1 commit2026-04-21: 15 commits2026-04-22: 4 commits2026-04-23: 5 commits2026-04-24: 3 commits2026-04-25: 3 commits2026-04-26: 3 commits2026-04-27: 2 commits2026-04-28: 2 commits2026-04-29: 4 commits2026-04-30: 1 commit2026-05-01: 11 commits2026-05-02: 9 commits2026-05-03: 1 commit2026-05-04: 12 commits2026-05-05: 4 commits2026-05-06: 16 commits2026-05-07: 20 commits2026-05-08: 35 commits2026-05-09: 17 commits2026-05-10: 11 commits2026-05-11: 8 commits2026-05-12: 16 commits2026-05-13: 5 commits2026-05-14: 5 commits2026-05-15: 1 commit2026-05-16: 4 commits2026-05-17: 0 commits2026-05-18: 5 commits2026-05-19: 2 commits2026-05-20: 2 commits2026-05-21: 5 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 2 commits2026-05-27: 0 commits2026-05-28: 2 commits2026-05-29: 0 commits2026-05-30: 3 commits2026-05-31: 0 commits2026-06-01: 0 commits2026-06-02: 0 commits2026-06-03: 0 commits2026-06-04: 5 commits2026-06-05: 3 commits2026-06-06: 0 commits2026-06-07: 0 commits2026-06-08: 0 commits2026-06-09: 2 commits2026-06-10: 2 commits2026-06-11: 1 commit2026-06-12: 0 commits2026-06-13: 3 commits2026-06-14: 0 commits2026-06-15: 0 commits2026-06-16: 0 commits2026-06-17: 0 commits2026-06-18: 5 commits2026-06-19: 4 commits2026-06-20: 0 commits2026-06-21: 4 commits2026-06-22: 12 commits2026-06-23: 2 commits2026-06-24: 5 commits2026-06-25: 0 commits2026-06-26: 4 commits2026-06-27: 0 commits2026-06-28: 0 commits2026-06-29: 2 commits2026-06-30: 1 commit2026-07-01: 1 commit2026-07-02: 7 commits2026-07-03: 0 commits2026-07-04: 8 commits2026-07-05: 0 commits2026-07-06: 4 commits2026-07-07: 7 commits2026-07-08: 5 commits2026-07-09: 6 commits2026-07-10: 12 commits2026-07-11: 21 commits2026-07-12: 1 commit2026-07-13: 5 commits2026-07-14: 2 commits2026-07-15: 2 commits2026-07-16: 3 commits2026-07-17: 12 commits2026-07-18: 3 commits2026-07-19: 4 commits2026-07-20: 3 commits2026-07-21: 8 commits2026-07-22: 4 commits2026-07-23: 6 commits2026-07-24: 8 commits2026-07-25: 10 commits2026-07-26: 6 commits2026-07-27: 8 commits2026-07-28: 15 commits2026-07-29: 5 commits2026-07-30: 10 commits2026-07-31: 15 commits2026-08-01: 16 commits2026-08-02: 14 commits2026-08-03: 18 commits2026-08-04: 14 commits2026-08-05: 46 commits2026-08-06: 18 commits2026-08-07: 19 commits2026-08-08: 14 commits2026-08-09: 20 commits2026-08-10: 16 commits2026-08-11: 16 commits2026-08-12: 7 commits2026-08-13: 10 commits2026-08-14: 12 commits2026-08-15: 10 commits2026-08-16: 15 commits2026-08-17: 10 commits2026-08-18: 6 commits2026-08-19: 15 commits2026-08-20: 10 commits2026-08-21: 3 commits2026-08-22: 12 commits2026-08-23: 5 commits2026-08-24: 4 commits2026-08-25: 16 commits2026-08-26: 4 commits2026-08-27: 2 commits2026-08-28: 8 commits2026-08-29: 0 commits2026-08-30: 0 commits2026-08-31: 0 commits2026-09-01: 0 commits2026-09-02: 0 commits2026-09-03: 0 commits2026-09-04: 0 commits2026-09-05: 12 commits2026-09-06: 0 commits2026-09-07: 16 commits2026-09-08: 11 commits2026-09-09: 4 commits2026-09-10: 0 commits2026-09-11: 5 commits2026-09-12: 0 commits2026-09-13: 3 commits2026-09-14: 12 commits2026-09-15: 0 commits2026-09-16: 9 commits2026-09-17: 4 commits2026-09-18: 2 commits2026-09-19: 1 commit2026-09-20: 19 commits2026-09-21: 32 commits2026-09-22: 10 commits2026-09-23: 2 commits2026-09-24: 7 commits2026-09-25: 15 commits2026-09-26: 6 commits2026-09-27: 28 commits2026-09-28: 18 commits2026-09-29: 5 commits2026-09-30: 0 commits2026-10-01: 0 commits2026-10-02: 0 commits2026-10-03: 0 commits
1,645 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    29,811 stars

  • Very active

    1,645 commits in 52 weeks

  • Community-driven

    ~402 contributors

  • Well documented

    High community health score

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

What openai-agents-python does

This library provides the official, streamlined interface for interacting with OpenAI's Agents API, abstracting away the raw HTTP calls into idiomatic Python. It handles the complex lifecycle of agents, threads, and runs, allowing developers to focus on the logic of their applications. The technical implementation emphasizes type safety, asynchronous support, and robust error handling while managing the stateful interactions required by the Assistants framework. What makes this distinctive is its deep integration with OpenAI's ecosystem, providing first-class support for capabilities like Code Interpreter and File Search out of the box. It represents the most reliable path for integrating production-grade OpenAI agents into Python backends.

This SDK is designed for Python developers and software engineers building applications on top of OpenAI's platform. It requires a solid understanding of Python programming and familiarity with API concepts.

  • Stateful Thread Management: automatically handles the complexity of maintaining conversation history across multiple interactions.
  • First-Class Tool Support: provides native interfaces for invoking OpenAI's built-in tools like Code Interpreter and File Search.
  • Asynchronous Execution: supports async/await patterns out of the box for high-throughput, non-blocking agent workflows.
  • Type-Safe Definitions: leverages Python type hints to ensure correct parameter passing and improve developer tooling.
  • Streaming Responses: enables real-time token streaming to build highly responsive user interfaces.

Where teams use it

Enterprise Chatbots

Engineering teams build customer support bots that can securely access company documents using the File Search capability.

Automated Data Analysis

Data scientists deploy agents that leverage the Code Interpreter to dynamically generate charts and analyze CSVs based on natural language.

Backend Agent Orchestration

Backend developers integrate the SDK into FastAPI or Django applications to manage long-running agent tasks asynchronously.

Custom Tool Execution

Product teams define complex function calling schemas so agents can directly interact with internal databases and APIs.

Getting started: pip install openai-agents && python -c 'import agents'

README

main branch

OpenAI Agents SDK PyPI

The OpenAI Agents SDK is a lightweight yet powerful framework for building multi-agent workflows. It is provider-agnostic, supporting the OpenAI Responses and Chat Completions APIs, as well as 100+ other LLMs.

Image of the Agents Tracing UI

Note

Looking for the JavaScript/TypeScript version? Check out Agents SDK JS/TS.

Core concepts:

  1. Agents: LLMs configured with instructions, tools, guardrails, and handoffs
  2. Sandbox agents: Agents preconfigured to work with a container to perform work over long time horizons.
  3. Realtime agents: Build powerful voice agents with gpt-realtime-2.1 and full agent features
  4. Voice agents: Build voice pipelines that combine speech-to-text, an agent workflow, and text-to-speech
  5. Agents as tools / Handoffs: Delegating to other agents for specific tasks
  6. Tools: Various Tools let agents take actions (functions, MCP, hosted tools)
  7. Guardrails: Configurable safety checks for input and output validation
  8. Human in the loop: Built-in mechanisms for involving humans across agent runs
  9. Sessions: Automatic conversation history management across agent runs
  10. Tracing: Built-in tracking of agent runs, allowing you to view, debug and optimize your workflows

Explore the examples directory to see the SDK in action, and read our documentation for more details.

Get started

To get started, set up your Python environment (Python 3.10 or newer required), and then install OpenAI Agents SDK package.

venv

python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
pip install openai-agents

For voice support, install with the optional voice group: pip install 'openai-agents[voice]'. For Redis session support, install with the optional redis group: pip install 'openai-agents[redis]'.

uv

If you're familiar with uv, installing the package would be even easier:

uv init
uv add openai-agents

For voice support, install with the optional voice group: uv add 'openai-agents[voice]'. For Redis session support, install with the optional redis group: uv add 'openai-agents[redis]'.

Run your first agents

The SDK supports four primary ways to run agents. Set the OPENAI_API_KEY environment variable before running any of these examples.

Run a text agent

Use a text Agent for workflows that do not need a persistent realtime connection or a sandbox workspace.

from agents import Agent, Runner

agent = Agent(name="Assistant", instructions="You are a helpful assistant")

result = Runner.run_sync(agent, "Write a haiku about recursion in programming.")
print(result.final_output)

# Code within the code,
# Functions calling themselves,
# Infinite loop's dance.

(For Jupyter notebook users, see hello_world_jupyter.ipynb)

Run a sandbox agent

Use a SandboxAgent when the agent needs to inspect files, run commands, apply patches, or preserve workspace state across longer tasks.

This example uses UnixLocalSandboxClient, which is supported on macOS and Linux. On Windows, use DockerSandboxClient with the openai-agents[docker] extra or a hosted sandbox client instead; see Sandbox clients for setup details.

from agents import Runner
from agents.run import RunConfig
from agents.sandbox import Manifest, SandboxAgent, SandboxRunConfig
from agents.sandbox.entries import GitRepo
from agents.sandbox.sandboxes import UnixLocalSandboxClient

agent = SandboxAgent(
    name="Workspace Assistant",
    instructions="Inspect the sandbox workspace before answering.",
    default_manifest=Manifest(entries={"repo": GitRepo(repo="openai/openai-agents-python", ref="main")}),
)

result = Runner.run_sync(
    agent,
    "Inspect the repo README and summarize what this project does.",
    run_config=RunConfig(sandbox=SandboxRunConfig(client=UnixLocalSandboxClient())),
)
print(result.final_output)

Run a realtime agent

Use a RealtimeAgent for low-latency, server-side voice and multimodal experiences over WebSocket.

import asyncio
from agents.realtime import RealtimeAgent, RealtimeRunner

async def main() -> None:
    agent = RealtimeAgent(name="Assistant", instructions="You are a helpful voice assistant. Keep responses short.")
    runner = RealtimeRunner(starting_agent=agent)
    session = await runner.run()

    async with session:
        await session.send_message("Say hello in one short sentence.")
        async for event in session:
            if event.type == "audio":
                # Forward or play event.audio.data.
                pass
            elif event.type == "history_added":
                print(event.item)
            elif event.type == "agent_end":
                break

if __name__ == "__main__":
    asyncio.run(main())

Run a voice agent

Use a VoicePipeline to turn audio into text, run an agent workflow, and stream generated speech.

import asyncio

import numpy as np

from agents import Agent
from agents.voice import AudioInput, SingleAgentVoiceWorkflow, VoicePipeline


async def main() -> None:
    agent = Agent(name="Assistant", instructions="You are a helpful voice assistant.")
    pipeline = VoicePipeline(workflow=SingleAgentVoiceWorkflow(agent))
    audio_input = AudioInput(buffer=np.zeros(24000 * 3, dtype=np.int16))

    result = await pipeline.run(audio_input)
    async for event in result.stream():
        if event.type == "voice_stream_event_audio":
            # Forward or play event.data.
            pass


if __name__ == "__main__":
    asyncio.run(main())

Explore the examples directory to see the SDK in action, and read our documentation for more details.

Contributing

Please share bug reports and feature requests through GitHub issues. Pull requests are limited to repository collaborators; we do not accept pull requests from non-collaborators. See CONTRIBUTING.md for the contribution policy and development guide. For security vulnerabilities, follow SECURITY.md.

Acknowledgements

We'd like to acknowledge the excellent work of the open-source community, especially:

This library has these optional dependencies:

We also rely on the following tools to manage the project:

We're committed to continuing to build the Agents SDK as an open source framework so others in the community can expand on our approach.

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

121 total
  1. v0.22.3v0.22.3Sep 17, 2026

    ## What's Changed * fix(core): align conditional approvals with validated tool arguments by @seratch in https://github.com/openai/openai-agents-python/pull/5066 * fix(core): deliver tool-not-found output on server-managed resume by @hyeonsang010716 in https://github.com/openai/openai-agents-python/pull/4947 * fix(sandbox): keep command paths POSIX on a Windows host by @hyeonsang010716 in https://github.com/openai/openai-agents-python/pull/4958 * fix(sessions): handle concurrent async SQLite startup by @00200200 in https://github.com/openai/openai-agents-python/pull/4987 * fix(sessions): do not forward session limit as Conversations page size by @tiagovilasboas in https://github.com/openai/openai-agents-python/pull/4961 * fix(tracing): do not cache a missing OPENAI_API_KEY by @hyeonsang010716 in https://github.com/openai/openai-agents-python/pull/5017 * fix(extensions): include shell and apply_patch calls in AdvancedSQLiteSession's tool usage by @rioyu123 in https://github.com/openai/openai-agents-python/pull/4982 * fix(extensions): reap subprocesses on early stream close by @Hughhhhcoder in https://github.com/openai/openai-agents-python/pull/4804 * fix(extensions): prese

  2. v0.22.2v0.22.2Sep 9, 2026

    ## What's Changed * feat: support current image generation tool options by @seratch in https://github.com/openai/openai-agents-python/pull/4932 * fix(sandbox): prevent UnixLocal file API symlink races by @seratch in https://github.com/openai/openai-agents-python/pull/4931 * fix(sessions): reset compaction response chain after pop by @rksharma-owg in https://github.com/openai/openai-agents-python/pull/4934 ### Documentation & Other Changes * docs: document v0.22.1 behavior updates by @seratch in https://github.com/openai/openai-agents-python/pull/4577 * release: 0.22.2 by @seratch in https://github.com/openai/openai-agents-python/pull/4935 **Full Changelog**: https://github.com/openai/openai-agents-python/compare/v0.22.1...v0.22.2

  3. v0.22.1v0.22.1Sep 8, 2026

    ## What's Changed * feat(core): support image results in web search tools by @seratch in https://github.com/openai/openai-agents-python/pull/4898 * feat(core): customize output guardrail blocked messages by @seratch in https://github.com/openai/openai-agents-python/pull/4594 * feat(mcp): add server-wide guardrails to MCP tools by @seratch in https://github.com/openai/openai-agents-python/pull/4632 * feat(sandbox): add configurable Unix-local environment isolation by @seratch in https://github.com/openai/openai-agents-python/pull/4640 * feat(sandbox): allow labels on Docker sandbox containers by @seanxuu in https://github.com/openai/openai-agents-python/pull/4564 * feat(voice): expose streamed transcription options by @seratch in https://github.com/openai/openai-agents-python/pull/4645 * fix(core): detach aggregated request usage entries by @green3sf in https://github.com/openai/openai-agents-python/pull/4519 * fix(core): fail closed on empty tool arguments by @hsusul in https://github.com/openai/openai-agents-python/pull/4545 * fix(core): strip created_by when replaying RunItems as input by @hsusul in https://github.com/openai/openai-agents-python/pull/4568 * fix(core):

  4. v0.22.0v0.22.0Aug 19, 2026

    ## Key Changes Version 0.22.0 is a minor release because it adds substantial runtime hardening and tightens an existing provider configuration contract. Applications that combine an explicit `openai_client` with `organization` or `project` must move those values to the `AsyncOpenAI` client. ### Highlights: - Redacts terminal function-tool output rejected by agent output guardrails from replayable and persisted SDK state. - Raises `ModelBehaviorError` for non-streaming Responses with terminal status `failed` or `incomplete`. - Rejects conflicting provider options when `OpenAIProvider` receives an explicit client. - Isolates usage accounting between independent `RunState` checkpoints while preserving nested-agent aggregation. - Expands agents registered through `handoff(agent)` in generated graphs. - Clarifies the existing shallow-copy behavior of `Agent.clone()` and `RealtimeAgent.clone()`. ## What's Changed * fix(core): redact blocked tool outputs from replay state by @seratch in https://github.com/openai/openai-agents-python/pull/4507 * fix(core): reject ignored explicit-client options for OpenAIProvider by @sylvesterkaczmarek in https://github.com

  5. v0.21.1v0.21.1Aug 16, 2026

    ## What's Changed * feat(core): add model call timeouts by @seratch in https://github.com/openai/openai-agents-python/pull/4428 * feat(sandbox): add run-scoped sandbox working directories by @seratch in https://github.com/openai/openai-agents-python/pull/4427 * feat(sandbox): allow Docker sandboxes to disable networking by @koadegno in https://github.com/openai/openai-agents-python/pull/4452 * feat(sandbox): add Modal sandbox resource options by @Filimoa in https://github.com/openai/openai-agents-python/pull/4455 * fix(core): honor exact call approval decisions by @seratch in https://github.com/openai/openai-agents-python/pull/4447 * fix(core): count Responses requests without usage by @seratch in https://github.com/openai/openai-agents-python/pull/4453 * fix(core): close all MultiProvider children after failures by @fszcd in https://github.com/openai/openai-agents-python/pull/4438 * fix(core): reject partially matched stacked anchors by @Coiggahou2002 in https://github.com/openai/openai-agents-python/pull/4431 * fix(chat-completions): Chat Completions reasoning replay by @seratch in https://github.com/openai/openai-agents-python/pull/4432 * fix(realtime): truncate audi

Code frequency

additions and deletions
+117K-117KWeek of 2025-09-28: +4,700 linesWeek of 2025-09-28: -3,605 linesWeek of 2025-10-05: +3,142 linesWeek of 2025-10-05: -2,593 linesWeek of 2025-10-12: +18,745 linesWeek of 2025-10-12: -8,589 linesWeek of 2025-10-19: +2,969 linesWeek of 2025-10-19: -2,314 linesWeek of 2025-10-26: +1,227 linesWeek of 2025-10-26: -169 linesWeek of 2025-11-02: +6,978 linesWeek of 2025-11-02: -3,951 linesWeek of 2025-11-09: +4,336 linesWeek of 2025-11-09: -2,159 linesWeek of 2025-11-16: +7,128 linesWeek of 2025-11-16: -4,467 linesWeek of 2025-11-23: +2 linesWeek of 2025-11-23: -2 linesWeek of 2025-11-30: +4,693 linesWeek of 2025-11-30: -4,227 linesWeek of 2025-12-07: +328 linesWeek of 2025-12-07: -24 linesWeek of 2025-12-14: +7,764 linesWeek of 2025-12-14: -6,338 linesWeek of 2025-12-21: +2,360 linesWeek of 2025-12-21: -2,112 linesWeek of 2025-12-28: +0 linesWeek of 2025-12-28: -0 linesWeek of 2026-01-04: +7,492 linesWeek of 2026-01-04: -2,703 linesWeek of 2026-01-11: +15,521 linesWeek of 2026-01-11: -7,250 linesWeek of 2026-01-18: +5,801 linesWeek of 2026-01-18: -1,457 linesWeek of 2026-01-25: +29,280 linesWeek of 2026-01-25: -5,265 linesWeek of 2026-02-01: +7,848 linesWeek of 2026-02-01: -2,290 linesWeek of 2026-02-08: +7,411 linesWeek of 2026-02-08: -3,167 linesWeek of 2026-02-15: +3,254 linesWeek of 2026-02-15: -763 linesWeek of 2026-02-22: +10,954 linesWeek of 2026-02-22: -3,440 linesWeek of 2026-03-01: +25,682 linesWeek of 2026-03-01: -11,325 linesWeek of 2026-03-08: +12,415 linesWeek of 2026-03-08: -3,227 linesWeek of 2026-03-15: +6,557 linesWeek of 2026-03-15: -1,664 linesWeek of 2026-03-22: +6,341 linesWeek of 2026-03-22: -1,404 linesWeek of 2026-03-29: +1,524 linesWeek of 2026-03-29: -684 linesWeek of 2026-04-05: +922 linesWeek of 2026-04-05: -486 linesWeek of 2026-04-12: +108,457 linesWeek of 2026-04-12: -7,490 linesWeek of 2026-04-19: +8,593 linesWeek of 2026-04-19: -5,069 linesWeek of 2026-04-26: +34,428 linesWeek of 2026-04-26: -32,518 linesWeek of 2026-05-03: +12,719 linesWeek of 2026-05-03: -4,154 linesWeek of 2026-05-10: +10,439 linesWeek of 2026-05-10: -7,513 linesWeek of 2026-05-17: +1,351 linesWeek of 2026-05-17: -208 linesWeek of 2026-05-24: +381 linesWeek of 2026-05-24: -73 linesWeek of 2026-05-31: +2,093 linesWeek of 2026-05-31: -335 linesWeek of 2026-06-07: +1,527 linesWeek of 2026-06-07: -1,515 linesWeek of 2026-06-14: +2,317 linesWeek of 2026-06-14: -937 linesWeek of 2026-06-21: +5,380 linesWeek of 2026-06-21: -393 linesWeek of 2026-06-28: +4,646 linesWeek of 2026-06-28: -3,576 linesWeek of 2026-07-05: +11,820 linesWeek of 2026-07-05: -4,653 linesWeek of 2026-07-12: +13,047 linesWeek of 2026-07-12: -1,694 linesWeek of 2026-07-19: +17,771 linesWeek of 2026-07-19: -1,026 linesWeek of 2026-07-26: +15,540 linesWeek of 2026-07-26: -6,161 linesWeek of 2026-08-02: +54,468 linesWeek of 2026-08-02: -8,000 linesWeek of 2026-08-09: +117,036 linesWeek of 2026-08-09: -16,898 linesWeek of 2026-08-16: +24,885 linesWeek of 2026-08-16: -6,463 linesWeek of 2026-08-23: +7,853 linesWeek of 2026-08-23: -1,833 linesWeek of 2026-08-30: +9,139 linesWeek of 2026-08-30: -8,573 linesWeek of 2026-09-06: +14,081 linesWeek of 2026-09-06: -4,453 linesWeek of 2026-09-13: +3,889 linesWeek of 2026-09-13: -1,272 linesWeek of 2026-09-20: +14,245 linesWeek of 2026-09-20: -996 linesSep 28, 2025Sep 20, 2026
+701.5K lines added, -211.5K removed over the last year.

Commits per week

last 52 weeks
1430Week of 2025-10-05: 7 commitsWeek of 2025-10-12: 20 commitsWeek of 2025-10-19: 25 commitsWeek of 2025-10-26: 7 commitsWeek of 2025-11-02: 10 commitsWeek of 2025-11-09: 4 commitsWeek of 2025-11-16: 16 commitsWeek of 2025-11-23: 1 commitsWeek of 2025-11-30: 12 commitsWeek of 2025-12-07: 6 commitsWeek of 2025-12-14: 17 commitsWeek of 2025-12-21: 6 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 21 commitsWeek of 2026-01-11: 36 commitsWeek of 2026-01-18: 41 commitsWeek of 2026-01-25: 13 commitsWeek of 2026-02-01: 38 commitsWeek of 2026-02-08: 42 commitsWeek of 2026-02-15: 15 commitsWeek of 2026-02-22: 22 commitsWeek of 2026-03-01: 55 commitsWeek of 2026-03-08: 28 commitsWeek of 2026-03-15: 40 commitsWeek of 2026-03-22: 32 commitsWeek of 2026-03-29: 12 commitsWeek of 2026-04-05: 11 commitsWeek of 2026-04-12: 29 commitsWeek of 2026-04-19: 34 commitsWeek of 2026-04-26: 32 commitsWeek of 2026-05-03: 105 commitsWeek of 2026-05-10: 50 commitsWeek of 2026-05-17: 14 commitsWeek of 2026-05-24: 7 commitsWeek of 2026-05-31: 8 commitsWeek of 2026-06-07: 8 commitsWeek of 2026-06-14: 9 commitsWeek of 2026-06-21: 27 commitsWeek of 2026-06-28: 19 commitsWeek of 2026-07-05: 55 commitsWeek of 2026-07-12: 28 commitsWeek of 2026-07-19: 43 commitsWeek of 2026-07-26: 75 commitsWeek of 2026-08-02: 143 commitsWeek of 2026-08-09: 91 commitsWeek of 2026-08-16: 71 commitsWeek of 2026-08-23: 39 commitsWeek of 2026-08-30: 12 commitsWeek of 2026-09-06: 36 commitsWeek of 2026-09-13: 31 commitsWeek of 2026-09-20: 91 commitsWeek of 2026-09-27: 51 commitsOct 5, 2025Sep 27, 2026
1.6K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 3 commitsSun 1:00 — 1 commitsSun 2:00 — 0 commitsSun 3:00 — 1 commitsSun 4:00 — 2 commitsSun 5:00 — 4 commitsSun 6:00 — 4 commitsSun 7:00 — 7 commitsSun 8:00 — 15 commitsSun 9:00 — 7 commitsSun 10:00 — 11 commitsSun 11:00 — 18 commitsSun 12:00 — 14 commitsSun 13:00 — 9 commitsSun 14:00 — 12 commitsSun 15:00 — 6 commitsSun 16:00 — 15 commitsSun 17:00 — 15 commitsSun 18:00 — 7 commitsSun 19:00 — 10 commitsSun 20:00 — 9 commitsSun 21:00 — 5 commitsSun 22:00 — 10 commitsSun 23:00 — 2 commitsMon 0:00 — 5 commitsMon 1:00 — 3 commitsMon 2:00 — 8 commitsMon 3:00 — 1 commitsMon 4:00 — 2 commitsMon 5:00 — 9 commitsMon 6:00 — 16 commitsMon 7:00 — 12 commitsMon 8:00 — 28 commitsMon 9:00 — 19 commitsMon 10:00 — 24 commitsMon 11:00 — 18 commitsMon 12:00 — 14 commitsMon 13:00 — 23 commitsMon 14:00 — 22 commitsMon 15:00 — 31 commitsMon 16:00 — 15 commitsMon 17:00 — 17 commitsMon 18:00 — 8 commitsMon 19:00 — 12 commitsMon 20:00 — 6 commitsMon 21:00 — 12 commitsMon 22:00 — 11 commitsMon 23:00 — 20 commitsTue 0:00 — 9 commitsTue 1:00 — 6 commitsTue 2:00 — 7 commitsTue 3:00 — 4 commitsTue 4:00 — 3 commitsTue 5:00 — 2 commitsTue 6:00 — 21 commitsTue 7:00 — 28 commitsTue 8:00 — 26 commitsTue 9:00 — 25 commitsTue 10:00 — 26 commitsTue 11:00 — 41 commitsTue 12:00 — 27 commitsTue 13:00 — 29 commitsTue 14:00 — 25 commitsTue 15:00 — 26 commitsTue 16:00 — 21 commitsTue 17:00 — 20 commitsTue 18:00 — 24 commitsTue 19:00 — 17 commitsTue 20:00 — 11 commitsTue 21:00 — 12 commitsTue 22:00 — 15 commitsTue 23:00 — 14 commitsWed 0:00 — 12 commitsWed 1:00 — 10 commitsWed 2:00 — 4 commitsWed 3:00 — 6 commitsWed 4:00 — 7 commitsWed 5:00 — 8 commitsWed 6:00 — 16 commitsWed 7:00 — 16 commitsWed 8:00 — 15 commitsWed 9:00 — 18 commitsWed 10:00 — 32 commitsWed 11:00 — 29 commitsWed 12:00 — 15 commitsWed 13:00 — 18 commitsWed 14:00 — 17 commitsWed 15:00 — 24 commitsWed 16:00 — 25 commitsWed 17:00 — 18 commitsWed 18:00 — 14 commitsWed 19:00 — 7 commitsWed 20:00 — 13 commitsWed 21:00 — 15 commitsWed 22:00 — 19 commitsWed 23:00 — 10 commitsThu 0:00 — 10 commitsThu 1:00 — 7 commitsThu 2:00 — 10 commitsThu 3:00 — 11 commitsThu 4:00 — 4 commitsThu 5:00 — 8 commitsThu 6:00 — 9 commitsThu 7:00 — 15 commitsThu 8:00 — 14 commitsThu 9:00 — 14 commitsThu 10:00 — 15 commitsThu 11:00 — 15 commitsThu 12:00 — 23 commitsThu 13:00 — 27 commitsThu 14:00 — 24 commitsThu 15:00 — 21 commitsThu 16:00 — 14 commitsThu 17:00 — 13 commitsThu 18:00 — 22 commitsThu 19:00 — 12 commitsThu 20:00 — 14 commitsThu 21:00 — 21 commitsThu 22:00 — 5 commitsThu 23:00 — 5 commitsFri 0:00 — 10 commitsFri 1:00 — 9 commitsFri 2:00 — 5 commitsFri 3:00 — 6 commitsFri 4:00 — 9 commitsFri 5:00 — 4 commitsFri 6:00 — 12 commitsFri 7:00 — 10 commitsFri 8:00 — 26 commitsFri 9:00 — 29 commitsFri 10:00 — 33 commitsFri 11:00 — 11 commitsFri 12:00 — 11 commitsFri 13:00 — 14 commitsFri 14:00 — 25 commitsFri 15:00 — 37 commitsFri 16:00 — 25 commitsFri 17:00 — 22 commitsFri 18:00 — 17 commitsFri 19:00 — 15 commitsFri 20:00 — 19 commitsFri 21:00 — 14 commitsFri 22:00 — 13 commitsFri 23:00 — 10 commitsSat 0:00 — 14 commitsSat 1:00 — 11 commitsSat 2:00 — 6 commitsSat 3:00 — 6 commitsSat 4:00 — 2 commitsSat 5:00 — 7 commitsSat 6:00 — 9 commitsSat 7:00 — 25 commitsSat 8:00 — 31 commitsSat 9:00 — 21 commitsSat 10:00 — 24 commitsSat 11:00 — 15 commitsSat 12:00 — 16 commitsSat 13:00 — 11 commitsSat 14:00 — 8 commitsSat 15:00 — 8 commitsSat 16:00 — 6 commitsSat 17:00 — 12 commitsSat 18:00 — 11 commitsSat 19:00 — 3 commitsSat 20:00 — 3 commitsSat 21:00 — 2 commitsSat 22:00 — 5 commitsSat 23:00 — 4 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Apr 20, 2026daily#15+131
Apr 19, 2026daily#15+195
  • public-apis/public-apis

    A collective list of free APIs

    486.1K stars · Python

  • openclaw/openclaw

    The AI that really does things. Any OS. Any Platform. The lobster way. 🦞

    391.3K stars · TypeScript

  • donnemartin/system-design-primer

    Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.

    373.2K stars · Python

  • obra/superpowers

    An agentic skills framework & software development methodology that works.

    295.2K stars · Shell

  • practical-tutorials/project-based-learning

    Curated list of project-based tutorials

    285.8K stars · Python

  • affaan-m/ECC

    The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

    272.8K stars · JavaScript