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.2.0.tar.gz (12.1 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.2.0-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pure_chat-0.2.0.tar.gz
  • Upload date:
  • Size: 12.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","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.2.0.tar.gz
Algorithm Hash digest
SHA256 6a4cad6b89a973f04650c97c5115a787b4a1869f77217d6a30e78e7f928b61bb
MD5 31591f09c1d3961c81d3df062a7612df
BLAKE2b-256 d31e27b42f4d81c419c4ff3c962b671a2c100da6a52549d5961d7644d7531d65

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pure_chat-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 12.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d77802adaebeb7d273a4be18f2b8cdec70f49d6e3f8c3e7b53825f45a6a8c5d1
MD5 7eeb38036449b5db0524447c6aaae70d
BLAKE2b-256 3cc9b11dc5c65f11e8ee0de902c770916edf1baca987b131c485854e22da61cd

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