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. A literal cd is followed: later commands count as inside .i-insist if any directory reached so far was. Computed cd targets, pushd, popd, variable assignments, shell control flow, groups, substitutions, and other heredocs retain the conservative whole-call check. A path word names .i-insist only as a whole path component, so .i-insist-notes is a different directory. Words containing whitespace, quotes, globs, or $ stay conservative. The denial message includes the matched word and command. Unknown ~user names remain literal during path checks, so shell data such as Lua's ~= operator does not cause a home-directory lookup error.

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

Checks launched from uv-installed executables coordinate with uv tool upgrades. They wait for an active installation, then run against the restored environment. The wait counts toward the checker timeout; an overdue installation still blocks the tool call. See checker execution for scope.

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

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.10
File Size Uploaded
i_insist-0.4.10.tar.gz 105.7 kB Details

Built distribution (wheel)

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

Total release size: 123.5 kB

Release files / i_insist-0.4.10.tar.gz

Download URL i_insist-0.4.10.tar.gz
Size 105.7 kB
Tags Source
SHA-256 checksum
How to use checksums
4ef26b9d46ee001110eec2422a4bf84edf2877c12fe1d4da0c083d5dda2ae618
BLAKE2b-256 checksum
How to use checksums
8db81a97f3f99d131971d3ca59c46f4b1e17404d2866df01239139bca331eded
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 Oct 15, 2026.

Transparency log

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

Download URL i_insist-0.4.10-py3-none-any.whl
Size 17.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1b95c49cafe0e4c536860a867a06221cbdd37d197708fb0bb2e830f04af93c3f
BLAKE2b-256 checksum
How to use checksums
6d63086e422821aee4c2fefaa55aea1ac5d6217c17c046a131dc1b273ee55d70
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 Oct 15, 2026.

Transparency log

Release history Release notifications | RSS feed

0.4.11

2 release files

This release

0.4.10 This release

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

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