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 simplemind-chat

Usage

Start a chat session:

$ simplechat [--provider=<provider>] [--model=<model>]

API keys should be set in environment variables before running:

$ 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.

S
Description
No description provided
Readme MIT 64 KiB
Languages
Python 100%