Claude Code plugin: ruff + mypy + pytest + uv hooks and Python skills.
Project description
python-plugin
Claude Code plugin that wires the modern Python toolchain into every agent session: ruff for lint + format, mypy for strict static types, uv for envs and lockfile, pytest for related-test execution, and a missing-test warning for new modules.
Ships:
- Hooks (
PostToolUseafterEdit | Write | MultiEdit):posttooluse-ruff—ruff check+ruff format --checkon edited.py.posttooluse-mypy— type-check edited.pyagainst the project's mypy config.posttooluse-pytest— run pytest tests related to edited.py(companiontest_<name>.pydiscovery; falls back to--lf).posttouse-test-required— warn on new non-test.pywithout a siblingtest_<name>.py.posttooluse-uv-lock— re-lockpyproject.tomlchanges viauv lock.
- Skills:
python— unified Python coding standard (load on any.pyinteraction).python-ruff,python-mypy,python-uv,python-pytest,python-pypi— per-tool deep dives for fine-grained enablement.
Install
Add to your Claude Code marketplace plugins, or symlink the repo into
~/.claude/plugins/.
Per-shell toggles
Each hook honors a PYTHON_PLUGIN_<NAME>=0 env var to disable it:
PYTHON_PLUGIN_RUFFPYTHON_PLUGIN_MYPYPYTHON_PLUGIN_PYTESTPYTHON_PLUGIN_REQUIRE_TESTSPYTHON_PLUGIN_UV_LOCK
Requirements
python3on PATH (3.11+).- One of
ruff,mypy,pytest,uvavailable — either project-local in.venv/bin/, globally installed, or invocable viauvx. Hooks skip silently when their tool isn't reachable; CI is the source of truth.
License
Apache-2.0.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file claude_python_plugin-0.3.1.tar.gz.
File metadata
- Download URL: claude_python_plugin-0.3.1.tar.gz
- Upload date:
- Size: 24.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b919444eb46bb6a6d0499cc26e0e395ee35a59e426ccd58576221c512ed401dc
|
|
| MD5 |
0adc82e5cae1370a4925c186860c1e70
|
|
| BLAKE2b-256 |
7ffd6beedadd10db2d4c38458a44cc83749392749be27f3aa86b25c114e32868
|
File details
Details for the file claude_python_plugin-0.3.1-py3-none-any.whl.
File metadata
- Download URL: claude_python_plugin-0.3.1-py3-none-any.whl
- Upload date:
- Size: 26.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d995c4edf3fa66634e6332d4b027a39d90154067b53dd4dd9369d00711e9be1e
|
|
| MD5 |
d8fab98a76c51e6de30d9ada7fd99843
|
|
| BLAKE2b-256 |
e883817e685c53229b41dbe1610074bc98eb148e36b8fb77c580456b52a42019
|