I was tired of accidentally pasting API keys into ChatGPT, so I built a terminal that intelligently routes conversations.
The Problem
Every time you chat with ChatGPT, Claude, or any cloud AI:
- Everything goes to their servers - passwords, API keys, emails, everything
- It's all logged - no way to delete it
- You can't verify what they do with your data
I kept cringing every time I accidentally pasted something sensitive.
The Solution
AI Chat Terminal - keyword detection that runs BEFORE anything touches the network:
You: "save my password SecretPass123"
→ Routes to LOCAL Qwen AI ✅
→ Encrypted SQLite (AES-256) ✅
→ NEVER sent to cloud ✅
You: "What's the capital of Spain?"
→ Routes to OpenAI ✅
You: "best food there?"
→ OpenAI understands context (Spain) ✅
How It Works
1. Keyword Detection (<1ms)
Pattern matching for save
, show
, delete
and 30+ synonyms:
if matches_keywords(input, ['save', 'note', 'record']):
route_to_local()
else:
route_to_cloud()
Works in English, German, Spanish:
- "save my email" → Local
- "guarda mi contraseña" → Local
- "speichere meine Telefonnummer" → Local
2. Local AI Processing
Uses Qwen 2.5 Coder (7B) via Ollama:
User: "save my email test@example.com"
→ Qwen generates SQL:
INSERT INTO mydata (content, meta)
VALUES ('test@example.com', 'email')
→ Encrypted with SQLCipher (AES-256)
3. Cloud for Everything Else
OpenAI GPT-4o with full context:
You: "capital of France?"
AI: "Paris"
You: "best food there?"
AI: "Croissants..." (knows "there" = Paris)
Tech Stack
- Python 3.9+
- Ollama - Local AI runtime
- Qwen 2.5 Coder (7B) - SQL generation
- SQLCipher - AES-256 encryption
- OpenAI API - Cloud queries
- ~5GB disk space for model
Installation (macOS)
One-line install:
curl -fsSL https://raw.githubusercontent.com/martinschenk/ai-chat-terminal/main/install.sh | zsh
This automatically:
- Installs Ollama if needed
- Pulls Qwen 2.5 Coder model
- Sets up encrypted database
- Adds shell integration
Takes ~5 minutes (mostly downloading the 4.5GB model).
Usage Examples
Save Private Data
$ chat
👤 You ▶ save my email test@example.com
🤖 AI 🗄️ Stored 🔒
👤 You ▶ save password SecretPass123
🤖 AI 🗄️ Stored 🔒
👤 You ▶ guarda mi dirección Calle Mayor 1
🤖 AI 🗄️ Guardado 🔒
Retrieve Anywhere
👤 You ▶ show my email
🤖 AI 🗄️🔍 test@example.com
👤 You ▶ list all
🤖 AI 🗄️🔍 Found 3 items:
1. test@example.com (email)
2. SecretPass123 (password)
3. Calle Mayor 1 (dirección)
General Questions (Cloud)
👤 You ▶ capital of Spain?
🤖 AI Madrid.
👤 You ▶ best food?
🤖 AI Tapas. (remembers Spain!)
Privacy Architecture
┌─────────────────────────────────────────────┐
│ User Input │
└────────────┬────────────────────────────────┘
↓
┌─────────────────────┐
│ Keyword Detection │ ← Fast (<1ms)
│ save/show/delete │
└─────────┬───────────┘
↓
┌──────────────┐
│ Detected? │
└──┬────────┬──┘
│ │
YES │ │ NO
↓ ↓
┌──────────────┐ ┌──────────────┐
│ Qwen 2.5 │ │ OpenAI │
│ Coder (7B) │ │ GPT-4o │
│ SQL Direct │ │ (Cloud) │
└─────┬────────┘ └──────┬───────┘
↓ ↓
┌─────────────┐ ┌──────────────┐
│ Encrypted │ │ Response │
│ SQLite DB │ │ with Context │
│ (AES-256) │ │ │
└─────────────┘ └──────────────┘
Key Features
🔒 Privacy First
- Keyword detection before any network call
- Local Qwen AI for sensitive data
- AES-256 encrypted SQLite
- Zero cloud exposure for private data
🧠 Smart Context
- OpenAI maintains conversation history
- Understands references ("there", "it", "that")
- Natural follow-up questions
🌍 Multilingual
- English, German, Spanish
- 30+ action verbs per language
- Flexible phrasing
⚡ Fast
- Keyword matching: <1ms
- Local operations: <1s
- OpenAI queries: 5-7s
- Always shows 🗄️ icon for local DB operations
System Requirements
- macOS 12.0+ (Monterey or later)
- Zsh shell
- Python 3.9+
- ~5GB disk space (for Qwen model)
- 8GB RAM minimum (16GB recommended)
- OpenAI API key
Why Qwen 2.5 Coder?
I tested several local models and Qwen 2.5 Coder was surprisingly good at:
- Generating SQL from natural language
- Understanding multilingual input
- Pattern recognition for data extraction
- Running efficiently on 7B parameters
Future Improvements
Looking for contributors! Especially for:
- More languages (French, Italian, Portuguese)
- Windows/Linux ports (currently macOS only)
- Better error handling
- Testing on different macOS versions
Open Source
- GitHub: https://github.com/martinschenk/ai-chat-terminal
- License: MIT
- Contributions: Welcome!
Conclusion
This scratches an itch I had - wanting the power of GPT-4 without accidentally logging sensitive data. The keyword-based routing is simple but effective.
Would love feedback on the privacy model - I'm sure there are edge cases I haven't considered!
Links
- GitHub Repo: https://github.com/martinschenk/ai-chat-terminal
- Hacker News Discussion: https://news.ycombinator.com/submitted?id=ma8nk
Top comments (0)