Metadata-Version: 2.4
Name: coda-code-assistant
Version: 2025.8.2.1052
Summary: A multi-provider, CLI-focused code assistant for AI-assisted development
License-File: LICENSE
Requires-Python: >=3.11
Requires-Dist: aiosqlite>=0.19.0
Requires-Dist: click>=8.0.0
Requires-Dist: cryptography>=3.4.7
Requires-Dist: diagram-renderer>=0.1.0
Requires-Dist: faiss-cpu>=1.7.4
Requires-Dist: grep-ast>=0.9.0
Requires-Dist: httpx>=0.25.0
Requires-Dist: litellm>=1.0.0
Requires-Dist: numpy>=1.24.0
Requires-Dist: oci>=2.119.1
Requires-Dist: opentelemetry-api>=1.20.0
Requires-Dist: opentelemetry-exporter-otlp>=1.20.0
Requires-Dist: opentelemetry-instrumentation>=0.41b0
Requires-Dist: opentelemetry-sdk>=1.20.0
Requires-Dist: pandas>=2.0.0
Requires-Dist: plotly>=5.0.0
Requires-Dist: prompt-toolkit>=3.0.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: pygments>=2.19.2
Requires-Dist: pyyaml>=6.0.1
Requires-Dist: requests>=2.32.4
Requires-Dist: rich>=13.0.0
Requires-Dist: sqlalchemy>=2.0.0
Requires-Dist: streamlit-ace>=0.1.1
Requires-Dist: streamlit>=1.40.0
Requires-Dist: tiktoken>=0.5.0
Requires-Dist: tomli-w>=1.2.0
Requires-Dist: tomlkit>=0.12.0
Requires-Dist: tree-sitter-language-pack>=0.8.0
Provides-Extra: dev
Requires-Dist: black>=23.0.0; extra == 'dev'
Requires-Dist: mypy>=1.0.0; extra == 'dev'
Requires-Dist: pexpect>=4.8.0; extra == 'dev'
Requires-Dist: pre-commit>=3.5.0; extra == 'dev'
Requires-Dist: pytest-asyncio<1.0,>=0.21.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: ruff>=0.1.0; extra == 'dev'
Provides-Extra: embeddings
Requires-Dist: chromadb>=0.4.0; extra == 'embeddings'
Requires-Dist: sentence-transformers>=2.2.0; extra == 'embeddings'
Provides-Extra: oracle
Requires-Dist: oracledb>=2.0.0; extra == 'oracle'
Provides-Extra: performance
Requires-Dist: locust>=2.0.0; extra == 'performance'
Requires-Dist: pytest-benchmark>=4.0.0; extra == 'performance'
Provides-Extra: test-web
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'test-web'
Requires-Dist: pytest-cov>=4.0.0; extra == 'test-web'
Requires-Dist: pytest-selenium>=4.0.0; extra == 'test-web'
Requires-Dist: pytest-timeout>=2.0.0; extra == 'test-web'
Requires-Dist: pytest>=8.0.0; extra == 'test-web'
Requires-Dist: requests>=2.32.0; extra == 'test-web'
Requires-Dist: selenium>=4.0.0; extra == 'test-web'
Description-Content-Type: text/markdown

<div align="center">
  <img src="assets/logos/coda-terminal-logo.svg" alt="Coda Terminal Logo" width="400" height="280">
  
  # Coda - AI Code Assistant
  
  A powerful, modular AI code assistant that brings the best of AI-powered development directly to your terminal.
</div>

---

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Python](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

## ✨ What is Coda?

Coda is your AI pair programmer that lives in your terminal, built with a modular architecture that supports multiple AI providers including Oracle OCI GenAI, OpenAI, Anthropic, Google, and 100+ more via LiteLLM.

## 🏗️ Modular Architecture

Coda is built with a clean, three-layer architecture:

```
┌─────────────────────────────────────────────────┐
│                    Apps Layer                    │
│         (CLI, Web UI, Plugins, Custom)          │
├─────────────────────────────────────────────────┤
│                 Services Layer                   │
│    (Integration, Orchestration, Workflows)       │
├─────────────────────────────────────────────────┤
│                   Base Layer                     │
│ (Config, Theme, Providers, Session, Search, etc) │
└─────────────────────────────────────────────────┘
```

### Base Modules

- **🔧 Config**: Unified configuration management
- **🎨 Theme**: Terminal UI and formatting
- **🤖 Providers**: Multi-provider AI integration
- **💬 Session**: Conversation persistence
- **🔍 Search**: Semantic code search
- **📊 Observability**: Logging and metrics

## 🚀 Quick Start

### Try without installing

```bash
# Run directly with uvx (no installation needed!)
uvx --from coda-code-assistant coda
```

### Install from PyPI

```bash
# Install with pip
pip install coda-code-assistant

# Or install with uv
uv pip install coda-code-assistant

# Run Coda
coda
```

### Install from source

```bash
# Clone the repository with submodules
git clone --recursive https://github.com/djvolz/coda-code-assistant.git
cd coda-code-assistant

# Install with uv (recommended)
uv sync

# Run Coda
uv run coda
```

### Using Individual Modules

```python
from coda.base.config import Config
from coda.base.providers import ProviderFactory

# Initialize configuration
config = Config()

# Create a provider
factory = ProviderFactory(config.to_dict())
provider = factory.create("openai")

# Start chatting
response = provider.chat(
    messages=[{"role": "user", "content": "Hello!"}],
    model="gpt-4"
)
print(response["content"])
```

## 📖 Documentation

### In-Repository Docs
- [Integration Guide](docs/integration-guide.md) - How to use modules together
- [Module Documentation](coda/base/) - Individual module READMEs
- [Example Applications](tests/examples/) - Working examples
- [Diagram Rendering Guide](docs/guides/diagram-rendering.md) - How to create diagrams

### Wiki Documentation
For comprehensive documentation, visit our **[Wiki](https://github.com/djvolz/coda-code-assistant/wiki)**:

- **[Getting Started Guide](https://github.com/djvolz/coda-code-assistant/wiki/Getting-Started)** - Installation and setup
- **[AI Modes](https://github.com/djvolz/coda-code-assistant/wiki/AI-Modes)** - Specialized AI personalities
- **[Development Guide](https://github.com/djvolz/coda-code-assistant/wiki/Development-Guide)** - Contributing and development workflow
- **[Architecture Guide](https://github.com/djvolz/coda-code-assistant/wiki/Architecture)** - Deep dive into the modular design
- **[Troubleshooting](https://github.com/djvolz/coda-code-assistant/wiki/Troubleshooting)** - Common issues and solutions

## 🎯 Key Features

- 🌐 **Multi-Provider Support**: Works with Oracle OCI GenAI, Ollama, OpenAI, Anthropic, Google, and 100+ providers
- 🧩 **Modular Design**: Use only the components you need
- 💻 **Terminal-First**: Designed for developers who live in the command line
- 🧠 **Smart AI Modes**: Specialized modes for coding, debugging, explaining, and reviewing
- 💾 **Session Management**: Save, resume, and branch conversations
- 🎨 **Beautiful Interface**: Rich terminal UI with syntax highlighting
- 🔧 **Tool Integration**: File operations, web search, and more via MCP
- 📊 **Diagram Rendering**: Create flowcharts, UML diagrams, and graphs with [diagram-renderer](https://github.com/djvolz/diagram-renderer)
- 🧪 **Well-Tested**: Comprehensive test suite ensures reliability

## 🛠️ Example Applications

Check out our [example applications](tests/examples/) to see Coda modules in action:

- **[Simple Chatbot](tests/examples/simple_chatbot/)** - Basic provider usage
- **[Session Manager](tests/examples/session_manager/)** - Persistent conversations
- **[Code Analyzer](tests/examples/code_analyzer/)** - AI-powered code analysis

## 🤝 Contributing

We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.

### Development

```bash
# Install development dependencies
uv sync --dev

# Run tests
uv run pytest

# Run type checks
uv run mypy coda

# Format code
uv run black .
uv run ruff check --fix
```

## 📄 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## 🔗 Links

- [Full Documentation](https://github.com/djvolz/coda-code-assistant/wiki)
- [Issue Tracker](https://github.com/djvolz/coda-code-assistant/issues)
- [Discussions](https://github.com/djvolz/coda-code-assistant/discussions)
- [Roadmap](https://github.com/djvolz/coda-code-assistant/blob/main/ROADMAP.md)
- [Architecture Documentation](docs/architecture/)

---

<p align="center">Made with ❤️ by the Coda community</p>