Metadata-Version: 2.4
Name: openvibe
Version: 0.1.0
Summary: Open-source AI coding agent — openvibe
License: MIT
Keywords: agent,ai,cli,coding,llm
Requires-Python: >=3.11
Requires-Dist: aiofiles>=24.0.0
Requires-Dist: fastapi>=0.115.0
Requires-Dist: httpx>=0.27.0
Requires-Dist: litellm>=1.52.0
Requires-Dist: mcp>=1.1.0
Requires-Dist: pydantic-settings>=2.5.0
Requires-Dist: pydantic>=2.9.0
Requires-Dist: rich>=13.9.0
Requires-Dist: sse-starlette>=2.1.0
Requires-Dist: textual>=0.52.0
Requires-Dist: typer>=0.12.0
Requires-Dist: uvicorn[standard]>=0.30.0
Provides-Extra: dev
Requires-Dist: mypy>=1.11.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.24.0; extra == 'dev'
Requires-Dist: pytest>=8.3.0; extra == 'dev'
Requires-Dist: ruff>=0.6.0; extra == 'dev'
Description-Content-Type: text/markdown

# openvibe

Python implementation of [opencode](https://opencode.ai) — an open-source AI coding agent.

## Installation

```bash
pip install -e ".[dev]"
```

## Usage

```bash
# Start the server (default port 4096)
openvibe serve

# One-shot prompt
openvibe run "fix the failing tests"

# List available models
openvibe models

# Session management
openvibe session list
openvibe session show <session-id>
```

## Configuration

Create `openvibe.json` in your project root:

```json
{
  "model": { "provider_id": "anthropic", "model_id": "claude-sonnet-4-5" },
  "default_agent": "build",
  "permission": [
    { "tool": "bash", "action": "ask" },
    { "tool": "write", "action": "ask" }
  ]
}
```

Set your API key:

```bash
export ANTHROPIC_API_KEY=sk-...
```

## Architecture

See [`src/openvibe/`](src/openvibe/) for the source. Key modules:

- `db.py` — SQLite abstraction (swappable via `Database` protocol)
- `llm.py` — LLM abstraction (litellm backend, swappable via `LLMBackend` protocol)
- `server.py` — FastAPI HTTP + SSE server
- `session/processor.py` — core agent execution loop
- `tool/` — built-in tools (bash, read, write, edit, glob, grep, web_fetch, todo)
- `mcp/client.py` — MCP server integration
