Skip to main content

polyhook Python SDK — write AI coding agent hooks once, run them everywhere

Project description

polyhook — Python SDK

Write AI coding agent hooks once. Run them everywhere.

polyhook detects which AI coding tool invoked your hook binary, deserializes the event into a normalized struct, and serializes your response back in the format that tool expects. Your hook runs unchanged whether Claude Code, Cursor, Windsurf, Cline, or Amp invoked it.

Install

pip install polyhook

Quick Start

import sys
import re
import polyhook

event = polyhook.read()

if (
    event.tool == "bash"
    and re.search(r"rm\s+-rf\s+/", event.input.get("command", "") if event.input else "")
):
    polyhook.respond(polyhook.block("Refusing to delete from root"))
else:
    polyhook.respond(polyhook.approve())

More examples: examples/

Supported Tools

Tool Status
Claude Code ✅ Supported
Cursor ✅ Supported
Windsurf ✅ Supported
Cline ✅ Supported
Amp ✅ Supported
Continue 🚧 In progress
Aider 🚧 In progress
Copilot 📋 Planned

Documentation

Full docs and API reference: https://github.com/tupe12334/polyhook

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

polyhook-0.1.9.tar.gz (67.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

polyhook-0.1.9-py3-none-any.whl (66.4 kB view details)

Uploaded Python 3

File details

Details for the file polyhook-0.1.9.tar.gz.

File metadata

  • Download URL: polyhook-0.1.9.tar.gz
  • Upload date:
  • Size: 67.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for polyhook-0.1.9.tar.gz
Algorithm Hash digest
SHA256 933e92eea5ad305095422eb7a8d36be20fae3e8f18cfaeab550c467fe8748fac
MD5 8e507c5cdc2d91b9db564694b61ff90f
BLAKE2b-256 303780cab706e64bc30a4feee190dd02ba88f5e3181854dcbbf6e0787c6425b1

See more details on using hashes here.

File details

Details for the file polyhook-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: polyhook-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 66.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for polyhook-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 b6a96c074cb506f88933732bd38ca7813d14f9b0cb5317e09786aba6eb857b31
MD5 88891de96edf1ec6fe783fd9b1924d91
BLAKE2b-256 4f97e7e8e527056710641857d3e83ef26bae00726ce6c0f82c70000d06293e1f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page