Give Claude Code a brain that remembers across sessions
"Break down large context into small, reusable pieces"
Why PeePee? β’ Features β’ Quick Start β’ Token Savings β’ Examples
Think about how a child's body works: food goes in, the body absorbs the useful nutrients, and the waste (pee-pee π½) gets flushed out. Simple, efficient, natural!
Claude PeePee works the same way for your AI conversations:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β YOUR PROJECT CONTEXT β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Massive codebase, hundreds of decisions, β β
β β conventions, architecture notes, past discussions... β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βΌ β
β βββββββββββββββββββ β
β β Claude PeePee β β
β β (Filter) β β
β βββββββββββββββββββ β
β β β β
β βββββββββββ βββββββββββ β
β βΌ βΌ β
β π½ FLUSH OUT π§ KEEP & STORE β
β βββββββββββββ βββββββββββββ β
β β’ Redundant context β’ Key decisions β
β β’ Repeated explanations β’ Architecture notes β
β β’ Token waste β’ Important facts β
β β’ Session bloat β’ Tagged knowledge β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
The result? Only the useful nutrients (relevant facts) flow into each conversation, while the waste (redundant tokens) gets flushed away!
- Filter out unnecessary repetition
- Absorb only what matters into persistent memory
- Retrieve just the relevant context when needed
- Save tokens = Save money π°
"Flush the waste, keep the knowledge!"
The Real Problem: Token Waste
| Without Claude PeePee | With Claude PeePee |
|---|---|
| Re-explain project structure every session | Stored once, recalled instantly |
| Copy-paste same conventions repeatedly | Tagged and searchable |
| Lose context between sessions | Persistent forever |
| ~2000+ tokens wasted per session | ~50 tokens to recall |
Example Savings:
Traditional approach:
"Our project uses React 18 with TypeScript, Vite for bundling,
PostgreSQL database, Redis caching, Docker deployment..."
= 500+ tokens EVERY session
With Claude PeePee:
claude_peepee recall -t stack
= 50 tokens (just the search) + relevant results only
Estimated savings: 80-90% fewer tokens on context!
Every time you start a new Claude Code session, you have to re-explain:
- Your project architecture
- Coding conventions
- Past decisions and why you made them
- Context from previous sessions
Claude PeePee solves this. It gives Claude Code persistent memory that survives across sessions.
| Feature | Description |
|---|---|
| π§ Persistent Memory | Store facts, decisions, and context that survive forever |
| π Smart Search | Full-text search with tag filtering |
| π¬ Multi-Instance Chat | Coordinate between Claude instances in different directories |
| π Web UI | Beautiful interface to manage your knowledge base |
| π 100% Local | All data stays on your machine |
| β‘ Instant Setup | One command to get started |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Claude Code β
β β β
β MCP Protocol (JSON-RPC 2.0) β
β stdin/stdout β
β β β
β βΌ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Claude PeePee MCP Server β β
β β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββ β β
β β β Remember β β Recall β β Instance Messaging β β β
β β β (Store) β β (Search) β β (Coordination) β β β
β β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββ β β
β β β β β
β β βΌ β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β SQLite Database (FTS5) β β β
β β β ~/.claude_peepee/claude_peepee.db β β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- You start Claude Code β Claude PeePee MCP server starts automatically
- Claude needs context β Calls
get_contextto load relevant facts - You make decisions β Claude stores them using
remember - Next session β Previous facts are instantly available via
recall
Claude PeePee stores everything in a local SQLite database with full-text search capabilities:
| Data Type | What's Stored | Example |
|---|---|---|
| Facts | Any text information you want to remember | "API uses JWT authentication with RS256" |
| Tags | Comma-separated labels for filtering | "api, security, authentication" |
| Source Directory | Where the fact was created | "/home/user/myproject" |
| Timestamps | When created and last updated | "2024-01-15 10:30:00" |
| Instances | Running Claude Code sessions | ID, PID, working directory, heartbeat |
| Messages | Communication between instances | From, To, Content, Read status |
-- Facts table (your persistent memory)
facts (
id INTEGER PRIMARY KEY,
content TEXT, -- The actual fact/knowledge
tags TEXT, -- Comma-separated tags
source_dir TEXT, -- Directory where fact was created
created_at DATETIME,
updated_at DATETIME
)
-- Full-text search index (for fast keyword search)
facts_fts (content, tags) -- FTS5 virtual table
-- Running instances (for multi-instance coordination)
instances (
id TEXT PRIMARY KEY, -- Unique instance ID
pid INTEGER, -- Process ID
working_dir TEXT, -- Current working directory
started_at DATETIME,
last_heartbeat DATETIME
)
-- Messages between instances
messages (
id INTEGER PRIMARY KEY,
from_instance TEXT,
to_instance TEXT,
content TEXT,
created_at DATETIME,
read_at DATETIME -- NULL if unread
)Claude PeePee uses the Model Context Protocol (MCP) - a standardized way for AI assistants to access external tools:
Claude Code Claude PeePee Server
β β
β βββ initialize request βββββββ>β
β <ββ capabilities response ββββββ
β β
β βββ tools/list request βββββββ>β
β <ββ available tools ββββββββββββ
β β
β βββ tools/call (remember) ββββ>β
β <ββ success response βββββββββββ
β β
β βββ tools/call (recall) ββββββ>β
β <ββ matching facts βββββββββββββ
Protocol Details:
- Transport:
stdin/stdout(fast, no network overhead) - Format: JSON-RPC 2.0
- Tools exposed: 6 (remember, recall, get_context, list_instances, send_message, get_messages)
Traditional approach (expensive):
Every session, you type:
"This project uses React 18 with TypeScript, we follow these conventions..."
= 500+ tokens Γ every session = πΈπΈπΈ
With Claude PeePee (efficient):
Session 1: claude_peepee remember "React 18 + TypeScript project" -t stack
(stored once: ~10 tokens)
Session 2+: Claude calls get_context automatically
Only relevant facts loaded (~50 tokens)
Savings: 90% fewer tokens!
~/.claude_peepee/
βββ claude_peepee.db # All your data in one SQLite file
βββ facts # Your stored knowledge
βββ facts_fts # Full-text search index
βββ instances # Running session registry
βββ messages # Inter-instance messages
Privacy: All data stays 100% local. Nothing is sent to external servers.
macOS / Linux:
curl -sSL https://raw.githubusercontent.com/DandaAkhilReddy/claude_peepee/main/install.sh | shWindows (PowerShell):
irm https://raw.githubusercontent.com/DandaAkhilReddy/claude_peepee/main/install.ps1 | iexGo Install:
go install github.com/DandaAkhilReddy/claude_peepee@latestclaude_peepee setupThat's it! Claude Code now has persistent memory.
Want to use Claude PeePee with Claude Desktop or Claude Web? Use the remote MCP server mode!
claude_peepee serve-remoteThis starts an HTTP server on http://127.0.0.1:8421
- Open Claude (Desktop or Web app)
- Click the Settings icon (βοΈ gear)
- Navigate to "Connectors" in the sidebar
- Click "Add Custom Connector"
- Fill in the details:
- Name:
Claude PeePee - URL:
http://127.0.0.1:8421/sse
- Name:
- Click "Add" to save
Claude now has access to your persistent memory. Try:
- "Remember that we use PostgreSQL for our database"
- "What do you know about our project?"
- "Recall anything about our API"
# Start on a custom port
claude_peepee serve-remote -p 3000
# Listen on all interfaces (for remote access)
claude_peepee serve-remote --host 0.0.0.0
# Visit the web interface for setup instructions
open http://127.0.0.1:8421# Remember a fact
claude_peepee remember "We use PostgreSQL 15 with TimescaleDB extension"
# Add tags for easy filtering
claude_peepee remember "API rate limit is 100 req/min per user" -t api -t limits
# Store architectural decisions
claude_peepee remember "Chose microservices for independent scaling" -t architecture -t decision# Search by keyword
claude_peepee recall database
# Filter by tag
claude_peepee recall -t architecture
# Combine search + tags
claude_peepee recall authentication -t security
# Limit results
claude_peepee recall -n 5claude_peepee statusOutput:
Claude PeePee Status
================
Data directory: ~/.claude_peepee
Working directory: /projects/myapp
Facts:
Total: 42
Local (this directory): 15
Running instances: 2
- a1b2c3: /projects/myapp/frontend
- d4e5f6: /projects/myapp/backend
Claude PeePee includes a beautiful web interface to manage your knowledge base.
claude_peepee uiThen open http://localhost:8420 in your browser.
Features:
- View and search all stored facts
- Add new facts with tags
- Delete outdated information
- See running instances
- Real-time updates
When using Claude Code, these tools are automatically available:
| Tool | Description |
|---|---|
mcp__claude_peepee__remember |
Store a fact with optional tags |
mcp__claude_peepee__recall |
Search stored facts |
mcp__claude_peepee__get_context |
Load all context for current directory |
mcp__claude_peepee__list_instances |
Find other running Claude instances |
mcp__claude_peepee__send_message |
Send message to another instance |
mcp__claude_peepee__get_messages |
Receive messages from other instances |
# Store your tech stack
claude_peepee remember "Frontend: React 18 + TypeScript + Vite" -t stack -t frontend
claude_peepee remember "Backend: Go 1.21 + Gin + GORM" -t stack -t backend
claude_peepee remember "Database: PostgreSQL 15 + Redis 7" -t stack -t database
claude_peepee remember "Deployment: Docker + Kubernetes on AWS EKS" -t stack -t devopsclaude_peepee remember "Use kebab-case for file names" -t convention
claude_peepee remember "All API responses use { data, error, meta } format" -t convention -t api
claude_peepee remember "Tests go in __tests__ folder next to source" -t convention -t testingclaude_peepee remember "ADR-001: Use event sourcing for order history - need full audit trail" -t adr
claude_peepee remember "ADR-002: Redis for sessions - need sub-ms latency" -t adr
claude_peepee remember "ADR-003: Separate auth service - security isolation" -t adrTerminal 1 (Backend):
claude_peepee instances
# Shows: frontend instance abc123
claude_peepee send abc123 "API contract updated - new field 'metadata' on User"Terminal 2 (Frontend):
claude_peepee messages abc123
# Shows: "API contract updated - new field 'metadata' on User"# Claude Code (default - global)
claude_peepee setup
# Claude Code (project only)
claude_peepee setup --project
# Pre-approve all commands
claude_peepee setup --allow-all
# Other AI tools
claude_peepee setup --opencode
claude_peepee setup --codex
claude_peepee setup --gemini| Variable | Description |
|---|---|
CLAUDE_PEEPEE_NO_TELEMETRY |
Disable telemetry (set to 1) |
DO_NOT_TRACK |
Disable telemetry (standard) |
All data is stored locally:
~/.claude_peepee/
βββ claude_peepee.db # SQLite database
Your data never leaves your machine.
git clone https://github.com/DandaAkhilReddy/claude_peepee.git
cd claude_peepee
make build
./claude_peepee version| Command | Description |
|---|---|
claude_peepee remember <fact> |
Store a fact |
claude_peepee recall [query] |
Search facts |
claude_peepee status |
Show status |
claude_peepee instances |
List running instances |
claude_peepee send <id> <msg> |
Send message |
claude_peepee messages <id> |
View messages |
claude_peepee setup |
Configure for AI tools |
claude_peepee serve-remote |
Start remote MCP server (for Connectors) |
claude_peepee ui |
Open web interface |
claude_peepee version |
Show version |
We love contributions! Whether you're fixing bugs, adding features, or improving docs - all help is welcome.
# 1. Fork and clone
git clone https://github.com/YOUR_USERNAME/claude_peepee.git
cd claude_peepee
# 2. Install dependencies
go mod download
# 3. Build
make build
# 4. Run tests
make test
# 5. Make your changes and submit a PR!| Type | Description |
|---|---|
| Bug Reports | Found a bug? Open an issue with steps to reproduce |
| Feature Requests | Have an idea? We'd love to hear it |
| Code | Fix bugs, add features, improve performance |
| Documentation | Improve README, add examples, fix typos |
| Testing | Add test cases, improve coverage |
New to the project? Look for issues labeled good first issue - they're perfect for getting started!
- Follow Go best practices and
gofmt - Add tests for new features
- Keep commits focused and descriptive
- Update docs if needed
See CONTRIBUTING.md for detailed guidelines.
See SECURITY.md for security policy and reporting vulnerabilities.
MIT License - see LICENSE for details.
π§ Claude PeePee - Because Claude Code deserves a memory
Break it down. Store it smart. Save those tokens! π°
Made with π for developers who hate repeating themselves