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.1.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.1-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pure_chat-0.2.1.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.1.tar.gz
Algorithm Hash digest
SHA256 5ac956ca9ee96b2c848613b64a65969aa1db6b9cea8b6449b6cdb4bd29354732
MD5 88ff2b425399c4cd8a67a5499ffaabb3
BLAKE2b-256 57d11c5292f089678303908abb00c6d645e4bf1624dd8430cdacc8f9035778bb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pure_chat-0.2.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a963e483cc9cf7c837dff73aaf0592bbd13a8dd9da5888b11716b3ce749ff507
MD5 5dc641d23787aff6a71a44ef3019bc03
BLAKE2b-256 402c3b735c155eb4730d0ef44ee5c4050b08d71078f81b289e352737902988d1

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