Metadata-Version: 2.4
Name: isaac-acp
Version: 0.3.1
Summary: ACP-compliant coding agent and reference client.
Project-URL: Homepage, https://github.com/gbtami/isaac
Project-URL: Repository, https://github.com/gbtami/isaac
Project-URL: Issues, https://github.com/gbtami/isaac/issues
Project-URL: ACP-Spec, https://agentclientprotocol.com/protocol/
Author: Isaac Contributors
License: MIT
License-File: LICENSE
Keywords: acp,agent,agent-client-protocol,cli,repl
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: agent-client-protocol==0.8.1
Requires-Dist: aiocache==0.12.3
Requires-Dist: logfire>=4.16.0
Requires-Dist: pathspec==1.0.4
Requires-Dist: platformdirs==4.9.2
Requires-Dist: prompt-toolkit==3.0.52
Requires-Dist: pydantic-ai==1.62.0
Requires-Dist: python-dotenv==1.2.1
Requires-Dist: rich==14.3.2
Provides-Extra: test
Requires-Dist: mypy==1.19.1; extra == 'test'
Requires-Dist: pytest-asyncio==1.3.0; extra == 'test'
Requires-Dist: pytest==9.0.2; extra == 'test'
Requires-Dist: ruff==0.15.1; extra == 'test'
Description-Content-Type: text/markdown

# 🍏 Isaac ACP 🍏 (`isaac-acp`)

[![PyPI version](https://img.shields.io/pypi/v/isaac-acp)](https://pypi.org/project/isaac-acp/)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/isaac-acp)](https://pypi.org/project/isaac-acp/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
[![Lint](https://github.com/gbtami/isaac/actions/workflows/lint.yml/badge.svg)](https://github.com/gbtami/isaac/actions/workflows/lint.yml)
[![Tests](https://github.com/gbtami/isaac/actions/workflows/test.yml/badge.svg)](https://github.com/gbtami/isaac/actions/workflows/test.yml)

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)](https://agentclientprotocol.com/protocol/)

> Since Newton discovered gravity, everything's been going downhill.
## Installation

```bash
pip install isaac-acp
```

## Quickstart

Run the agent:

```bash
isaac
```

Run the bundled client against the bundled agent:

```bash
python -m isaac.client isaac
```

Or when developing from source:

```bash
uv run python -m isaac.client uv run isaac
```

## Configuration

Isaac loads environment variables from:

1. `<platform config dir>/isaac/.env` (via `platformdirs`; 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)

## Features

- ACP 0.8 session config options for mode/model selection
- Prompt turns, tool calls, filesystem and terminal ACP flows
- Interactive client slash commands (`/mode`, `/model`, `/status`, `/usage`)
- MCP server config forwarding from the client to the agent

## Development

```bash
uv pip install -e .
uv run ruff format .
uv run ruff check .
uv run mypy src tests
uv run pytest
uv build --wheel --sdist
```
