Files
awesome-copilot/cookbook/copilot-sdk/python/recipe
Anthony Shaw c65e8ab0b5 Fix Python cookbook recipes to use correct async SDK API
All 5 Python recipes and their markdown docs used a synchronous,
kwargs-based API that doesn't match the real github-copilot-sdk:

- client.start() -> await client.start() (all methods are async)
- create_session(model=...) -> create_session(SessionConfig(model=...))
- session.send(prompt=...) -> session.send(MessageOptions(prompt=...))
- session.wait_for_idle() -> session.send_and_wait() (wait_for_idle doesn't exist)
- event['type']/event['data']['content'] -> event.type/event.data.content
- All code wrapped in async def main() + asyncio.run(main())

Verified all imports resolve against github-copilot-sdk.
2026-02-11 06:19:33 -08:00
..

Runnable Recipe Examples

This folder contains standalone, executable Python examples for each cookbook recipe. Each file can be run directly as a Python script.

Prerequisites

  • Python 3.8 or later
  • Install dependencies (this installs the SDK from PyPI):
pip install -r requirements.txt

Running Examples

Each .py file is a complete, runnable program with executable permissions:

python <filename>.py
# or on Unix-like systems:
./<filename>.py

Available Recipes

Recipe Command Description
Error Handling python error_handling.py Demonstrates error handling patterns
Multiple Sessions python multiple_sessions.py Manages multiple independent conversations
Managing Local Files python managing_local_files.py Organizes files using AI grouping
PR Visualization python pr_visualization.py Generates PR age charts
Persisting Sessions python persisting_sessions.py Save and resume sessions across restarts

Examples with Arguments

PR Visualization with specific repo:

python pr_visualization.py --repo github/copilot-sdk

Managing Local Files (edit the file to change target folder):

# Edit the target_folder variable in managing_local_files.py first
python managing_local_files.py

Local SDK Development

The requirements.txt installs the Copilot SDK package from PyPI. This means:

  • You get the latest stable release of the SDK
  • No need to build from source
  • Perfect for using the SDK in your projects

If you want to use a local development version, edit requirements.txt to use -e ../.. for editable mode development.

Python Best Practices

These examples follow Python conventions:

  • PEP 8 naming (snake_case for functions and variables)
  • Shebang line for direct execution
  • Proper exception handling
  • Type hints where appropriate
  • Standard library usage

For isolated development:

# Create virtual environment
python -m venv venv

# Activate it
# Windows:
venv\Scripts\activate
# Unix/macOS:
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

Learning Resources