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

Uploaded Python 3

File details

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

File metadata

  • Download URL: pure_chat-0.2.3.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.3.tar.gz
Algorithm Hash digest
SHA256 ea3d52b93cee37c093cd251b74ab09ad622a8bbb6387b5b99e71017fa7d50740
MD5 3bb973617509621c65f633bd3f5ac0a0
BLAKE2b-256 91871729e567c76994cd2646bf9b61922f8b510f15662b1f1ab0e166198dffd4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pure_chat-0.2.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b675385f06e7d21cd16385d5827afd8c49b3551b9a43189d143f6f5eb962e3e1
MD5 5856aade11e6dd955978a077668ab956
BLAKE2b-256 f4d0da2bbabfcc88ce6582b64d1f5fb6b06d97301c6192375fe813575dfe2a9b

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