Skip to content

v0.1.0 — Unified Provider Architecture

Choose a tag to compare

@Oaklight Oaklight released this 30 Mar 18:13
· 8 commits to master since this release

What's New

agentabi v0.1.0 — a unified async Python API for driving coding agent CLIs.

Supported Agents

Agent Provider(s) Transport
Claude Code ClaudeNativeProviderClaudeSDKProvider subprocess (JSONL) / SDK
Codex CodexSDKProvider SDK
Gemini CLI GeminiNativeProviderGeminiSDKProvider subprocess (stream-json) / SDK
OpenCode OpenCodeNativeProvider subprocess

Highlights

  • Flat Provider model with fallback chain registry (native → SDK)
  • Async-first Session API with run(), stream(), and run_sync() convenience wrapper
  • Standard IR event format — all agents emit the same event types (session_start, message_delta, tool_use, usage, etc.)
  • Agent discoverydetect_agents() finds installed CLIs, get_agent_capabilities() reports features
  • GeminiNativeProvider — subprocess-based provider bypassing the unreliable gemini-cli-sdk, parsing Gemini CLI's stream-json output directly
  • 119 unit tests + 16 integration tests across all providers

Quick Start

from agentabi import Session

# Async
session = Session(agent="claude_code")
result = await session.run(prompt="Fix the bug in auth.py")

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

# Sync convenience
from agentabi import run_sync
result = run_sync(prompt="List Python files", agent="codex")

# Discovery
from agentabi import detect_agents
agents = detect_agents()  # ["claude_code", "codex", ...]

Install

pip install agentabi            # core only
pip install agentabi[claude]    # with Claude SDK
pip install agentabi[all]       # all optional SDKs

Each agent's CLI must be installed separately (e.g., claude, codex, gemini, opencode).

What's Next (v0.2.0)

  • ACP (Agent Client Protocol) provider for JSON-RPC over stdio
  • A2A server wrapper