Repository files navigation

Grey Matter

Grey Matter

Give your AI a brain that actually remembers.

Python 3.8+MIT LicenseZero DependenciesTests Passing

InstallationQuick StartFeaturesHow It WorksCommands


The Problem

Every time you start a new chat with Claude, Gemini, or Ollama:

You: "Remember, I prefer TypeScript and use 2-space indentation"
AI: "Got it!"
[Next session]
You: "What are my coding preferences?"
AI: "I don't have any information about your preferences."

Your AI has amnesia.

The Solution

pip install greymatter-ai
claude++

That's it. Now your AI remembers everything—automatically.

You: "I prefer TypeScript and 2-space indentation"
AI: "Got it!"
[Next session, next week, next month]
You: "What are my preferences?"
AI: "You prefer TypeScript with 2-space indentation."

Quick Start

# Install
pip install git+https://github.com/AndroidPoet/greymatter.git
# Run (that's it!)
claude++ # or gemini++ or ollama++

No configuration. No commands to learn. Just talk naturally.


Features

FeatureWhat it does
🧠 Human-Like MemoryRemembers like you do—important stuff sticks, trivial stuff fades
🔍 Semantic SearchFinds memories by meaning, not just keywords
📁 Project MemoryDifferent project? Different memories. Auto-switches when you cd
🔮 Predictive LoadingPre-loads memories you'll probably need
♻️ Clear & ResumeContext full? Use /clear. Resume seamlessly—nothing lost
🔗 Claude Code HooksAuto-saves context before Claude compacts—never lose state
Zero ConfigWorks out of the box. No API keys, no setup
🪶 Zero DependenciesPure Python stdlib. Optional neural embeddings

How It Works

Grey Matter wraps your AI CLI with a memory layer modeled after human cognition:

 ┌─────────────────┐
│ You speak │
└────────┬────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 👁️ PERCEPTION │
│ Analyzes intent, emphasis, importance │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 🎯 ATTENTION │
│ Focuses on what matters (like "ALWAYS" or "I prefer") │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 💾 ENCODING │
│ Important → Long-term memory │
│ Trivial → Forgotten │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 🔄 RECALL │
│ Relevant memories surface automatically │
└─────────────────────────────────────────────────────────────┘

The "Clear, Don't Compact" Philosophy

When AI context gets full, most tools try to summarize. Summarization loses information.

Grey Matter does it differently:

  1. Save everything important to persistent memory
  2. Clear the context completely
  3. Resume with a handoff containing exactly what you need

Result: Fresh context, zero information loss.


Commands

Primary

claude++ # Claude with memory
gemini++ # Gemini with memory
ollama++ # Ollama with memory

Memory Management (Optional)

mem stats # 📊 Memory statistics
mem list # 📋 Recent memories
mem search "auth"# 🔍 Search memories
mem forget "secret"# 🗑️ Forget something
mem-viz # 🌐 Visual memory graph (opens browser)

Claude Code Integration

Grey Matter can hook into Claude Code's automatic context compaction. When Claude's context gets full and auto-compacts, Grey Matter saves your state first.

Enable Hooks (One-Time Setup)

gm-hooks install # Add hooks to Claude settings
gm-hooks status # Check if hooks are installed
gm-hooks uninstall # Remove hooks

What Happens

Context getting full...
│
▼
┌─────────────────────────┐
│ Claude: PreCompact │
│ Grey Matter: Saving... │
└─────────────────────────┘
│
▼
┌─────────────────────────┐
│ Context cleared │
│ Memory preserved │
└─────────────────────────┘
│
▼
┌─────────────────────────┐
│ gm-resume │
│ Context restored │
└─────────────────────────┘

Hook Commands

gm-precompact # Manually save state (called automatically by hook)
gm-resume # Get resume context after compaction

Note: Hooks are opt-in. Grey Matter never modifies your Claude settings without explicit gm-hooks install.


Installation

From GitHub (Recommended)

pip install git+https://github.com/AndroidPoet/greymatter.git

From Source

git clone https://github.com/AndroidPoet/greymatter.git
cd greymatter
pip install -e .

Optional: Neural Embeddings

For even better semantic search:

pip install greymatter-ai[neural]

Prerequisites

You need at least one AI CLI installed:

# Claude Code
npm install -g @anthropic-ai/claude-code
# Gemini
pip install google-generativeai
# Ollama
brew install ollama

What Gets Remembered?

Grey Matter automatically detects and remembers:

TypeExamples
Preferences"I prefer dark mode", "Always use TypeScript"
Decisions"We decided to use PostgreSQL", "Going with REST over GraphQL"
Learnings"TIL the API uses JWT", "Found out the bug was in auth"
Important Info"IMPORTANT: Never commit .env", "The prod server is 10.0.0.1"
Problems & Solutions"Fixed the memory leak by...", "The issue was caused by..."

Things that get forgotten:

  • Small talk ("ok", "thanks", "sure")
  • Repeated information (deduplication)
  • Old, unaccessed memories (natural decay)

Project Isolation

Grey Matter automatically isolates memory per project:

cd~/work/api-project
claude++
# Memories: API endpoints, database schema, auth flowcd~/personal/blog
claude++
# Different memories: Blog structure, writing style, deploy process

No commands needed. Just cd and it switches.


Data & Privacy

Your data stays local. Always.

~/.greymatter/
├── memory.db # SQLite database (your memories)
└── projects/ # Per-project memories
├── api-project.db
└── blog.db
  • No cloud sync
  • No telemetry
  • No API calls (except to your chosen AI)
  • Everything in ~/.greymatter/

Troubleshooting

Commands not found

# Add to ~/.zshrc or ~/.bashrc:export PATH="$HOME/.local/bin:$PATH"source~/.zshrc

Memory not persisting

# Check data directory:
ls ~/.greymatter/

Not resuming after /clear

Exit cleanly with Ctrl+C (saves handoff):

claude++ # Use normally# Ctrl+C # Saves state
claude++ # Shows "RESUMING FROM PREVIOUS SESSION"

Architecture

greymatter/
├── brain.py # 🧠 Human-like memory orchestrator
├── understanding.py # 🔍 Intent & emphasis detection
├── memory.py # 💾 SQLite + FTS5 storage
├── embeddings.py # 🎯 TF-IDF / neural semantic search
├── context_manager.py # ♻️ Clear/resume flow
├── claude_hooks.py # 🔗 Claude Code hook integration
├── projects.py # 📁 Per-project isolation
├── prediction.py # 🔮 Context prediction
├── smart.py # ⚡ Token optimization
├── wrapper.py # 🔌 CLI wrapper
└── visualize.py # 🌐 Memory graph UI

Safety & Security

Safe to use:

  • No network calls except to your AI CLI
  • No data leaves your machine
  • No tracking or analytics
  • Open source—read the code

Code quality:

  • 33 tests passing
  • Type hints throughout
  • No external dependencies (stdlib only)
  • Optimized (indexed DB, bounded caches, O(log n) operations)

Inspired By

  • Continuous-Claude — The "clear, don't compact" philosophy
  • Human memory systems — Working memory, encoding, consolidation, retrieval

Contributing

Contributions are welcome! If you've found a bug, have an idea for an improvement, or want to contribute new features, please open an issue or submit a pull request.

Find this repository useful? ❤️

Support it by joining stargazers for this repository. ⭐
Also, follow me on GitHub for my next creations! 🤩

License

MIT — Use it however you want.


Built for developers who are tired of repeating themselves.

About

Human-Like Memory for AI CLIs (Claude, Gemini, Ollama)

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Grey Matter

Grey Matter

Give your AI a brain that actually remembers.

Python 3.8+MIT LicenseZero DependenciesTests Passing

InstallationQuick StartFeaturesHow It WorksCommands


The Problem

Every time you start a new chat with Claude, Gemini, or Ollama:

You: "Remember, I prefer TypeScript and use 2-space indentation"
AI: "Got it!"
[Next session]
You: "What are my coding preferences?"
AI: "I don't have any information about your preferences."

Your AI has amnesia.

The Solution

pip install greymatter-ai
claude++

That's it. Now your AI remembers everything—automatically.

You: "I prefer TypeScript and 2-space indentation"
AI: "Got it!"
[Next session, next week, next month]
You: "What are my preferences?"
AI: "You prefer TypeScript with 2-space indentation."

Quick Start

# Install
pip install git+https://github.com/AndroidPoet/greymatter.git
# Run (that's it!)
claude++ # or gemini++ or ollama++

No configuration. No commands to learn. Just talk naturally.


Features

FeatureWhat it does
🧠 Human-Like MemoryRemembers like you do—important stuff sticks, trivial stuff fades
🔍 Semantic SearchFinds memories by meaning, not just keywords
📁 Project MemoryDifferent project? Different memories. Auto-switches when you cd
🔮 Predictive LoadingPre-loads memories you'll probably need
♻️ Clear & ResumeContext full? Use /clear. Resume seamlessly—nothing lost
🔗 Claude Code HooksAuto-saves context before Claude compacts—never lose state
Zero ConfigWorks out of the box. No API keys, no setup
🪶 Zero DependenciesPure Python stdlib. Optional neural embeddings

How It Works

Grey Matter wraps your AI CLI with a memory layer modeled after human cognition:

 ┌─────────────────┐
│ You speak │
└────────┬────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 👁️ PERCEPTION │
│ Analyzes intent, emphasis, importance │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 🎯 ATTENTION │
│ Focuses on what matters (like "ALWAYS" or "I prefer") │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 💾 ENCODING │
│ Important → Long-term memory │
│ Trivial → Forgotten │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 🔄 RECALL │
│ Relevant memories surface automatically │
└─────────────────────────────────────────────────────────────┘

The "Clear, Don't Compact" Philosophy

When AI context gets full, most tools try to summarize. Summarization loses information.

Grey Matter does it differently:

  1. Save everything important to persistent memory
  2. Clear the context completely
  3. Resume with a handoff containing exactly what you need

Result: Fresh context, zero information loss.


Commands

Primary

claude++ # Claude with memory
gemini++ # Gemini with memory
ollama++ # Ollama with memory

Memory Management (Optional)

mem stats # 📊 Memory statistics
mem list # 📋 Recent memories
mem search "auth"# 🔍 Search memories
mem forget "secret"# 🗑️ Forget something
mem-viz # 🌐 Visual memory graph (opens browser)

Claude Code Integration

Grey Matter can hook into Claude Code's automatic context compaction. When Claude's context gets full and auto-compacts, Grey Matter saves your state first.

Enable Hooks (One-Time Setup)

gm-hooks install # Add hooks to Claude settings
gm-hooks status # Check if hooks are installed
gm-hooks uninstall # Remove hooks

What Happens

Context getting full...
│
▼
┌─────────────────────────┐
│ Claude: PreCompact │
│ Grey Matter: Saving... │
└─────────────────────────┘
│
▼
┌─────────────────────────┐
│ Context cleared │
│ Memory preserved │
└─────────────────────────┘
│
▼
┌─────────────────────────┐
│ gm-resume │
│ Context restored │
└─────────────────────────┘

Hook Commands

gm-precompact # Manually save state (called automatically by hook)
gm-resume # Get resume context after compaction

Note: Hooks are opt-in. Grey Matter never modifies your Claude settings without explicit gm-hooks install.


Installation

From GitHub (Recommended)

pip install git+https://github.com/AndroidPoet/greymatter.git

From Source

git clone https://github.com/AndroidPoet/greymatter.git
cd greymatter
pip install -e .

Optional: Neural Embeddings

For even better semantic search:

pip install greymatter-ai[neural]

Prerequisites

You need at least one AI CLI installed:

# Claude Code
npm install -g @anthropic-ai/claude-code
# Gemini
pip install google-generativeai
# Ollama
brew install ollama

What Gets Remembered?

Grey Matter automatically detects and remembers:

TypeExamples
Preferences"I prefer dark mode", "Always use TypeScript"
Decisions"We decided to use PostgreSQL", "Going with REST over GraphQL"
Learnings"TIL the API uses JWT", "Found out the bug was in auth"
Important Info"IMPORTANT: Never commit .env", "The prod server is 10.0.0.1"
Problems & Solutions"Fixed the memory leak by...", "The issue was caused by..."

Things that get forgotten:

  • Small talk ("ok", "thanks", "sure")
  • Repeated information (deduplication)
  • Old, unaccessed memories (natural decay)

Project Isolation

Grey Matter automatically isolates memory per project:

cd~/work/api-project
claude++
# Memories: API endpoints, database schema, auth flowcd~/personal/blog
claude++
# Different memories: Blog structure, writing style, deploy process

No commands needed. Just cd and it switches.


Data & Privacy

Your data stays local. Always.

~/.greymatter/
├── memory.db # SQLite database (your memories)
└── projects/ # Per-project memories
├── api-project.db
└── blog.db
  • No cloud sync
  • No telemetry
  • No API calls (except to your chosen AI)
  • Everything in ~/.greymatter/

Troubleshooting

Commands not found

# Add to ~/.zshrc or ~/.bashrc:export PATH="$HOME/.local/bin:$PATH"source~/.zshrc

Memory not persisting

# Check data directory:
ls ~/.greymatter/

Not resuming after /clear

Exit cleanly with Ctrl+C (saves handoff):

claude++ # Use normally# Ctrl+C # Saves state
claude++ # Shows "RESUMING FROM PREVIOUS SESSION"

Architecture

greymatter/
├── brain.py # 🧠 Human-like memory orchestrator
├── understanding.py # 🔍 Intent & emphasis detection
├── memory.py # 💾 SQLite + FTS5 storage
├── embeddings.py # 🎯 TF-IDF / neural semantic search
├── context_manager.py # ♻️ Clear/resume flow
├── claude_hooks.py # 🔗 Claude Code hook integration
├── projects.py # 📁 Per-project isolation
├── prediction.py # 🔮 Context prediction
├── smart.py # ⚡ Token optimization
├── wrapper.py # 🔌 CLI wrapper
└── visualize.py # 🌐 Memory graph UI

Safety & Security

Safe to use:

  • No network calls except to your AI CLI
  • No data leaves your machine
  • No tracking or analytics
  • Open source—read the code

Code quality:

  • 33 tests passing
  • Type hints throughout
  • No external dependencies (stdlib only)
  • Optimized (indexed DB, bounded caches, O(log n) operations)

Inspired By

  • Continuous-Claude — The "clear, don't compact" philosophy
  • Human memory systems — Working memory, encoding, consolidation, retrieval

Contributing

Contributions are welcome! If you've found a bug, have an idea for an improvement, or want to contribute new features, please open an issue or submit a pull request.

Find this repository useful? ❤️

Support it by joining stargazers for this repository. ⭐
Also, follow me on GitHub for my next creations! 🤩

License

MIT — Use it however you want.


Built for developers who are tired of repeating themselves.

About

Human-Like Memory for AI CLIs (Claude, Gemini, Ollama)

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Grey Matter

Grey Matter

Give your AI a brain that actually remembers.

Python 3.8+MIT LicenseZero DependenciesTests Passing

InstallationQuick StartFeaturesHow It WorksCommands


The Problem

Every time you start a new chat with Claude, Gemini, or Ollama:

You: "Remember, I prefer TypeScript and use 2-space indentation"
AI: "Got it!"
[Next session]
You: "What are my coding preferences?"
AI: "I don't have any information about your preferences."

Your AI has amnesia.

The Solution

pip install greymatter-ai
claude++

That's it. Now your AI remembers everything—automatically.

You: "I prefer TypeScript and 2-space indentation"
AI: "Got it!"
[Next session, next week, next month]
You: "What are my preferences?"
AI: "You prefer TypeScript with 2-space indentation."

Quick Start

# Install
pip install git+https://github.com/AndroidPoet/greymatter.git
# Run (that's it!)
claude++ # or gemini++ or ollama++

No configuration. No commands to learn. Just talk naturally.


Features

FeatureWhat it does
🧠 Human-Like MemoryRemembers like you do—important stuff sticks, trivial stuff fades
🔍 Semantic SearchFinds memories by meaning, not just keywords
📁 Project MemoryDifferent project? Different memories. Auto-switches when you cd
🔮 Predictive LoadingPre-loads memories you'll probably need
♻️ Clear & ResumeContext full? Use /clear. Resume seamlessly—nothing lost
🔗 Claude Code HooksAuto-saves context before Claude compacts—never lose state
Zero ConfigWorks out of the box. No API keys, no setup
🪶 Zero DependenciesPure Python stdlib. Optional neural embeddings

How It Works

Grey Matter wraps your AI CLI with a memory layer modeled after human cognition:

 ┌─────────────────┐
│ You speak │
└────────┬────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 👁️ PERCEPTION │
│ Analyzes intent, emphasis, importance │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 🎯 ATTENTION │
│ Focuses on what matters (like "ALWAYS" or "I prefer") │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 💾 ENCODING │
│ Important → Long-term memory │
│ Trivial → Forgotten │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 🔄 RECALL │
│ Relevant memories surface automatically │
└─────────────────────────────────────────────────────────────┘

The "Clear, Don't Compact" Philosophy

When AI context gets full, most tools try to summarize. Summarization loses information.

Grey Matter does it differently:

  1. Save everything important to persistent memory
  2. Clear the context completely
  3. Resume with a handoff containing exactly what you need

Result: Fresh context, zero information loss.


Commands

Primary

claude++ # Claude with memory
gemini++ # Gemini with memory
ollama++ # Ollama with memory

Memory Management (Optional)

mem stats # 📊 Memory statistics
mem list # 📋 Recent memories
mem search "auth"# 🔍 Search memories
mem forget "secret"# 🗑️ Forget something
mem-viz # 🌐 Visual memory graph (opens browser)

Claude Code Integration

Grey Matter can hook into Claude Code's automatic context compaction. When Claude's context gets full and auto-compacts, Grey Matter saves your state first.

Enable Hooks (One-Time Setup)

gm-hooks install # Add hooks to Claude settings
gm-hooks status # Check if hooks are installed
gm-hooks uninstall # Remove hooks

What Happens

Context getting full...
│
▼
┌─────────────────────────┐
│ Claude: PreCompact │
│ Grey Matter: Saving... │
└─────────────────────────┘
│
▼
┌─────────────────────────┐
│ Context cleared │
│ Memory preserved │
└─────────────────────────┘
│
▼
┌─────────────────────────┐
│ gm-resume │
│ Context restored │
└─────────────────────────┘

Hook Commands

gm-precompact # Manually save state (called automatically by hook)
gm-resume # Get resume context after compaction

Note: Hooks are opt-in. Grey Matter never modifies your Claude settings without explicit gm-hooks install.


Installation

From GitHub (Recommended)

pip install git+https://github.com/AndroidPoet/greymatter.git

From Source

git clone https://github.com/AndroidPoet/greymatter.git
cd greymatter
pip install -e .

Optional: Neural Embeddings

For even better semantic search:

pip install greymatter-ai[neural]

Prerequisites

You need at least one AI CLI installed:

# Claude Code
npm install -g @anthropic-ai/claude-code
# Gemini
pip install google-generativeai
# Ollama
brew install ollama

What Gets Remembered?

Grey Matter automatically detects and remembers:

TypeExamples
Preferences"I prefer dark mode", "Always use TypeScript"
Decisions"We decided to use PostgreSQL", "Going with REST over GraphQL"
Learnings"TIL the API uses JWT", "Found out the bug was in auth"
Important Info"IMPORTANT: Never commit .env", "The prod server is 10.0.0.1"
Problems & Solutions"Fixed the memory leak by...", "The issue was caused by..."

Things that get forgotten:

  • Small talk ("ok", "thanks", "sure")
  • Repeated information (deduplication)
  • Old, unaccessed memories (natural decay)

Project Isolation

Grey Matter automatically isolates memory per project:

cd~/work/api-project
claude++
# Memories: API endpoints, database schema, auth flowcd~/personal/blog
claude++
# Different memories: Blog structure, writing style, deploy process

No commands needed. Just cd and it switches.


Data & Privacy

Your data stays local. Always.

~/.greymatter/
├── memory.db # SQLite database (your memories)
└── projects/ # Per-project memories
├── api-project.db
└── blog.db
  • No cloud sync
  • No telemetry
  • No API calls (except to your chosen AI)
  • Everything in ~/.greymatter/

Troubleshooting

Commands not found

# Add to ~/.zshrc or ~/.bashrc:export PATH="$HOME/.local/bin:$PATH"source~/.zshrc

Memory not persisting

# Check data directory:
ls ~/.greymatter/

Not resuming after /clear

Exit cleanly with Ctrl+C (saves handoff):

claude++ # Use normally# Ctrl+C # Saves state
claude++ # Shows "RESUMING FROM PREVIOUS SESSION"

Architecture

greymatter/
├── brain.py # 🧠 Human-like memory orchestrator
├── understanding.py # 🔍 Intent & emphasis detection
├── memory.py # 💾 SQLite + FTS5 storage
├── embeddings.py # 🎯 TF-IDF / neural semantic search
├── context_manager.py # ♻️ Clear/resume flow
├── claude_hooks.py # 🔗 Claude Code hook integration
├── projects.py # 📁 Per-project isolation
├── prediction.py # 🔮 Context prediction
├── smart.py # ⚡ Token optimization
├── wrapper.py # 🔌 CLI wrapper
└── visualize.py # 🌐 Memory graph UI

Safety & Security

Safe to use:

  • No network calls except to your AI CLI
  • No data leaves your machine
  • No tracking or analytics
  • Open source—read the code

Code quality:

  • 33 tests passing
  • Type hints throughout
  • No external dependencies (stdlib only)
  • Optimized (indexed DB, bounded caches, O(log n) operations)

Inspired By

  • Continuous-Claude — The "clear, don't compact" philosophy
  • Human memory systems — Working memory, encoding, consolidation, retrieval

Contributing

Contributions are welcome! If you've found a bug, have an idea for an improvement, or want to contribute new features, please open an issue or submit a pull request.

Find this repository useful? ❤️

Support it by joining stargazers for this repository. ⭐
Also, follow me on GitHub for my next creations! 🤩

License

MIT — Use it however you want.


Built for developers who are tired of repeating themselves.

About

Human-Like Memory for AI CLIs (Claude, Gemini, Ollama)

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Grey Matter

Grey Matter

Give your AI a brain that actually remembers.

Python 3.8+MIT LicenseZero DependenciesTests Passing

InstallationQuick StartFeaturesHow It WorksCommands


The Problem

Every time you start a new chat with Claude, Gemini, or Ollama:

You: "Remember, I prefer TypeScript and use 2-space indentation"
AI: "Got it!"
[Next session]
You: "What are my coding preferences?"
AI: "I don't have any information about your preferences."

Your AI has amnesia.

The Solution

pip install greymatter-ai
claude++

That's it. Now your AI remembers everything—automatically.

You: "I prefer TypeScript and 2-space indentation"
AI: "Got it!"
[Next session, next week, next month]
You: "What are my preferences?"
AI: "You prefer TypeScript with 2-space indentation."

Quick Start

# Install
pip install git+https://github.com/AndroidPoet/greymatter.git
# Run (that's it!)
claude++ # or gemini++ or ollama++

No configuration. No commands to learn. Just talk naturally.


Features

FeatureWhat it does
🧠 Human-Like MemoryRemembers like you do—important stuff sticks, trivial stuff fades
🔍 Semantic SearchFinds memories by meaning, not just keywords
📁 Project MemoryDifferent project? Different memories. Auto-switches when you cd
🔮 Predictive LoadingPre-loads memories you'll probably need
♻️ Clear & ResumeContext full? Use /clear. Resume seamlessly—nothing lost
🔗 Claude Code HooksAuto-saves context before Claude compacts—never lose state
Zero ConfigWorks out of the box. No API keys, no setup
🪶 Zero DependenciesPure Python stdlib. Optional neural embeddings

How It Works

Grey Matter wraps your AI CLI with a memory layer modeled after human cognition:

 ┌─────────────────┐
│ You speak │
└────────┬────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 👁️ PERCEPTION │
│ Analyzes intent, emphasis, importance │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 🎯 ATTENTION │
│ Focuses on what matters (like "ALWAYS" or "I prefer") │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 💾 ENCODING │
│ Important → Long-term memory │
│ Trivial → Forgotten │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 🔄 RECALL │
│ Relevant memories surface automatically │
└─────────────────────────────────────────────────────────────┘

The "Clear, Don't Compact" Philosophy

When AI context gets full, most tools try to summarize. Summarization loses information.

Grey Matter does it differently:

  1. Save everything important to persistent memory
  2. Clear the context completely
  3. Resume with a handoff containing exactly what you need

Result: Fresh context, zero information loss.


Commands

Primary

claude++ # Claude with memory
gemini++ # Gemini with memory
ollama++ # Ollama with memory

Memory Management (Optional)

mem stats # 📊 Memory statistics
mem list # 📋 Recent memories
mem search "auth"# 🔍 Search memories
mem forget "secret"# 🗑️ Forget something
mem-viz # 🌐 Visual memory graph (opens browser)

Claude Code Integration

Grey Matter can hook into Claude Code's automatic context compaction. When Claude's context gets full and auto-compacts, Grey Matter saves your state first.

Enable Hooks (One-Time Setup)

gm-hooks install # Add hooks to Claude settings
gm-hooks status # Check if hooks are installed
gm-hooks uninstall # Remove hooks

What Happens

Context getting full...
│
▼
┌─────────────────────────┐
│ Claude: PreCompact │
│ Grey Matter: Saving... │
└─────────────────────────┘
│
▼
┌─────────────────────────┐
│ Context cleared │
│ Memory preserved │
└─────────────────────────┘
│
▼
┌─────────────────────────┐
│ gm-resume │
│ Context restored │
└─────────────────────────┘

Hook Commands

gm-precompact # Manually save state (called automatically by hook)
gm-resume # Get resume context after compaction

Note: Hooks are opt-in. Grey Matter never modifies your Claude settings without explicit gm-hooks install.


Installation

From GitHub (Recommended)

pip install git+https://github.com/AndroidPoet/greymatter.git

From Source

git clone https://github.com/AndroidPoet/greymatter.git
cd greymatter
pip install -e .

Optional: Neural Embeddings

For even better semantic search:

pip install greymatter-ai[neural]

Prerequisites

You need at least one AI CLI installed:

# Claude Code
npm install -g @anthropic-ai/claude-code
# Gemini
pip install google-generativeai
# Ollama
brew install ollama

What Gets Remembered?

Grey Matter automatically detects and remembers:

TypeExamples
Preferences"I prefer dark mode", "Always use TypeScript"
Decisions"We decided to use PostgreSQL", "Going with REST over GraphQL"
Learnings"TIL the API uses JWT", "Found out the bug was in auth"
Important Info"IMPORTANT: Never commit .env", "The prod server is 10.0.0.1"
Problems & Solutions"Fixed the memory leak by...", "The issue was caused by..."

Things that get forgotten:

  • Small talk ("ok", "thanks", "sure")
  • Repeated information (deduplication)
  • Old, unaccessed memories (natural decay)

Project Isolation

Grey Matter automatically isolates memory per project:

cd~/work/api-project
claude++
# Memories: API endpoints, database schema, auth flowcd~/personal/blog
claude++
# Different memories: Blog structure, writing style, deploy process

No commands needed. Just cd and it switches.


Data & Privacy

Your data stays local. Always.

~/.greymatter/
├── memory.db # SQLite database (your memories)
└── projects/ # Per-project memories
├── api-project.db
└── blog.db
  • No cloud sync
  • No telemetry
  • No API calls (except to your chosen AI)
  • Everything in ~/.greymatter/

Troubleshooting

Commands not found

# Add to ~/.zshrc or ~/.bashrc:export PATH="$HOME/.local/bin:$PATH"source~/.zshrc

Memory not persisting

# Check data directory:
ls ~/.greymatter/

Not resuming after /clear

Exit cleanly with Ctrl+C (saves handoff):

claude++ # Use normally# Ctrl+C # Saves state
claude++ # Shows "RESUMING FROM PREVIOUS SESSION"

Architecture

greymatter/
├── brain.py # 🧠 Human-like memory orchestrator
├── understanding.py # 🔍 Intent & emphasis detection
├── memory.py # 💾 SQLite + FTS5 storage
├── embeddings.py # 🎯 TF-IDF / neural semantic search
├── context_manager.py # ♻️ Clear/resume flow
├── claude_hooks.py # 🔗 Claude Code hook integration
├── projects.py # 📁 Per-project isolation
├── prediction.py # 🔮 Context prediction
├── smart.py # ⚡ Token optimization
├── wrapper.py # 🔌 CLI wrapper
└── visualize.py # 🌐 Memory graph UI

Safety & Security

Safe to use:

  • No network calls except to your AI CLI
  • No data leaves your machine
  • No tracking or analytics
  • Open source—read the code

Code quality:

  • 33 tests passing
  • Type hints throughout
  • No external dependencies (stdlib only)
  • Optimized (indexed DB, bounded caches, O(log n) operations)

Inspired By

  • Continuous-Claude — The "clear, don't compact" philosophy
  • Human memory systems — Working memory, encoding, consolidation, retrieval

Contributing

Contributions are welcome! If you've found a bug, have an idea for an improvement, or want to contribute new features, please open an issue or submit a pull request.

Find this repository useful? ❤️

Support it by joining stargazers for this repository. ⭐
Also, follow me on GitHub for my next creations! 🤩

License

MIT — Use it however you want.


Built for developers who are tired of repeating themselves.

About

Human-Like Memory for AI CLIs (Claude, Gemini, Ollama)

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Grey Matter

Grey Matter

Give your AI a brain that actually remembers.

Python 3.8+MIT LicenseZero DependenciesTests Passing

InstallationQuick StartFeaturesHow It WorksCommands


The Problem

Every time you start a new chat with Claude, Gemini, or Ollama:

You: "Remember, I prefer TypeScript and use 2-space indentation"
AI: "Got it!"
[Next session]
You: "What are my coding preferences?"
AI: "I don't have any information about your preferences."

Your AI has amnesia.

The Solution

pip install greymatter-ai
claude++

That's it. Now your AI remembers everything—automatically.

You: "I prefer TypeScript and 2-space indentation"
AI: "Got it!"
[Next session, next week, next month]
You: "What are my preferences?"
AI: "You prefer TypeScript with 2-space indentation."

Quick Start

# Install
pip install git+https://github.com/AndroidPoet/greymatter.git
# Run (that's it!)
claude++ # or gemini++ or ollama++

No configuration. No commands to learn. Just talk naturally.


Features

FeatureWhat it does
🧠 Human-Like MemoryRemembers like you do—important stuff sticks, trivial stuff fades
🔍 Semantic SearchFinds memories by meaning, not just keywords
📁 Project MemoryDifferent project? Different memories. Auto-switches when you cd
🔮 Predictive LoadingPre-loads memories you'll probably need
♻️ Clear & ResumeContext full? Use /clear. Resume seamlessly—nothing lost
🔗 Claude Code HooksAuto-saves context before Claude compacts—never lose state
Zero ConfigWorks out of the box. No API keys, no setup
🪶 Zero DependenciesPure Python stdlib. Optional neural embeddings

How It Works

Grey Matter wraps your AI CLI with a memory layer modeled after human cognition:

 ┌─────────────────┐
│ You speak │
└────────┬────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 👁️ PERCEPTION │
│ Analyzes intent, emphasis, importance │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 🎯 ATTENTION │
│ Focuses on what matters (like "ALWAYS" or "I prefer") │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 💾 ENCODING │
│ Important → Long-term memory │
│ Trivial → Forgotten │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 🔄 RECALL │
│ Relevant memories surface automatically │
└─────────────────────────────────────────────────────────────┘

The "Clear, Don't Compact" Philosophy

When AI context gets full, most tools try to summarize. Summarization loses information.

Grey Matter does it differently:

  1. Save everything important to persistent memory
  2. Clear the context completely
  3. Resume with a handoff containing exactly what you need

Result: Fresh context, zero information loss.


Commands

Primary

claude++ # Claude with memory
gemini++ # Gemini with memory
ollama++ # Ollama with memory

Memory Management (Optional)

mem stats # 📊 Memory statistics
mem list # 📋 Recent memories
mem search "auth"# 🔍 Search memories
mem forget "secret"# 🗑️ Forget something
mem-viz # 🌐 Visual memory graph (opens browser)

Claude Code Integration

Grey Matter can hook into Claude Code's automatic context compaction. When Claude's context gets full and auto-compacts, Grey Matter saves your state first.

Enable Hooks (One-Time Setup)

gm-hooks install # Add hooks to Claude settings
gm-hooks status # Check if hooks are installed
gm-hooks uninstall # Remove hooks

What Happens

Context getting full...
│
▼
┌─────────────────────────┐
│ Claude: PreCompact │
│ Grey Matter: Saving... │
└─────────────────────────┘
│
▼
┌─────────────────────────┐
│ Context cleared │
│ Memory preserved │
└─────────────────────────┘
│
▼
┌─────────────────────────┐
│ gm-resume │
│ Context restored │
└─────────────────────────┘

Hook Commands

gm-precompact # Manually save state (called automatically by hook)
gm-resume # Get resume context after compaction

Note: Hooks are opt-in. Grey Matter never modifies your Claude settings without explicit gm-hooks install.


Installation

From GitHub (Recommended)

pip install git+https://github.com/AndroidPoet/greymatter.git

From Source

git clone https://github.com/AndroidPoet/greymatter.git
cd greymatter
pip install -e .

Optional: Neural Embeddings

For even better semantic search:

pip install greymatter-ai[neural]

Prerequisites

You need at least one AI CLI installed:

# Claude Code
npm install -g @anthropic-ai/claude-code
# Gemini
pip install google-generativeai
# Ollama
brew install ollama

What Gets Remembered?

Grey Matter automatically detects and remembers:

TypeExamples
Preferences"I prefer dark mode", "Always use TypeScript"
Decisions"We decided to use PostgreSQL", "Going with REST over GraphQL"
Learnings"TIL the API uses JWT", "Found out the bug was in auth"
Important Info"IMPORTANT: Never commit .env", "The prod server is 10.0.0.1"
Problems & Solutions"Fixed the memory leak by...", "The issue was caused by..."

Things that get forgotten:

  • Small talk ("ok", "thanks", "sure")
  • Repeated information (deduplication)
  • Old, unaccessed memories (natural decay)

Project Isolation

Grey Matter automatically isolates memory per project:

cd~/work/api-project
claude++
# Memories: API endpoints, database schema, auth flowcd~/personal/blog
claude++
# Different memories: Blog structure, writing style, deploy process

No commands needed. Just cd and it switches.


Data & Privacy

Your data stays local. Always.

~/.greymatter/
├── memory.db # SQLite database (your memories)
└── projects/ # Per-project memories
├── api-project.db
└── blog.db
  • No cloud sync
  • No telemetry
  • No API calls (except to your chosen AI)
  • Everything in ~/.greymatter/

Troubleshooting

Commands not found

# Add to ~/.zshrc or ~/.bashrc:export PATH="$HOME/.local/bin:$PATH"source~/.zshrc

Memory not persisting

# Check data directory:
ls ~/.greymatter/

Not resuming after /clear

Exit cleanly with Ctrl+C (saves handoff):

claude++ # Use normally# Ctrl+C # Saves state
claude++ # Shows "RESUMING FROM PREVIOUS SESSION"

Architecture

greymatter/
├── brain.py # 🧠 Human-like memory orchestrator
├── understanding.py # 🔍 Intent & emphasis detection
├── memory.py # 💾 SQLite + FTS5 storage
├── embeddings.py # 🎯 TF-IDF / neural semantic search
├── context_manager.py # ♻️ Clear/resume flow
├── claude_hooks.py # 🔗 Claude Code hook integration
├── projects.py # 📁 Per-project isolation
├── prediction.py # 🔮 Context prediction
├── smart.py # ⚡ Token optimization
├── wrapper.py # 🔌 CLI wrapper
└── visualize.py # 🌐 Memory graph UI

Safety & Security

Safe to use:

  • No network calls except to your AI CLI
  • No data leaves your machine
  • No tracking or analytics
  • Open source—read the code

Code quality:

  • 33 tests passing
  • Type hints throughout
  • No external dependencies (stdlib only)
  • Optimized (indexed DB, bounded caches, O(log n) operations)

Inspired By

  • Continuous-Claude — The "clear, don't compact" philosophy
  • Human memory systems — Working memory, encoding, consolidation, retrieval

Contributing

Contributions are welcome! If you've found a bug, have an idea for an improvement, or want to contribute new features, please open an issue or submit a pull request.

Find this repository useful? ❤️

Support it by joining stargazers for this repository. ⭐
Also, follow me on GitHub for my next creations! 🤩

License

MIT — Use it however you want.


Built for developers who are tired of repeating themselves.

About

Human-Like Memory for AI CLIs (Claude, Gemini, Ollama)

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Grey Matter

Grey Matter

Give your AI a brain that actually remembers.

Python 3.8+MIT LicenseZero DependenciesTests Passing

InstallationQuick StartFeaturesHow It WorksCommands


The Problem

Every time you start a new chat with Claude, Gemini, or Ollama:

You: "Remember, I prefer TypeScript and use 2-space indentation"
AI: "Got it!"
[Next session]
You: "What are my coding preferences?"
AI: "I don't have any information about your preferences."

Your AI has amnesia.

The Solution

pip install greymatter-ai
claude++

That's it. Now your AI remembers everything—automatically.

You: "I prefer TypeScript and 2-space indentation"
AI: "Got it!"
[Next session, next week, next month]
You: "What are my preferences?"
AI: "You prefer TypeScript with 2-space indentation."

Quick Start

# Install
pip install git+https://github.com/AndroidPoet/greymatter.git
# Run (that's it!)
claude++ # or gemini++ or ollama++

No configuration. No commands to learn. Just talk naturally.


Features

FeatureWhat it does
🧠 Human-Like MemoryRemembers like you do—important stuff sticks, trivial stuff fades
🔍 Semantic SearchFinds memories by meaning, not just keywords
📁 Project MemoryDifferent project? Different memories. Auto-switches when you cd
🔮 Predictive LoadingPre-loads memories you'll probably need
♻️ Clear & ResumeContext full? Use /clear. Resume seamlessly—nothing lost
🔗 Claude Code HooksAuto-saves context before Claude compacts—never lose state
Zero ConfigWorks out of the box. No API keys, no setup
🪶 Zero DependenciesPure Python stdlib. Optional neural embeddings

How It Works

Grey Matter wraps your AI CLI with a memory layer modeled after human cognition:

 ┌─────────────────┐
│ You speak │
└────────┬────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 👁️ PERCEPTION │
│ Analyzes intent, emphasis, importance │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 🎯 ATTENTION │
│ Focuses on what matters (like "ALWAYS" or "I prefer") │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 💾 ENCODING │
│ Important → Long-term memory │
│ Trivial → Forgotten │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 🔄 RECALL │
│ Relevant memories surface automatically │
└─────────────────────────────────────────────────────────────┘

The "Clear, Don't Compact" Philosophy

When AI context gets full, most tools try to summarize. Summarization loses information.

Grey Matter does it differently:

  1. Save everything important to persistent memory
  2. Clear the context completely
  3. Resume with a handoff containing exactly what you need

Result: Fresh context, zero information loss.


Commands

Primary

claude++ # Claude with memory
gemini++ # Gemini with memory
ollama++ # Ollama with memory

Memory Management (Optional)

mem stats # 📊 Memory statistics
mem list # 📋 Recent memories
mem search "auth"# 🔍 Search memories
mem forget "secret"# 🗑️ Forget something
mem-viz # 🌐 Visual memory graph (opens browser)

Claude Code Integration

Grey Matter can hook into Claude Code's automatic context compaction. When Claude's context gets full and auto-compacts, Grey Matter saves your state first.

Enable Hooks (One-Time Setup)

gm-hooks install # Add hooks to Claude settings
gm-hooks status # Check if hooks are installed
gm-hooks uninstall # Remove hooks

What Happens

Context getting full...
│
▼
┌─────────────────────────┐
│ Claude: PreCompact │
│ Grey Matter: Saving... │
└─────────────────────────┘
│
▼
┌─────────────────────────┐
│ Context cleared │
│ Memory preserved │
└─────────────────────────┘
│
▼
┌─────────────────────────┐
│ gm-resume │
│ Context restored │
└─────────────────────────┘

Hook Commands

gm-precompact # Manually save state (called automatically by hook)
gm-resume # Get resume context after compaction

Note: Hooks are opt-in. Grey Matter never modifies your Claude settings without explicit gm-hooks install.


Installation

From GitHub (Recommended)

pip install git+https://github.com/AndroidPoet/greymatter.git

From Source

git clone https://github.com/AndroidPoet/greymatter.git
cd greymatter
pip install -e .

Optional: Neural Embeddings

For even better semantic search:

pip install greymatter-ai[neural]

Prerequisites

You need at least one AI CLI installed:

# Claude Code
npm install -g @anthropic-ai/claude-code
# Gemini
pip install google-generativeai
# Ollama
brew install ollama

What Gets Remembered?

Grey Matter automatically detects and remembers:

TypeExamples
Preferences"I prefer dark mode", "Always use TypeScript"
Decisions"We decided to use PostgreSQL", "Going with REST over GraphQL"
Learnings"TIL the API uses JWT", "Found out the bug was in auth"
Important Info"IMPORTANT: Never commit .env", "The prod server is 10.0.0.1"
Problems & Solutions"Fixed the memory leak by...", "The issue was caused by..."

Things that get forgotten:

  • Small talk ("ok", "thanks", "sure")
  • Repeated information (deduplication)
  • Old, unaccessed memories (natural decay)

Project Isolation

Grey Matter automatically isolates memory per project:

cd~/work/api-project
claude++
# Memories: API endpoints, database schema, auth flowcd~/personal/blog
claude++
# Different memories: Blog structure, writing style, deploy process

No commands needed. Just cd and it switches.


Data & Privacy

Your data stays local. Always.

~/.greymatter/
├── memory.db # SQLite database (your memories)
└── projects/ # Per-project memories
├── api-project.db
└── blog.db
  • No cloud sync
  • No telemetry
  • No API calls (except to your chosen AI)
  • Everything in ~/.greymatter/

Troubleshooting

Commands not found

# Add to ~/.zshrc or ~/.bashrc:export PATH="$HOME/.local/bin:$PATH"source~/.zshrc

Memory not persisting

# Check data directory:
ls ~/.greymatter/

Not resuming after /clear

Exit cleanly with Ctrl+C (saves handoff):

claude++ # Use normally# Ctrl+C # Saves state
claude++ # Shows "RESUMING FROM PREVIOUS SESSION"

Architecture

greymatter/
├── brain.py # 🧠 Human-like memory orchestrator
├── understanding.py # 🔍 Intent & emphasis detection
├── memory.py # 💾 SQLite + FTS5 storage
├── embeddings.py # 🎯 TF-IDF / neural semantic search
├── context_manager.py # ♻️ Clear/resume flow
├── claude_hooks.py # 🔗 Claude Code hook integration
├── projects.py # 📁 Per-project isolation
├── prediction.py # 🔮 Context prediction
├── smart.py # ⚡ Token optimization
├── wrapper.py # 🔌 CLI wrapper
└── visualize.py # 🌐 Memory graph UI

Safety & Security

Safe to use:

  • No network calls except to your AI CLI
  • No data leaves your machine
  • No tracking or analytics
  • Open source—read the code

Code quality:

  • 33 tests passing
  • Type hints throughout
  • No external dependencies (stdlib only)
  • Optimized (indexed DB, bounded caches, O(log n) operations)

Inspired By

  • Continuous-Claude — The "clear, don't compact" philosophy
  • Human memory systems — Working memory, encoding, consolidation, retrieval

Contributing

Contributions are welcome! If you've found a bug, have an idea for an improvement, or want to contribute new features, please open an issue or submit a pull request.

Find this repository useful? ❤️

Support it by joining stargazers for this repository. ⭐
Also, follow me on GitHub for my next creations! 🤩

License

MIT — Use it however you want.


Built for developers who are tired of repeating themselves.

About

Human-Like Memory for AI CLIs (Claude, Gemini, Ollama)

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Grey Matter

Grey Matter

Give your AI a brain that actually remembers.

Python 3.8+MIT LicenseZero DependenciesTests Passing

InstallationQuick StartFeaturesHow It WorksCommands


The Problem

Every time you start a new chat with Claude, Gemini, or Ollama:

You: "Remember, I prefer TypeScript and use 2-space indentation"
AI: "Got it!"
[Next session]
You: "What are my coding preferences?"
AI: "I don't have any information about your preferences."

Your AI has amnesia.

The Solution

pip install greymatter-ai
claude++

That's it. Now your AI remembers everything—automatically.

You: "I prefer TypeScript and 2-space indentation"
AI: "Got it!"
[Next session, next week, next month]
You: "What are my preferences?"
AI: "You prefer TypeScript with 2-space indentation."

Quick Start

# Install
pip install git+https://github.com/AndroidPoet/greymatter.git
# Run (that's it!)
claude++ # or gemini++ or ollama++

No configuration. No commands to learn. Just talk naturally.


Features

FeatureWhat it does
🧠 Human-Like MemoryRemembers like you do—important stuff sticks, trivial stuff fades
🔍 Semantic SearchFinds memories by meaning, not just keywords
📁 Project MemoryDifferent project? Different memories. Auto-switches when you cd
🔮 Predictive LoadingPre-loads memories you'll probably need
♻️ Clear & ResumeContext full? Use /clear. Resume seamlessly—nothing lost
🔗 Claude Code HooksAuto-saves context before Claude compacts—never lose state
Zero ConfigWorks out of the box. No API keys, no setup
🪶 Zero DependenciesPure Python stdlib. Optional neural embeddings

How It Works

Grey Matter wraps your AI CLI with a memory layer modeled after human cognition:

 ┌─────────────────┐
│ You speak │
└────────┬────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 👁️ PERCEPTION │
│ Analyzes intent, emphasis, importance │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 🎯 ATTENTION │
│ Focuses on what matters (like "ALWAYS" or "I prefer") │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 💾 ENCODING │
│ Important → Long-term memory │
│ Trivial → Forgotten │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 🔄 RECALL │
│ Relevant memories surface automatically │
└─────────────────────────────────────────────────────────────┘

The "Clear, Don't Compact" Philosophy

When AI context gets full, most tools try to summarize. Summarization loses information.

Grey Matter does it differently:

  1. Save everything important to persistent memory
  2. Clear the context completely
  3. Resume with a handoff containing exactly what you need

Result: Fresh context, zero information loss.


Commands

Primary

claude++ # Claude with memory
gemini++ # Gemini with memory
ollama++ # Ollama with memory

Memory Management (Optional)

mem stats # 📊 Memory statistics
mem list # 📋 Recent memories
mem search "auth"# 🔍 Search memories
mem forget "secret"# 🗑️ Forget something
mem-viz # 🌐 Visual memory graph (opens browser)

Claude Code Integration

Grey Matter can hook into Claude Code's automatic context compaction. When Claude's context gets full and auto-compacts, Grey Matter saves your state first.

Enable Hooks (One-Time Setup)

gm-hooks install # Add hooks to Claude settings
gm-hooks status # Check if hooks are installed
gm-hooks uninstall # Remove hooks

What Happens

Context getting full...
│
▼
┌─────────────────────────┐
│ Claude: PreCompact │
│ Grey Matter: Saving... │
└─────────────────────────┘
│
▼
┌─────────────────────────┐
│ Context cleared │
│ Memory preserved │
└─────────────────────────┘
│
▼
┌─────────────────────────┐
│ gm-resume │
│ Context restored │
└─────────────────────────┘

Hook Commands

gm-precompact # Manually save state (called automatically by hook)
gm-resume # Get resume context after compaction

Note: Hooks are opt-in. Grey Matter never modifies your Claude settings without explicit gm-hooks install.


Installation

From GitHub (Recommended)

pip install git+https://github.com/AndroidPoet/greymatter.git

From Source

git clone https://github.com/AndroidPoet/greymatter.git
cd greymatter
pip install -e .

Optional: Neural Embeddings

For even better semantic search:

pip install greymatter-ai[neural]

Prerequisites

You need at least one AI CLI installed:

# Claude Code
npm install -g @anthropic-ai/claude-code
# Gemini
pip install google-generativeai
# Ollama
brew install ollama

What Gets Remembered?

Grey Matter automatically detects and remembers:

TypeExamples
Preferences"I prefer dark mode", "Always use TypeScript"
Decisions"We decided to use PostgreSQL", "Going with REST over GraphQL"
Learnings"TIL the API uses JWT", "Found out the bug was in auth"
Important Info"IMPORTANT: Never commit .env", "The prod server is 10.0.0.1"
Problems & Solutions"Fixed the memory leak by...", "The issue was caused by..."

Things that get forgotten:

  • Small talk ("ok", "thanks", "sure")
  • Repeated information (deduplication)
  • Old, unaccessed memories (natural decay)

Project Isolation

Grey Matter automatically isolates memory per project:

cd~/work/api-project
claude++
# Memories: API endpoints, database schema, auth flowcd~/personal/blog
claude++
# Different memories: Blog structure, writing style, deploy process

No commands needed. Just cd and it switches.


Data & Privacy

Your data stays local. Always.

~/.greymatter/
├── memory.db # SQLite database (your memories)
└── projects/ # Per-project memories
├── api-project.db
└── blog.db
  • No cloud sync
  • No telemetry
  • No API calls (except to your chosen AI)
  • Everything in ~/.greymatter/

Troubleshooting

Commands not found

# Add to ~/.zshrc or ~/.bashrc:export PATH="$HOME/.local/bin:$PATH"source~/.zshrc

Memory not persisting

# Check data directory:
ls ~/.greymatter/

Not resuming after /clear

Exit cleanly with Ctrl+C (saves handoff):

claude++ # Use normally# Ctrl+C # Saves state
claude++ # Shows "RESUMING FROM PREVIOUS SESSION"

Architecture

greymatter/
├── brain.py # 🧠 Human-like memory orchestrator
├── understanding.py # 🔍 Intent & emphasis detection
├── memory.py # 💾 SQLite + FTS5 storage
├── embeddings.py # 🎯 TF-IDF / neural semantic search
├── context_manager.py # ♻️ Clear/resume flow
├── claude_hooks.py # 🔗 Claude Code hook integration
├── projects.py # 📁 Per-project isolation
├── prediction.py # 🔮 Context prediction
├── smart.py # ⚡ Token optimization
├── wrapper.py # 🔌 CLI wrapper
└── visualize.py # 🌐 Memory graph UI

Safety & Security

Safe to use:

  • No network calls except to your AI CLI
  • No data leaves your machine
  • No tracking or analytics
  • Open source—read the code

Code quality:

  • 33 tests passing
  • Type hints throughout
  • No external dependencies (stdlib only)
  • Optimized (indexed DB, bounded caches, O(log n) operations)

Inspired By

  • Continuous-Claude — The "clear, don't compact" philosophy
  • Human memory systems — Working memory, encoding, consolidation, retrieval

Contributing

Contributions are welcome! If you've found a bug, have an idea for an improvement, or want to contribute new features, please open an issue or submit a pull request.

Find this repository useful? ❤️

Support it by joining stargazers for this repository. ⭐
Also, follow me on GitHub for my next creations! 🤩

License

MIT — Use it however you want.


Built for developers who are tired of repeating themselves.

About

Human-Like Memory for AI CLIs (Claude, Gemini, Ollama)

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Grey Matter

Grey Matter

Give your AI a brain that actually remembers.

Python 3.8+MIT LicenseZero DependenciesTests Passing

InstallationQuick StartFeaturesHow It WorksCommands


The Problem

Every time you start a new chat with Claude, Gemini, or Ollama:

You: "Remember, I prefer TypeScript and use 2-space indentation"
AI: "Got it!"
[Next session]
You: "What are my coding preferences?"
AI: "I don't have any information about your preferences."

Your AI has amnesia.

The Solution

pip install greymatter-ai
claude++

That's it. Now your AI remembers everything—automatically.

You: "I prefer TypeScript and 2-space indentation"
AI: "Got it!"
[Next session, next week, next month]
You: "What are my preferences?"
AI: "You prefer TypeScript with 2-space indentation."

Quick Start

# Install
pip install git+https://github.com/AndroidPoet/greymatter.git
# Run (that's it!)
claude++ # or gemini++ or ollama++

No configuration. No commands to learn. Just talk naturally.


Features

FeatureWhat it does
🧠 Human-Like MemoryRemembers like you do—important stuff sticks, trivial stuff fades
🔍 Semantic SearchFinds memories by meaning, not just keywords
📁 Project MemoryDifferent project? Different memories. Auto-switches when you cd
🔮 Predictive LoadingPre-loads memories you'll probably need
♻️ Clear & ResumeContext full? Use /clear. Resume seamlessly—nothing lost
🔗 Claude Code HooksAuto-saves context before Claude compacts—never lose state
Zero ConfigWorks out of the box. No API keys, no setup
🪶 Zero DependenciesPure Python stdlib. Optional neural embeddings

How It Works

Grey Matter wraps your AI CLI with a memory layer modeled after human cognition:

 ┌─────────────────┐
│ You speak │
└────────┬────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 👁️ PERCEPTION │
│ Analyzes intent, emphasis, importance │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 🎯 ATTENTION │
│ Focuses on what matters (like "ALWAYS" or "I prefer") │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 💾 ENCODING │
│ Important → Long-term memory │
│ Trivial → Forgotten │
└─────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 🔄 RECALL │
│ Relevant memories surface automatically │
└─────────────────────────────────────────────────────────────┘

The "Clear, Don't Compact" Philosophy

When AI context gets full, most tools try to summarize. Summarization loses information.

Grey Matter does it differently:

  1. Save everything important to persistent memory
  2. Clear the context completely
  3. Resume with a handoff containing exactly what you need

Result: Fresh context, zero information loss.


Commands

Primary

claude++ # Claude with memory
gemini++ # Gemini with memory
ollama++ # Ollama with memory

Memory Management (Optional)

mem stats # 📊 Memory statistics
mem list # 📋 Recent memories
mem search "auth"# 🔍 Search memories
mem forget "secret"# 🗑️ Forget something
mem-viz # 🌐 Visual memory graph (opens browser)

Claude Code Integration

Grey Matter can hook into Claude Code's automatic context compaction. When Claude's context gets full and auto-compacts, Grey Matter saves your state first.

Enable Hooks (One-Time Setup)

gm-hooks install # Add hooks to Claude settings
gm-hooks status # Check if hooks are installed
gm-hooks uninstall # Remove hooks

What Happens

Context getting full...
│
▼
┌─────────────────────────┐
│ Claude: PreCompact │
│ Grey Matter: Saving... │
└─────────────────────────┘
│
▼
┌─────────────────────────┐
│ Context cleared │
│ Memory preserved │
└─────────────────────────┘
│
▼
┌─────────────────────────┐
│ gm-resume │
│ Context restored │
└─────────────────────────┘

Hook Commands

gm-precompact # Manually save state (called automatically by hook)
gm-resume # Get resume context after compaction

Note: Hooks are opt-in. Grey Matter never modifies your Claude settings without explicit gm-hooks install.


Installation

From GitHub (Recommended)

pip install git+https://github.com/AndroidPoet/greymatter.git

From Source

git clone https://github.com/AndroidPoet/greymatter.git
cd greymatter
pip install -e .

Optional: Neural Embeddings

For even better semantic search:

pip install greymatter-ai[neural]

Prerequisites

You need at least one AI CLI installed:

# Claude Code
npm install -g @anthropic-ai/claude-code
# Gemini
pip install google-generativeai
# Ollama
brew install ollama

What Gets Remembered?

Grey Matter automatically detects and remembers:

TypeExamples
Preferences"I prefer dark mode", "Always use TypeScript"
Decisions"We decided to use PostgreSQL", "Going with REST over GraphQL"
Learnings"TIL the API uses JWT", "Found out the bug was in auth"
Important Info"IMPORTANT: Never commit .env", "The prod server is 10.0.0.1"
Problems & Solutions"Fixed the memory leak by...", "The issue was caused by..."

Things that get forgotten:

  • Small talk ("ok", "thanks", "sure")
  • Repeated information (deduplication)
  • Old, unaccessed memories (natural decay)

Project Isolation

Grey Matter automatically isolates memory per project:

cd~/work/api-project
claude++
# Memories: API endpoints, database schema, auth flowcd~/personal/blog
claude++
# Different memories: Blog structure, writing style, deploy process

No commands needed. Just cd and it switches.


Data & Privacy

Your data stays local. Always.

~/.greymatter/
├── memory.db # SQLite database (your memories)
└── projects/ # Per-project memories
├── api-project.db
└── blog.db
  • No cloud sync
  • No telemetry
  • No API calls (except to your chosen AI)
  • Everything in ~/.greymatter/

Troubleshooting

Commands not found

# Add to ~/.zshrc or ~/.bashrc:export PATH="$HOME/.local/bin:$PATH"source~/.zshrc

Memory not persisting

# Check data directory:
ls ~/.greymatter/

Not resuming after /clear

Exit cleanly with Ctrl+C (saves handoff):

claude++ # Use normally# Ctrl+C # Saves state
claude++ # Shows "RESUMING FROM PREVIOUS SESSION"

Architecture

greymatter/
├── brain.py # 🧠 Human-like memory orchestrator
├── understanding.py # 🔍 Intent & emphasis detection
├── memory.py # 💾 SQLite + FTS5 storage
├── embeddings.py # 🎯 TF-IDF / neural semantic search
├── context_manager.py # ♻️ Clear/resume flow
├── claude_hooks.py # 🔗 Claude Code hook integration
├── projects.py # 📁 Per-project isolation
├── prediction.py # 🔮 Context prediction
├── smart.py # ⚡ Token optimization
├── wrapper.py # 🔌 CLI wrapper
└── visualize.py # 🌐 Memory graph UI

Safety & Security

Safe to use:

  • No network calls except to your AI CLI
  • No data leaves your machine
  • No tracking or analytics
  • Open source—read the code

Code quality:

  • 33 tests passing
  • Type hints throughout
  • No external dependencies (stdlib only)
  • Optimized (indexed DB, bounded caches, O(log n) operations)

Inspired By

  • Continuous-Claude — The "clear, don't compact" philosophy
  • Human memory systems — Working memory, encoding, consolidation, retrieval

Contributing

Contributions are welcome! If you've found a bug, have an idea for an improvement, or want to contribute new features, please open an issue or submit a pull request.

Find this repository useful? ❤️

Support it by joining stargazers for this repository. ⭐
Also, follow me on GitHub for my next creations! 🤩

License

MIT — Use it however you want.


Built for developers who are tired of repeating themselves.

About

Human-Like Memory for AI CLIs (Claude, Gemini, Ollama)

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages