Metadata-Version: 2.4
Name: agentabi
Version: 0.1.0
Summary: Unified async Python API for driving coding agent CLIs — Claude Code, Codex, Gemini CLI, and more
Author-email: Peng Ding <pding.dp@foxmail.com>
License-Expression: MIT
Project-URL: Documentation, https://agentabi.readthedocs.io
Project-URL: Repository, https://github.com/oaklight/agentabi
Project-URL: Issues, https://github.com/oaklight/agentabi/issues
Keywords: ai,agent,coding-agent,cli,claude-code,codex,gemini-cli,opencode,llm,async,subprocess,orchestration,streaming,multi-agent,automation
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
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: Operating System :: OS Independent
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: typing_extensions>=4.0.0
Provides-Extra: claude
Requires-Dist: claude-agent-sdk>=0.1.0; extra == "claude"
Provides-Extra: codex
Requires-Dist: codex-sdk-python>=0.1.0; extra == "codex"
Provides-Extra: gemini
Requires-Dist: gemini-cli-sdk>=0.5.0; extra == "gemini"
Provides-Extra: all
Requires-Dist: claude-agent-sdk>=0.1.0; extra == "all"
Requires-Dist: codex-sdk-python>=0.1.0; extra == "all"
Requires-Dist: gemini-cli-sdk>=0.5.0; extra == "all"
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Dynamic: license-file

# agentabi

Unified interface layer for agentic coding CLIs.

One interface. Any coding agent.

## What is agentabi?

`agentabi` provides a stable, unified interface (an "ABI") for interacting with different agentic coding CLIs. Write your integration once, swap agents with a config change.

### Supported Agents

| Agent | Provider | Status |
|-------|----------|--------|
| [Claude Code](https://github.com/anthropics/claude-code) | Anthropic | Implemented |
| [Codex](https://github.com/openai/codex) | OpenAI | Implemented |
| [Gemini CLI](https://github.com/google-gemini/gemini-cli) | Google | Implemented |
| [OpenCode](https://opencode.ai) | Open Source | Implemented |

## Installation

```bash
pip install agentabi
```

With optional SDK integrations:

```bash
pip install agentabi[claude]   # Claude Code SDK support
pip install agentabi[codex]    # Codex SDK support
pip install agentabi[gemini]   # Gemini CLI SDK support
pip install agentabi[all]      # All optional SDKs
```

> **Note:** Each agent's CLI must be installed separately (e.g., `claude`, `codex`, `gemini`, `opencode`).

## Quick Start

### Run a task

```python
import asyncio
from agentabi import Session

async def main():
    session = Session(agent="claude_code")
    result = await session.run(prompt="Fix the bug in auth.py")
    print(result["status"])       # "success"
    print(result["result_text"])  # agent's response

asyncio.run(main())
```

### Stream events

```python
async for event in session.stream(prompt="Explain this code"):
    if event["type"] == "message_delta":
        print(event["text"], end="")
```

### Sync convenience

```python
from agentabi import run_sync

result = run_sync(prompt="List Python files", agent="codex")
```

### Discover available agents

```python
from agentabi import detect_agents, get_agent_capabilities

agents = detect_agents()          # ["claude_code", "codex", ...]
caps = get_agent_capabilities("claude_code")
print(caps["supports_streaming"]) # True
```

## Use Cases

- **Fleet Management** — Unified entry point for managing multiple coding agents
- **Agent-to-Agent Calls** — Translation layer for inter-agent invocation
- **Benchmarking** — Run the same task across agents, compare results
- **Fallback & Routing** — Automatic failover and cost-aware routing
- **Middleware Pipeline** — Inject logging, metering, security scanning, audit trails
- **CI/CD Integration** — Vendor-agnostic agent integration for pipelines

## Ecosystem

`agentabi` is part of a layered stack:

```
agentabi  →  Agent CLI unified interface  →  like an OS ABI
llmir     →  LLM API format conversion    →  like a compiler IR
```

- [llmir](https://github.com/Oaklight/llmir) — LLM Intermediate Representation for converting between LLM provider API formats (OpenAI, Anthropic, Google)

## License

[MIT](LICENSE)
