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.

Separate shell commands are checked independently: listing .i-insist followed by an unrelated test or file operation does not require approval. Quoted and escaped separators stay within their command, as do redirection operators. Directory changes, variable assignments, shell control flow, substitutions, and other heredocs retain the conservative whole-call check.

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.5

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.5
File Size Uploaded
i_insist-0.4.5.tar.gz 101.9 kB Details

Built distribution (wheel)

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

Total release size: 118.4 kB

Release files / i_insist-0.4.5.tar.gz

Download URL i_insist-0.4.5.tar.gz
Size 101.9 kB
Tags Source
SHA-256 checksum
How to use checksums
26670c753657733265e008a673b0d3a76d6637d5d18ca8e03dcdb2899585482d
BLAKE2b-256 checksum
How to use checksums
fb6668a5fc675d14602f7cf6db98a45ed9394f34c05ab524958b9b51b00fddec
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 19, 2026.

Transparency log

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

Download URL i_insist-0.4.5-py3-none-any.whl
Size 16.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
315855a077c8163bda712f3a8948dc9e3017ed7027c70467083619b7672b160b
BLAKE2b-256 checksum
How to use checksums
3ae2a575387768d7bb7b07e41fcf1b0d8ffcf2dcc22c5afc4763edacfe7144c3
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 19, 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

This release

0.4.5 This release

2 release files

0.4.4

2 release files

0.4.3

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