pywrit 🏴☠️
Arrr! The Writ CLI — ask before yer agent writes.
pip install pywrit
writ key --email you@company.com
Writ is an allow/deny gate that sits in front of every write your AI agent makes. Each check writes a tamper-evident receipt to your audit log. No more wondering who called what, or when.
Shiver me timbers, it's that simple.
What it does
writ key— Get a free API key (1,000 receipts/month, no card)writ check— Ask the gate before a write (ALLOW or DENY)writ revoke— Kill switch: revoke a principal's tokens in one clickwrit receipts— See your audit logwrit scan— Find every write in your repo and instrument it
Docs
Full docs at docs.withwrit.com. Quickstart at docs.withwrit.com/quickstart.
Packaging notes (for maintainers)
Installable distribution of the Writ CLI. pip install pywrit gives you the
writ command — no curl + chmod dance.
Layout
pyproject.toml— package metadata,writconsole-script entry pointwrit_cli/__init__.py— versionwrit_cli/cli.py— the CLI itself (stdlib-only: argparse, json, urllib)
Relationship to gate/web/writ
gate/web/writ is the self-contained single-file script served by the Lambda
at /writ (the curl -fsSL ... -o writ download path). It must stay a single
file with no install step.
writ_cli/cli.py is the PyPI package source. The two files are currently
byte-identical by copy. If you change CLI behavior, update both and keep
them in sync — the download path and the pip path must behave the same.
Build & test locally
cd cli
python -m build # needs `pip install build`
pip install -e . # editable install, creates the `writ` command
writ --help
Publish
cd cli
python -m build
twine upload dist/*
Metadata
Release files for pywrit 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pywrit-0.1.1.tar.gz | 11.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pywrit-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.3 kB
Release files / pywrit-0.1.1.tar.gz
| Download URL | pywrit-0.1.1.tar.gz |
|---|---|
| Size | 11.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
66fde423d38cc90679230236cc367696296f8306c48509bb4e595da61309164a
|
|
BLAKE2b-256 checksum How to use checksums |
ecc9da025d109ea5ce7c5ae4d95c1c584e10eb63e8bf9099bf1240f775790fd5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / pywrit-0.1.1-py3-none-any.whl
| Download URL | pywrit-0.1.1-py3-none-any.whl |
|---|---|
| Size | 11.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8c62db49ff7f7cf19038e4805eb19b3be98e74e4addc60d9da057317be4219a1
|
|
BLAKE2b-256 checksum How to use checksums |
f644f1cf6f57520acfea992e1fae1c30a10c5cbfa51fd886cc55f08bb4bfe34c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|