mirror of
https://github.com/kennethreitz/simplechat.git
synced 2026-06-05 14:50:19 +00:00
907287772f0494171ff0348b5b52b219f2c17950
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.
pip install simplechat
Usage
Start a chat session:
simplechat [--provider=<provider>] [--model=<model>]
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 loopdb.py: Database operations and schemaplugin.py: Plugin system for memory and context managementsettings.py: Configuration and path management
License
MIT License
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Languages
Python
100%