mirror of
https://github.com/kennethreitz/simplechat.git
synced 2026-06-05 23:00:17 +00:00
95 lines
2.3 KiB
Markdown
95 lines
2.3 KiB
Markdown
# Simplechat
|
|
|
|
A chat interface for AI models using Simplemind.
|
|
|
|
## Overview
|
|
|
|
Simplechat is a command-line chat application that provides an interactive interface for conversing with AI models. It features memory persistence, context awareness, and support for multiple AI providers.
|
|
|
|
## Features
|
|
|
|
- Support for multiple AI providers (OpenAI, Anthropic, XAI, Ollama)
|
|
- Persistent conversation memory and context
|
|
- Entity and topic tracking
|
|
- User identity management
|
|
- Rich markdown rendering
|
|
- Command completion
|
|
- Clipboard integration
|
|
|
|
## Installation
|
|
|
|
Requires Python 3.11 or higher.
|
|
|
|
```bash
|
|
$ pip install simplemind-chat
|
|
```
|
|
|
|
## Usage
|
|
|
|
Start a chat session:
|
|
|
|
```bash
|
|
$ simplechat [--provider=<provider>] [--model=<model>]
|
|
```
|
|
|
|
API keys should be set in environment variables before running:
|
|
|
|
```bash
|
|
$ export OPENAI_API_KEY="..."
|
|
$ export ANTHROPIC_API_KEY="..."
|
|
$ export XAI_API_KEY="..."
|
|
$ export OLLAMA_API_KEY="..."
|
|
```
|
|
|
|
Options:
|
|
- `--provider`: LLM provider to use (openai/anthropic/xai/ollama)
|
|
- `--model`: Specific model to use (e.g. o1-preview)
|
|
|
|
### Available Commands
|
|
|
|
- `/copy` - Copy last assistant response to clipboard
|
|
- `/paste` - Paste clipboard content into chat
|
|
- `/help` - Show available commands
|
|
- `/exit` - Exit the chat session
|
|
- `/clear` - Clear the screen
|
|
- `/invoke` - Invoke a specific persona
|
|
- `/memories` - Display conversation memories
|
|
|
|
## Features in Detail
|
|
|
|
### Memory System
|
|
Simplechat includes a sophisticated memory system that:
|
|
- Tracks conversation topics and entities
|
|
- Maintains user identity across sessions
|
|
- Records user preferences and characteristics
|
|
- Provides context awareness for more coherent conversations
|
|
|
|
### Database
|
|
Uses SQLite for persistent storage of:
|
|
- Conversation entities
|
|
- User identity
|
|
- Essence markers (user characteristics and preferences)
|
|
- Memory markers
|
|
|
|
### Rich Interface
|
|
- Markdown rendering for formatted output
|
|
- Command completion
|
|
- Status indicators
|
|
- Error handling with retries
|
|
|
|
## Development
|
|
|
|
The project structure follows a modular design:
|
|
- `cli.py`: Command-line interface and main chat loop
|
|
- `db.py`: Database operations and schema
|
|
- `plugin.py`: Plugin system for memory and context management
|
|
- `settings.py`: Configuration and path management
|
|
|
|
## License
|
|
|
|
MIT License
|
|
|
|
## Contributing
|
|
|
|
Contributions are welcome! Please feel free to submit a Pull Request.
|