# Package: opencode_client

Rust client library for interacting with the OpenCode.ai API.

## Quick Facts
- **Type**: Library
- **Main Entry**: src/lib.rs
- **Dependencies**: reqwest, serde, serde_json, chrono

## Key Files
- `src/lib.rs` - Public API exports
- `src/types.rs` - OpenCode API type definitions (Session, Message, Part, etc.)
- `src/client.rs` - HTTP client implementation with optional logging callbacks

## Main Exports
- `OpenCodeClient` - Main API client with methods: list_sessions, list_messages, send_message
- `Session` - Session metadata and configuration
- `Message` - User or Assistant message (tagged enum)
- `MessageWithParts` - Message info + content parts
- `Part` - Text, Reasoning, or workflow parts (StepStart, StepFinish, Tool)
- `ClientError` - Error types: Http, Request, Serialization
- `LogCallback` - Type alias for logging callbacks

## Related
- Used by: web, mobile (future), desktop (future)
- Independent: Can be used in any Rust project

## Documentation
- README: ./README.md
- API spec: ../../docs/api/opencode.md
