Guide · Agent skill
How to use the Modern Python Toolchain agent skill
Updated · written with AI from the project's own documentation and checked against our catalogue data
The modern-python-toolchain skill is a set of instructions that teaches an AI coding agent how to set up and maintain Python projects with three tools: uv for Python and packages, ruff for linting and formatting, and pyright for type checking. This guide explains what the skill does, how to install it, how to ask for it, and where it fits. After reading, you should be able to add the skill to your agent and get a new Python project that follows a consistent, current setup.
Quick start
- 1Install uv. Run the installer for your system, or use Homebrew on macOS. Restart your shell or run the source command the installer prints.
- 2Download and unzip the skill. Download the skill ZIP from this page and unzip it so the modern-python-toolchain folder contains SKILL.md.
- 3Place the skill folder. Put it in ~/.claude/skills/ for personal use, or in a project's .claude/skills/ folder. In the Claude apps, you can upload it under Settings → Capabilities → Skills instead.
- 4Ask for a Python project in plain language. Request something like set up a new Python project with ruff and pyright. The agent should load the skill when the request matches its description.
- 5Review the commands the agent runs. Check that it uses uv add, uv run and uv sync rather than pip or manual virtual environments, and that ruff and pyright are added as dev dependencies.
- 6Verify the changes. Ask the agent to run ruff check, ruff format and pyright on the files it changed, then confirm the results.
What is an agent skill?
An agent skill is a folder containing a SKILL.md file. The file holds instructions and rules that an AI agent reads when a task matches the skill's description. You do not run the skill yourself. The agent loads it when relevant and follows its guidance while working on your files.
This skill is named modern-python-toolchain. Its description tells the agent when to use it, such as when starting a new Python project, configuring the environment, or setting up linting and formatting.
What the skill makes the agent do
Once installed, the agent uses uv to install Python and manage packages and environments, ruff to lint and format code, and pyright to check types. It follows the skill's rules when it creates or changes a Python project, so the result uses the same conventions each time.
- Use uv add instead of pip to add packages, and uv remove to delete them.
- Run scripts with uv run script.py rather than python script.py.
- Avoid manual virtual environment steps such as python -m venv or source .venv/bin/activate, since uv manages the environment.
- Run ruff check --fix and ruff format on changed files after editing Python code.
- Run pyright on changed files, or on the full src tree for broad changes.
- Write modern type annotations, such as list[str] and str | None instead of List and Optional.
- Use pydantic v2 class-based configuration and typer for CLI entry points.
Install uv first
The skill requires uv. Install it with one of the commands below, depending on your system. The skill's source links to astral.sh for these installers and to docs.astral.sh for more detail.
After installation, restart your shell or run the source command the installer prints. The source gives the example source $HOME/.local/bin/env.
macOS / Linux: curl -LsSf https://astral.sh/uv/install.sh | sh
Windows (PowerShell): powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Homebrew (macOS): brew install uvInstall the skill in Claude or a project
Download the ZIP for this skill from this page and unzip it. You have two places to put it, depending on how you want to use it.
For a personal install that works across your projects, unzip the skill folder into ~/.claude/skills/. For a single project, unzip it into that project's .claude/skills/ folder.
In the Claude apps, you can instead upload the skill under Settings → Capabilities → Skills.
- Personal: ~/.claude/skills/
- Single project: .claude/skills/ inside the project folder
- Claude apps: Settings → Capabilities → Skills, then upload
How to trigger the skill with natural requests
You do not need special syntax. Describe what you want in plain language. The skill's description lists trigger phrases, so requests that match them are likely to load it. These include set up Python, new Python project, configure uv, install uv, ruff, pyright, Python linting, and Python formatting.
The skill also applies when a task needs Python and the project has no pyproject.toml yet.
- Set up a new Python project for a command-line tool that fetches web pages.
- Configure uv for this repo and add ruff for linting and formatting.
- Add pyright to this project and check the src folder.
- Install uv and create a Python project with Python 3.12.
Examples of what the agent will do
Suppose you ask the agent to start a small library. Based on the skill, it would create the project with uv, pin a Python minor version in requires-python, add ruff and pyright as dev dependencies, and configure ruff to enable the UP and I rule sets. It would use uv run for commands and check its changes with ruff and pyright.
The commands below show the kind of steps the skill describes. The agent chooses the exact commands for your project.
uv python install 3.12
uv init -p 3.12
uv add --dev ruff "pyright[nodejs]"
uv run ruff check --fix path/to/changed_file.py
uv run pyright src/What the skill needs and what it does on your machine
The skill needs uv. It can also install Python through uv, so you do not need a system Python. ruff and pyright are added as dev dependencies through uv. The skill includes no scripts, so it does not run code on its own. It does use the network, because the uv installer and uv package downloads fetch files from the internet.
Review the skill's SKILL.md before you install it if you want to see every rule. Agents act on what the file says, so a rule you disagree with can change how your project is built.
- Runs scripts: no
- Uses network: yes (installer and package downloads)
- Requires: uv, Python (via uv), ruff and pyright (via uv)
- Files: SKILL.md
Tips for getting good results
Tell the agent up front if your project already uses a different toolchain. The skill assumes uv, ruff and pyright, and it will conflict with pip, poetry or Black setups unless you say otherwise. The skill's own guidance says not to enable rules that conflict with ruff format, and to leave layout to the formatter.
Ask the agent to check only changed files while you iterate, then run a full check before you finish. The skill recommends this for pyright.
- Name the Python version you want. The skill recommends 3.12 as a broadly supported default.
- Keep the project's pyproject.toml as the single source of configuration.
- For applications with an entry point, the skill shows a [project.scripts] example.
What people use it for
- Starting a new command-line tool with a consistent uv, ruff and pyright setup.
- Adding ruff linting and formatting to an existing uv project.
- Adding pyright type checking to a project that already uses uv and lists it as a dev dependency.
- Creating a library or packaged app with uv init --lib or uv init --package, using uv_build as the build backend.
- Teaching a team or a class the current uv, ruff and pyright conventions through agent-generated code.
Frequently asked questions
Is the modern-python-toolchain skill free?
The skill is released under the MIT licence. The tools it uses, uv, ruff and pyright, are separate projects, and this guide does not state their prices or licences beyond what the skill's source covers.
What do I need before I install this skill?
You need uv installed, which you can do with the curl, PowerShell or Homebrew commands in the guide. Python can be installed through uv, and ruff and pyright are added through uv as dev dependencies.
Where do I put the skill folder?
Unzip it into ~/.claude/skills/ for personal use or into a project's .claude/skills/ folder for one project. In the Claude apps, you can upload it under Settings → Capabilities → Skills.
Does the skill run scripts on my computer?
No. The skill's listed files include only SKILL.md and it runs no scripts. It does use the network, because installing uv and downloading packages requires internet access.
Can I use this skill if my project uses pip, poetry or Black?
The skill is not designed for that. It tells the agent to use uv add instead of pip and to use ruff rather than Black, so it would conflict with those setups. Pick a different approach or edit the rules before you use it on those projects.
Why won't my agent use the skill?
Check that the folder is in one of the supported locations and that SKILL.md is inside it. Then phrase your request with a trigger term from the description, such as set up Python, ruff, or pyright, or say that the project has no pyproject.toml yet.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
This skill suits developers starting a new Python project, teams already on uv, ruff or pyright who want agents to follow the same rules, and students learning current tooling. It is a poor fit for projects that deliberately keep pip, poetry or Black, or for any non-Python codebase, because its rules would conflict with those setups.
Download the skill