intutic-clawde
Python SDK for Intutic Agentic AI Governance proxy wrappers.
The proxy's address is INTUTIC_BASE_URL, else http://localhost:4000. What talks to an Intutic control plane (ControlPlaneClient, check_budget(), session registration, the gate's control-plane tiers) needs its address: pass it to the client or set INTUTIC_CONTROL_PLANE_URL. There is no default; without one, ControlPlaneClient raises ValueError and ClawdeClient.chat() still works through the proxy.
ClawdeClient.chat() sends a request through the Intutic proxy and returns the completion with verdict set to "allow". A governance refusal (policy block, reask, loop run held for review, spend cap, DLP block) raises ClawdeBlockedError with the proxy's verdict, code, rule_id (when the proxy names the rule) and reason, fires the matching kill / reask / hold event, and is never retried; transport failures and 5xx answers are retried, except a 5xx the proxy already retried upstream. See Verdicts and Errors for every refusal code.
When the proxy withholds a tool call from the model's answer (a tool an SOP denies, the SSO group policy, destructive SQL, sensitive output), the answer arrives as a 200 that names the refusal in the x-intutic-refusal and x-intutic-refusal-rule headers; chat() raises ClawdeBlockedError for it too. For a stream you read yourself, pass each line to stream_refusal().
With an Intutic virtual key, in a git repository, the first chat() registers a session with the control plane carrying the repository (the origin remote as host/path, credentials removed), the branch and the HEAD commit, so the calls count in cost per branch, commit and pull request. This is on by default; pass auto_context=False to send none of it. See Git context and cost attribution.
ControlPlaneClient covers the operator APIs the CLI exposes: org and workspace setup, gateways, settings and provider credentials, the MCP registry, notification rules, SIEM destinations, usage, the AI inventory, compliance evidence, policy guardrails, held decisions and loop runs, incidents, findings, traces, trace integrity, WASM rules, SOPs, API keys (list_api_keys and the rest), the SOP Optimizer's settings (get_optimizer_settings, update_optimizer_settings) and task-management connections (list_task_connections), with the TypeScript SDK's methods in snake_case. verify_evidence_archive() checks a compliance evidence archive offline and verify_integrity_root() a sealed trace root's signature; both signature checks need pip install 'intutic-clawde[compliance]'. See the SDK reference.
The intutic_clawde.gate subpackage is the pre-execution tool gate for Python agent frameworks; see the Gate SDK reference. Its GateClient fails closed by default (fail_closed=True): when the control plane's hook gate cannot be reached, or answers GOVERNANCE_UNAVAILABLE because a check it runs could not complete, the call is refused. Pass fail_closed=False to let calls through during such an outage. A request the hook gate cannot read (HTTP 400, INVALID_REQUEST), and a key that lacks the scope the hook gate needs (HTTP 403, INSUFFICIENT_SCOPE), are refused whatever fail_closed says. A GateClient given an API key but no control plane address (no base_url, no INTUTIC_CONTROL_PLANE_URL) raises ValueError rather than skip the hook gate. A GateClient with no API key (what GateClient.from_env() builds when neither INTUTIC_API_KEY nor ~/.intutic/credentials.json has one) is local-only (client.local_only): it sends nothing, the hook gate's answer is an allow with code LOCAL_ONLY, and the local tiers still decide. See Fail-closed defaults.
A call a decide rule could not decide raises IntuticGateEscalation (from intutic_clawde.gate, code DECIDE_ESCALATED, with the rule in rule_id): a subclass of IntuticGateRefusal, so code that stops on every refusal stops on it too, and code that can ask its user asks with its reason and runs the call only on a yes. A SOP's requires_before: action:run_tests[ok] -> … is met only by a recorded passing test run: @guard and guard_tools record each call's outcome after it runs, and a caller that evaluates calls with Gate directly must call Gate.record_outcome(tool_name, tool_input, exit_code=..., output=...) after each call it runs, or the prerequisite is never met.
intutic_clawde.decide(state, questions, when=...) asks a self-hosted model a few narrow yes/no or pick-one questions about a piece of text, written as a decide rule's questions, and returns each answer's probability and reading (with when, the outcome the rule would reach). The engine comes from ~/.intutic/decide/engine.json and the INTUTIC_DECIDE_* variables; a hosted decision API is refused before anything is sent. An engine that is not configured, refused or cannot answer in time raises DecideEngineError. See Decide rules.
Every public module's API, with signatures and defaults: Python SDK reference.
Metadata
Release files for intutic-clawde 3.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| intutic_clawde-3.0.3.tar.gz | 181.4 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| intutic_clawde-3.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 395.0 kB
Release files / intutic_clawde-3.0.3.tar.gz
| Download URL | intutic_clawde-3.0.3.tar.gz |
|---|---|
| Size | 181.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f233af8c3157306006722d81b7933306942c31c0ed37af21c77badc58c4b822d
|
|
BLAKE2b-256 checksum How to use checksums |
5d877dfd83ae09cd5e08efaf6dce3c2409c8a572dc16adeacdf2627ca88b5890
|
| 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 19, 2026.
Transparency logRelease files / intutic_clawde-3.0.3-py3-none-any.whl
| Download URL | intutic_clawde-3.0.3-py3-none-any.whl |
|---|---|
| Size | 213.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
93e2e698d70028ed3493650fe336bd6b665158679d98be3e81f3dad51ad1902b
|
|
BLAKE2b-256 checksum How to use checksums |
749522e122b24d694f9b26716bbd569150dfb91f5ecca62bae07a85f1cb572d1
|
| 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 19, 2026.
Transparency logSecurity for intutic-clawde 3.0.3
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for intutic_clawde-3.0.3.tar.gz
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 19, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.