chatty/CLAUDE.md

1.4 KiB

Chatty

CLI chat client for OpenAI models with conversation persistence.

Quick reference

# One-shot message (non-interactive, best for scripting / agent use)
python main.py "Your message here"

# One-shot with a named conversation (creates or resumes)
python main.py -n my-thread "Follow-up question"

# One-shot with a specific model
python main.py -m gpt-4o "Hello"

# Interactive mode
python main.py
python main.py -n my-thread

# Resume by conversation ID
python main.py --resume 3

# List saved conversations
python main.py --list

# Custom system prompt
python main.py -s "You are a pirate." "Ahoy?"

Architecture

Single-file app: main.py. SQLite database conversations.db stores all conversations and messages.

Key functions:

  • send_message() - one-shot: send a message, get a response, no UI
  • chat_loop() - interactive REPL with streaming output
  • get_or_create_conversation() - upserts by name
  • load_messages() / save_message() - DB read/write

Environment

Requires OPENAI_API_KEY in environment or .env file. Dependencies: openai, python-dotenv.

Conventions

  • Default model: gpt-4.1 (set via DEFAULT_MODEL)
  • Messages are saved to DB only after a successful API response
  • System prompt is stored as the first message in a conversation
  • Named conversations are resumed automatically; unnamed ones always create new entries