Codex skills for Python
These skills move Codex onto current Python tooling: uv with a committed lockfile and uv sync --locked in CI, Ruff with a deliberate rule tier, mypy or pyright strict mode ratcheted module by module, and pytest suites that pass under random order and xdist. Framework skills cover Django 5.2 and 6.x, FastAPI, Flask, Pydantic v2 and Polars or pandas pipelines.
Start with these 3
- uv Python Packaging One lockfile from laptop to Docker to PyPI Codex chooses app, package or library layout up front, keeps dev tools in dependency groups instead of runtime deps, and installs with uv sync --locked everywhere so stale lockfiles fail CI. It handles private indexes without dependency confusion, splits Docker layers for fast rebuilds, and treats PyPI publishing as an irreversible step that needs your go-ahead.
- pytest Testing Fixtures scoped right, cases named, suites parallel Codex writes pytest suites that hold up under random order and parallel workers. It scopes fixtures by the state they hold, layers conftest.py files, names parametrized cases so failures read clearly, patches where names are looked up, and turns warnings and marker typos into errors so problems surface early.
- Python Typing Strict type checks without drowning in Any Codex picks up the project's existing checker, enables strict mode globally and loosens only named legacy modules, then works leaf-first until the override list is empty. It writes PEP 695 generics when the Python version allows, uses Protocols and ParamSpec instead of Any, narrows with TypeIs and assert_never, and leaves every remaining ignore with an error code and a reason.
75 more Python skills
-
FastAPI Services
Thin routes, typed dependencies, no blocked loop -
Django Apps
Django apps with real constraints and safe settings -
Python asyncio
Concurrency that cancels cleanly and never blocks -
Modern Python Idioms
Pythonic rewrites your minimum version can run -
Python CLI Tools
Command-line tools that pipe, script and install cleanly -
Python Profiling
cProfile, py-spy or memray: the right one first -
Python Automation Scripts
Scripts that are safe to run twice, and at 3 a.m. -
Polars DataFrames
Lazy, multi-core DataFrames without pandas habits -
Django REST Framework
DRF endpoints scoped, paginated and N+1 free -
Pydantic v2
Validate once at the edge, trust it everywhere -
Django ORM Performance
Measure the queryset, then fix the actual cause -
pandas Wrangling
Joins that never silently duplicate rows -
Jupyter Notebooks
Notebooks that rerun from a clean kernel -
Prefect Flows
Turn a Python script into a reliable scheduled flow -
Pygame Games
Python 2D games that run the same on every PC -
Error Handling Patterns
Typed errors, one boundary, nothing swallowed -
Temporal Workflows
Durable flows that replay cleanly after every deploy -
AWS Lambda
Faster cold starts, no reprocessed batches -
Flaky Test Triage
Name the cause, prove the fix, retire the retry -
MCP Server Builder
Tools an agent picks right the first time -
Test-Driven Development
See it fail for the right reason, then pass -
Dependency Upgrades
One major at a time, changelog read first -
Ruff Setup
One pinned Ruff in place of flake8, Black and isort -
Regex Crafting
Regexes with test tables and no catastrophic backtracking -
htmx Patterns
Server-rendered interactivity without a SPA -
Server-Sent Events
Live HTTP streams that no proxy can buffer -
Flask Apps
From one app.py to a testable Flask factory -
Session Auth
Revocable logins behind a locked-down cookie -
Input Validation
Parse untrusted data once, at the edge -
N+1 Query Fixes
Constant query counts, whatever the page size -
SQLAlchemy 2.0
Typed models, scoped sessions, lazy loads that raise -
Data Cleaning
Every fix logged, nothing deleted silently -
Exploratory Data Analysis
Findings with evidence, not forty histograms -
Streamlit Apps
Fast reruns, deliberate state, tested pages -
Time Series Analysis
Seasonality first, then trends and anomalies -
Data Pipeline Testing
Prove the pipeline before it touches prod data -
OpenAI Agents SDK
Few agents, bounded runs, guardrails that block -
OpenAI Structured Outputs
Typed JSON from the model, every time -
LangChain Apps
LangChain 1.x chains and agents that stay testable -
LangGraph Agents
State graphs that pause, resume and survive crashes -
LlamaIndex RAG
Incremental ingestion and answers that show sources -
Structured Extraction
JSON from messy text, with evidence and per-field scores -
LLM Streaming
Tokens that arrive live and stop when asked -
Gemini API
Gemini integrations on the current SDK and API -
ML Model Deployment
From notebook pickle to a model API you can roll back -
Pulumi IaC
Typed infrastructure code with no surprise replaces -
CSRF Protection
Forged requests die at the middleware -
CORS Configuration
Fix the CORS error without opening the API -
Property-Based Testing
State the rule, let the library hunt the counterexample -
Coverage Analysis
Gate the diff, ratchet the total, read the gaps -
Benchmark Testing
Prove it is faster, with error bars -
Selenium WebDriver
Explicit waits, stable locators, a pinned Grid -
Memory Leak Hunting
Snapshot, repeat, compare, follow the retainer -
Word DOCX Documents
Word files built on styles, not hacks -
PowerPoint PPTX Decks
Template-true slides with charts you can edit -
CSV Processing
Big, messy CSVs cleaned without losing a digit -
Word Tracked Changes
Redlines Word opens without a repair prompt -
Docstrings and Doc Comments
Document the contract, not the signature -
Telegram Bots
Webhooks, keyboards and broadcasts that stay unbanned -
Google Drive API
Upload, export and sync Drive files by ID -
Web Scraping
Scrapers that stay polite and survive layout changes -
Browser Automation
Automate web chores without storing passwords -
File Organization
Rename and dedupe thousands of files, reversibly -
IMAP Email Automation
Process every email exactly once, delete nothing -
Spreadsheet Automation
Turn the Monday copy-paste into one command -
YouTube Data API
Channel automation that fits in 10,000 units -
Raspberry Pi Projects
Pi projects that boot, restart and survive power cuts -
OpenAI Responses API
Typed output items, deliberate state, clean streams -
Dagster Pipelines
Model data products, not task chains -
Matplotlib Charts
Figures that read clearly at printed size -
Feature Engineering
Features that only know the past -
Integration Testing
Test the seams where production actually breaks -
Form Data Extraction
Invoice fields as validated JSON, not guesses -
Gmail API
Inbox bots that reply in-thread and sync by history -
API Polling Workers
Poll APIs without gaps, repeats or 429 storms
General skills with Python guidance
Not built around Python, but they include steps or tools for it. Not part of the install-all command.
-
MicroPython and CircuitPython
Python on a Pico that never needs a reflash -
Zero-Downtime Migrations
Change big tables without a lock-queue outage -
Data Backfills
Touch 80 million rows without anyone noticing -
README Writing
From repo page to first result in five minutes -
OpenTelemetry
One connected trace per request, vendor-neutral -
Merge Conflict Resolution
Keep both intents, not just one side's text -
Dead Code Removal
Delete unused code with evidence, not hope -
Pre-commit Hooks
Hooks that fix staged files in seconds, not minutes -
Codemods
Change 500 files with code you can rerun -
WebSockets Realtime
Sockets that survive proxies, deploys and replicas -
File Uploads
Size-capped, sniffed, scanned before anyone sees it -
Auth Libraries
Pick the right auth stack, then wire it safely
Every Python skill in one command
Installs these 78 into ~/.agents/skills/. Add --project after -- to install into the current repository instead.
The installer is a 104-line POSIX shell script. It fetches the skills you name from codexskills.dev and unpacks each into its own folder in your skills directory. No sudo, no telemetry, and every skill page shows the full SKILL.md first. Read install.sh
curl -fsSL codexskills.dev/install.sh | sh -s -- uv-python-packaging pytest-testing python-typing fastapi-services django-apps python-asyncio python-modern-idioms python-cli-tools python-profiling python-automation-scripts polars-dataframes django-rest-framework pydantic-v2 django-orm-performance pandas-wrangling jupyter-notebooks prefect-flows pygame-games error-handling-patterns temporal-workflows aws-lambda flaky-test-triage mcp-server-builder test-driven-development dependency-upgrades ruff-setup regex-crafting htmx-patterns server-sent-events flask-apps session-auth input-validation n-plus-one-queries sqlalchemy-2 data-cleaning exploratory-data-analysis streamlit-apps time-series-analysis data-pipeline-testing openai-agents-sdk openai-structured-outputs langchain-apps langgraph-agents llamaindex-rag structured-extraction llm-streaming gemini-api ml-model-deployment pulumi-iac csrf-protection cors-configuration property-based-testing coverage-analysis benchmark-testing selenium-webdriver memory-leak-hunting docx-documents pptx-presentations csv-processing word-tracked-changes docstrings telegram-bots google-drive-api web-scraping browser-automation file-organization imap-email-automation spreadsheet-automation youtube-data-api raspberry-pi openai-responses-api dagster-pipelines matplotlib-charts feature-engineering integration-testing form-data-extraction gmail-api api-polling-workers Python FAQ
Is there a Codex skill for migrating a Python project to uv?
uv Python Packaging moves pip, Poetry or pip-tools projects to pyproject.toml and uv.lock, but only when you ask for the migration. It keeps dev tools in dependency groups, installs with uv sync --locked so a stale lockfile fails CI, and in a sandbox with network off asks for approval or falls back to uv sync --offline. Publishing to PyPI is treated as irreversible and waits for your go-ahead.
Does the Django skill handle migrations safely?
Django Apps targets Django 5.2 LTS and 6.x and treats migrations as SQL to review: it runs makemigrations, then sqlmigrate to read the statements before applying them. It sets a custom user model before the first migrate and flags a later switch as a multi-step data migration rather than attempting it casually. For slow querysets, Django ORM Performance is the companion skill.
Can Codex upgrade Pydantic v1 code to v2?
Pydantic v2 runs uvx bump-pydantic for the mechanical rewrite, reviews the diff, then works through a v1-to-v2 mapping table. It flags the change that most often breaks clients: Optional[int] no longer implies a None default, so the field becomes required unless you write = None. Settings move to pydantic-settings with secrets masked.
How do I install all 78 Python skills at once?
Pass every name to the installer in one command: curl -fsSL https://codexskills.dev/install.sh | sh -s -- uv-python-packaging pytest-testing python-typing fastapi-services django-apps python-asyncio python-modern-idioms python-cli-tools python-profiling python-automation-scripts polars-dataframes django-rest-framework pydantic-v2 django-orm-performance pandas-wrangling jupyter-notebooks prefect-flows pygame-games error-handling-patterns temporal-workflows aws-lambda flaky-test-triage mcp-server-builder test-driven-development dependency-upgrades ruff-setup regex-crafting htmx-patterns server-sent-events flask-apps session-auth input-validation n-plus-one-queries sqlalchemy-2 data-cleaning exploratory-data-analysis streamlit-apps time-series-analysis data-pipeline-testing openai-agents-sdk openai-structured-outputs langchain-apps langgraph-agents llamaindex-rag structured-extraction llm-streaming gemini-api ml-model-deployment pulumi-iac csrf-protection cors-configuration property-based-testing coverage-analysis benchmark-testing selenium-webdriver memory-leak-hunting docx-documents pptx-presentations csv-processing word-tracked-changes docstrings telegram-bots google-drive-api web-scraping browser-automation file-organization imap-email-automation spreadsheet-automation youtube-data-api raspberry-pi openai-responses-api dagster-pipelines matplotlib-charts feature-engineering integration-testing form-data-extraction gmail-api api-polling-workers. Add --project right after -- to put them in the current repository's .agents/skills/ so your team gets them too.
Which Python skill should I try first?
uv Python Packaging is the closest fit for most Python work. Mention it with $uv-python-packaging in a prompt to load it on purpose; after that, Codex picks it up on its own whenever a task matches.