71 lines
1.6 KiB
Markdown
71 lines
1.6 KiB
Markdown
# Goaichat
|
|
|
|
Goaichat is a terminal-based AI chat client written in Go. It connects to OpenAI-compatible APIs using configuration supplied via `config.yaml` and environment variables.
|
|
|
|
## Features
|
|
|
|
- **Config-driven startup**: Loads defaults from `config.yaml` with environment overrides.
|
|
- **Interactive chat loop**: (In progress) command-driven conversation with persistent history.
|
|
- **Extensible architecture**: Structured packages under `internal/` for config, app wiring, chat, storage, OpenAI client, UI, and telemetry.
|
|
|
|
## Getting Started
|
|
|
|
### Prerequisites
|
|
|
|
- Go 1.23 or later
|
|
- Access to an OpenAI-compatible API endpoint
|
|
|
|
### Installation
|
|
|
|
```bash
|
|
go install github.com/stig/goaichat/cmd/goaichat@latest
|
|
```
|
|
|
|
Alternatively, clone the repository and build locally:
|
|
|
|
```bash
|
|
git clone https://github.com/stig/goaichat.git
|
|
cd goaichat
|
|
go build ./cmd/goaichat
|
|
```
|
|
|
|
### Configuration
|
|
|
|
Create `config.yaml` in the project root or pass `--config` to specify a path. A minimal configuration looks like:
|
|
|
|
```yaml
|
|
api:
|
|
url: "https://api.openai.com/v1"
|
|
key: "${GOAICHAT_API_KEY}"
|
|
model:
|
|
name: "gpt-4o-mini"
|
|
temperature: 0.7
|
|
stream: true
|
|
ui:
|
|
show_timestamps: true
|
|
logging:
|
|
level: "info"
|
|
```
|
|
|
|
Environment variables override several fields:
|
|
|
|
- `GOAICHAT_API_URL`
|
|
- `GOAICHAT_API_KEY`
|
|
|
|
### Running
|
|
|
|
```bash
|
|
go run ./cmd/goaichat --config path/to/config.yaml
|
|
```
|
|
|
|
The current build logs startup/shutdown messages while core services are implemented. Upcoming milestones include the chat loop, persistence, OpenAI integration, and Bubble Tea UI.
|
|
|
|
## Development
|
|
|
|
- Run tests with `go test ./...`.
|
|
- Follow the roadmap in `dev-plan.md` for milestone progression.
|
|
|
|
## License
|
|
|
|
TBD
|