ACP-compliant coding agent and reference client.
Project description
🍏 Isaac ACP 🍏 (isaac-acp)
Isaac is an ACP-compliant coding agent and reference CLI client.
- Agent implementation:
isaac.agent - Client REPL implementation:
isaac.client - Protocol: Agent Client Protocol (ACP)
Since Newton discovered gravity, everything's been going downhill.
Installation
Install Isaac as a uv tool:
uv tool install isaac-acp
Optional Harness experiments are not installed by default:
uv tool install "isaac-acp[harness]" --force
Quickstart
Run the agent:
isaac
Run the bundled client against the bundled agent without creating a project checkout:
uv tool run --from isaac-acp python -m isaac.client isaac
Or when developing from source:
uv run python -m isaac.client uv run isaac
Configuration
Isaac loads environment variables from:
<platform config dir>/isaac/.env(viaplatformdirs; Linux example:~/.config/isaac/.env)
Common variables:
OPENROUTER_API_KEY(or provider-specific model keys)ISAAC_ACP_STDIO_BUFFER_LIMIT_BYTES(optional ACP stdio buffer override)ISAAC_SHELL_ALLOWLIST(optional comma/newline-separated regex allowlist forrun_command)ISAAC_SHELL_DENYLIST(optional comma/newline-separated regex denylist forrun_command)ISAAC_COMMAND_ENV_DENYLIST(optional comma/newline-separated regexes for additional environment variable names to remove from command subprocesses)
Features
- ACP 0.11 session config options for mode/model selection
- Pydantic AI 2.x capability-based agent assembly
- Prompt turns, tool calls, filesystem and terminal ACP flows
- Workspace-contained filesystem tools with binary-file guards, protected write paths, and optional SHA-256 write preconditions
- ACP-backed approval flow for
run_commandwith an experimental Pydantic AI capability bridge - Optional Pydantic AI Harness CodeMode experiments via
ISAAC_HARNESS_CODE_MODE=1and theharnessextra - Interactive client slash commands (
/mode,/model,/status,/usage) - MCP server config forwarding from the client to the agent
Command environment security
run_command inherits the normal development environment but removes variables
whose names look secret-bearing, including names containing TOKEN, SECRET,
PASSWORD, PRIVATE, CREDENTIAL, AUTH, COOKIE, API_KEY, or
ACCESS_KEY. Matching is case-insensitive and substring-based. For example,
SSH_AUTH_SOCK is removed because its name contains AUTH, so commands run by
Isaac do not automatically inherit the caller's SSH agent.
ISAAC_COMMAND_ENV_DENYLIST can add more variable-name regular expressions to
remove. It cannot restore names removed by the built-in policy. Run authenticated
Git operations outside agent-executed commands, or provide only narrowly scoped
credentials through an explicitly reviewed mechanism.
These checks reduce accidental credential exposure, but they do not make
run_command a sandbox.
Development
uv sync
uv run ruff format .
uv run ruff check .
uv run mypy src tests
uv run pytest
uv build --wheel --sdist
Development note: uv sync installs the default dev dependency group, so local check commands such as uv run pytest, uv run ruff check ., and uv run mypy work after a normal sync. The test extra is kept for packaging and CI compatibility.
Optional Harness experiments
Install the optional Harness extra when experimenting with Pydantic AI Harness integrations:
uv sync --extra harness
Optional Harness tools are disabled by default. FileSystem and Shell experiments are exposed with prefixed harness_* tool names so they do not replace Isaac's ACP-compatible tools:
ISAAC_HARNESS_FILESYSTEM=1 uv run isaac
ISAAC_HARNESS_SHELL=1 uv run isaac
ISAAC_HARNESS_CODE_MODE=1 uv run isaac
Review approval and sandbox behavior before using Harness tools with mutating operations.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file isaac_acp-0.4.0.tar.gz.
File metadata
- Download URL: isaac_acp-0.4.0.tar.gz
- Upload date:
- Size: 440.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1604374edd48e0bd03e7d89002655af90cc7342aded8ba4f69ea063171f87a33
|
|
| MD5 |
75492bfad508a94adc2bebeb249c99fe
|
|
| BLAKE2b-256 |
1df713c5149f23aab0d5ccff1bd78f40119095c364997ab7a025aa088ad1d0c7
|
Provenance
The following attestation bundles were made for isaac_acp-0.4.0.tar.gz:
Publisher:
publish.yml on gbtami/isaac
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
isaac_acp-0.4.0.tar.gz -
Subject digest:
1604374edd48e0bd03e7d89002655af90cc7342aded8ba4f69ea063171f87a33 - Sigstore transparency entry: 2136924743
- Sigstore integration time:
-
Permalink:
gbtami/isaac@b9e089391f400766333cf3627f4b98b8cf6d47f4 -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/gbtami
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b9e089391f400766333cf3627f4b98b8cf6d47f4 -
Trigger Event:
release
-
Statement type:
File details
Details for the file isaac_acp-0.4.0-py3-none-any.whl.
File metadata
- Download URL: isaac_acp-0.4.0-py3-none-any.whl
- Upload date:
- Size: 322.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b2f32bb07cee58abe3cb63a80dac6d7a49b1c9b62b12552b0ff4bdfaa2b07a3
|
|
| MD5 |
25668f781e06693d695c3c7d40958e2c
|
|
| BLAKE2b-256 |
8678a65e85cf09c51cdffef34a7610760780cee3be574cf82136d65d27b53eec
|
Provenance
The following attestation bundles were made for isaac_acp-0.4.0-py3-none-any.whl:
Publisher:
publish.yml on gbtami/isaac
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
isaac_acp-0.4.0-py3-none-any.whl -
Subject digest:
5b2f32bb07cee58abe3cb63a80dac6d7a49b1c9b62b12552b0ff4bdfaa2b07a3 - Sigstore transparency entry: 2136924755
- Sigstore integration time:
-
Permalink:
gbtami/isaac@b9e089391f400766333cf3627f4b98b8cf6d47f4 -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/gbtami
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b9e089391f400766333cf3627f4b98b8cf6d47f4 -
Trigger Event:
release
-
Statement type: