Skip to main content

A high-performance Terminal User Interface (TUI) designed to replicate the experience of browser based llm chat applications directly in your terminal.

Project description

PureChat

A high-performance Terminal User Interface (TUI) designed to replicate the experience of browser based llm chat applications directly in your terminal. This tool provides persistent conversation memory, real-time streaming, and interactive session management.

💡 Motivation

Most modern AI CLI tools have become heavily "agentic." While powerful for automation, they often force massive context windows, auto-execute commands, and prioritize task completion over simple conversation. This results in high token consumption, slower response times, and a lack of control over what data is being sent.

Gemini CLI Vault was built to fill the gap for a "regular" chat app in the terminal. It provides a familiar web-like experience for discussing complicated topics in a controlled environment where you don't want the tool to send excessive context or execute commands autonomously.

✨ Key Features

  • Persistent Memory: Conversations are stored in a local SQLite database (gemini_vault.db), allowing you to resume any chat session at any time.
  • Live Streaming & Markdown: Responses stream in real-time with full Markdown rendering, including syntax-highlighted code blocks, tables, and lists.
  • Intelligent Context Window: Automatically manages token usage using a sliding window of the last 12 messages to maintain context without exceeding limits.
  • Interactive Session Switcher: Use the /conversations command to browse, search, and switch between previous chat sessions using an arrow-key menu.
  • Global Command History: Navigate your previous prompts across all sessions using the UP and DOWN arrows (powered by prompt_toolkit).
  • Google Search Integration: The assistant is equipped with the Google Search tool to provide up-to-date information on current events.
  • Dynamic Personalities: Load custom system instructions from a GEMINI.md file to change the AI's behavior and tone.

🛠️ Installation (using uv)

  1. Clone the repository:
git clone https://github.com/yourusername/gemini-cli-vault.git
cd gemini-cli-vault
  1. Configure Environment Variables:
# Create a .env file in the project root:
GEMINI_API_KEY=your_google_api_key_here
GEMINI_MODEL=gemini-3-flash-preview
  1. (Optional) Define System Instructions: Create a GEMINI.md file to set the AI's System Prompt: You are an expert software architect. Provide concise, high-level advice and always include code snippets in Python or Rust.

🚀 Usage

Start a new or default session:

uv run main.py

Start or resume a specific session by name:

python main.py --name Project-Alpha

⌨️ In-Chat Commands

  • /conversations : Opens the interactive session manager to switch or create chats.
  • /exit : Safely saves and exits the application.
  • UP / DOWN : Cycle through your entire history of user prompts.
  • Ctrl+C : Interrupt the current input line.

🏗️ Project Architecture

  • main.py: The entry point and TUI controller. Handles the input loop and rich live display.
  • db_manager.py: The data layer. Manages SQLite tables, message logging, and session retrieval.
  • ai_manager.py: The AI integration layer. Configures the google-genai client, tools, and system instructions.
  • gemini_vault.db: The local database generated on first run.

🤖 AI Disclosure

This project was primarily developed with the assistance of AI. While the core logic, architecture, and feature set were human-directed, the majority of the code implementation and boilerplate was generated and refined using Large Language Models.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pure_chat-0.3.0.tar.gz (13.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pure_chat-0.3.0-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

File details

Details for the file pure_chat-0.3.0.tar.gz.

File metadata

  • Download URL: pure_chat-0.3.0.tar.gz
  • Upload date:
  • Size: 13.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pure_chat-0.3.0.tar.gz
Algorithm Hash digest
SHA256 c6e2ebae39737c1a5986b7ecaeef7cbfc604059aeee2a1f131138c3ef74a54dd
MD5 c95afdc95984a9574cfa16d5a448efd7
BLAKE2b-256 2e94cab5111b93a6a147a07213b5ea0e4c60b1860be69ed8afff78813dc01efd

See more details on using hashes here.

File details

Details for the file pure_chat-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: pure_chat-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 14.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pure_chat-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0efb3e0090e72a6ff796febf196cec2a9d541aaa07135a3fd114bc837bbfc411
MD5 cd2bf05944c16d5187a43467a0b47ccd
BLAKE2b-256 92334f25f87e8924fbd420a89e4ac1f8888aae1451d55a89f5bed87d0bf542d5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page