Skip to main content

i-insist

Block agent tool calls with checks from your plugins or your own scripts. Works with Codex and Claude Code. When a check blocks an action, the agent sees the reason and stops. Say I insist when you want to override it.

Install

Requires uv, Python 3.12 or newer, and Linux or macOS.

uv tool install 'git+https://github.com/crypdick/i-insist@main'
i-insist install codex
i-insist install claude

Install only the integrations you use. Restart the agent and check hook trust with /hooks.

Rules

Plugins supply their own checks. Rules live in ~/.i-insist/*.toml for global use or .i-insist/*.toml within a project. Global and applicable local rules run together.

Installation includes a rule requiring human approval to change .i-insist files. Other checks come from your plugins or scripts.

To write your own, start with the runnable example and rule and checker reference. Plugin installers replace their generated registrations, so don't edit those files to customize a plugin.

Human overrides

Include I insist anywhere in your message, in any capitalization:

I insist, update both protected files.

Approval lasts for the current response and resets with your next message or when you start or resume a session. Quoted text and code blocks count too.

Rules marked overridable = false still run. Invalid configuration still blocks approved calls. Approval doesn't override other plugins or the agent's own permissions.

These are cooperative guards, not a sandbox. They depend on the agent calling hooks, and checkers run with your account's privileges.

Configuration protection recognizes literal paths in Python -c commands and standalone quoted Python heredocs. Embedded replacement source text mentioning .i-insist is not itself a configuration path. Literal configuration paths (including f-string fragments) still require approval. Malformed Python, recognized dynamic execution calls, and other shell forms retain conservative checks. This is not arbitrary Python data-flow analysis or a shell sandbox.

Update or uninstall

Update the runner, then repeat the install command for each integration you use if the update changes hook registrations:

uv tool upgrade i-insist

To uninstall, remove each integration you installed before removing the runner:

i-insist uninstall codex
i-insist uninstall claude
uv tool uninstall i-insist

Uninstall leaves provider rules and approval caches in place.

Reference

Metadata

Release files for i-insist 0.4.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for i-insist 0.4.3
File Size Uploaded
i_insist-0.4.3.tar.gz 100.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for i-insist 0.4.3
File Interpreter ABI Platform
i_insist-0.4.3-py3-none-any.whl Python 3 none any Details

Total release size: 116.2 kB

Release files / i_insist-0.4.3.tar.gz

Download URL i_insist-0.4.3.tar.gz
Size 100.3 kB
Tags Source
SHA-256 checksum
How to use checksums
c1db13fc26a347d32cd970d72f677d85c6f12547cb5b8aa031bebf3dd5762f7b
BLAKE2b-256 checksum
How to use checksums
dda82f800b097038702cd299108f34dd62563d354130b16cc885fd2a60b54aaa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / i_insist-0.4.3-py3-none-any.whl

Download URL i_insist-0.4.3-py3-none-any.whl
Size 15.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6cdf8ed341a3e61612ba17c267d2f379abf11dc66a3a464c311700a7832d6488
BLAKE2b-256 checksum
How to use checksums
850f87037718e2d18b8aaf4ae8d20e5693c1137555f780af3d849684b1594bc1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release history Release notifications | RSS feed

0.4.11

2 release files

0.4.10

2 release files

0.4.9

2 release files

0.4.8

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

This release

0.4.3 This release

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page