
Security News
When Autonomous Agents Escape: Why Socket Signed the Cyber Defense Open Letter
Socket joins more than 100 technology, cybersecurity, and financial organizations calling for a global surge in cyber defense.
A professional memory system that understands, recalls, and evolves with you.
Quick Start • Features • Commands • TUI Guide • Roadmap
TIMPs is an AI-powered memory partner that:
TIMPs is a v1.0 production-ready AI agent system featuring:
sandeep-ai/
├── main.ts # CLI entrypoint, --tui routing
├── package.json # Dependencies (blessed, pg, @qdrant/js-client)
├── tsconfig.json # TypeScript config
├── .env # Configuration
│
├── api/ # Express REST handlers
│ ├── routes.ts # API endpoints
│ └── server.ts # HTTP server
│
├── config/ # Configuration management
│ ├── env.ts # Type-safe env loading
│ └── index.ts # Config exports
│
├── core/ # AI Agent logic
│ ├── agent.ts # Main agent class (robust JSON parsing)
│ ├── executor.ts # Task execution
│ ├── planner.ts # Planning logic
│ ├── reflection.ts # Memory extraction & scoring
│ └── index.ts # Exports
│
├── db/ # Database layer
│ ├── postgres.ts # PostgreSQL (14-field schema)
│ ├── vector.ts # Qdrant integration
│ └── index.ts # Exports
│
├── interfaces/
│ ├── cli.ts # CLI commands (!blame, !forget, !audit)
│ ├── tui.ts # Blessed TUI (4-panel layout)
│ └── tuiHandlers.ts # Reusable command handlers
│
├── memory/ # Memory system
│ ├── embedding.ts # Vector generation
│ ├── index.ts # Memory index
│ ├── longTerm.ts # Persistent storage
│ ├── shortTerm.ts # Session cache
│ └── memoryIndex.ts # Memory manager (composite keys)
│
├── models/ # LLM providers
│ ├── baseModel.ts # Interface
│ ├── openaiModel.ts # OpenAI adapter
│ ├── geminiModel.ts # Gemini adapter
│ ├── ollamaModel.ts # Ollama adapter
│ └── index.ts # Provider factory
│
├── tools/ # External tools
│ ├── baseTool.ts # Tool interface
│ ├── fileTool.ts # File access
│ ├── webSearchTool.ts # Web search
│ └── index.ts # Exports
│
├── QUICKSTART.md # 5-minute setup guide
├── TUI_README.md # Full TUI documentation
└── README.md # This file
cd sandeep-ai
npm install
# Terminal 1: PostgreSQL
brew services start postgresql # macOS
# or: sudo systemctl start postgresql # Linux
# Terminal 2: Ollama (recommended for local)
ollama serve
ollama pull mistral # or llama2, neural-chat
# Terminal 3: Qdrant (optional)
docker run -p 6333:6333 qdrant/qdrant
Edit .env:
PROVIDER=ollama
OLLAMA_API_URL=http://localhost:11434
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DATABASE=sandeep_ai
POSTGRES_USER=postgres
POSTGRES_PASSWORD=yourpassword
QDRANT_URL=http://localhost:6333
npm run init-db
npm run tui -- --user-id 1
You're done! See Full Setup Guide
# Default
npm run tui -- --user-id 1
# With username
npm run tui -- --user-id 1 --username "Developer"
# Ephemeral mode (no persistence)
npm run tui -- --user-id 1 --mode ephemeral
# Different model
npm run tui -- --user-id 1 --provider openai
npm run cli -- --user-id 1 --interactive
Search for memories containing keyword:
> !blame TypeScript
🔍 Found 2 memory item(s):
[2] REFLECTION ⭐⭐⭐⭐⭐ favorite language is TypeScript
[1] EXPLICIT ⭐⭐ TypeScript helps catch bugs early
Delete memories with confirmation:
> !forget React
⚠️ Found 1 memory - preview:
[1] React is my favorite UI framework
Delete? [Y/n]: Y
✅ Deleted 1 memory
Show last 10 memories with metadata:
> !audit
📋 AUDIT LOG
[2] REFLECTION ⭐⭐⭐⭐⭐
favorite language is TypeScript
Created: 2/16/2026, 6:47:52 PM | Retrieved: 1x
[1] EXPLICIT ⭐⭐
React is my favorite UI framework
Created: 2/16/2026, 6:50:15 PM | Retrieved: 0x
# Chat endpoint
curl -X POST http://localhost:3000/api/chat \
-H "Content-Type: application/json" \
-d '{
"userId": 1,
"username": "User",
"message": "I like TypeScript"
}'
# Get memory
curl http://localhost:3000/api/memory/1
# Get goals
curl http://localhost:3000/api/goals/1
| Variable | Description | Default |
|---|---|---|
PROVIDER | LLM provider (ollama/openai/gemini) | ollama |
OLLAMA_API_URL | Ollama server URL | http://localhost:11434 |
OPENAI_API_KEY | OpenAI API key | - |
GEMINI_API_KEY | Gemini API key | - |
POSTGRES_HOST | Database host | localhost |
POSTGRES_PORT | Database port | 5432 |
POSTGRES_DATABASE | Database name | sandeep_ai |
POSTGRES_USER | Database user | postgres |
POSTGRES_PASSWORD | Database password | - |
QDRANT_URL | Vector store URL | http://localhost:6333 |
NODE_ENV | Environment | development |
PORT | API server port | 3000 |
memories table (14 fields):
CREATE TABLE memories (
id BIGSERIAL PRIMARY KEY,
user_id BIGINT NOT NULL,
project_id VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
memory_type ENUM('explicit', 'reflection'),
importance INT (1-5),
retrieval_count INT DEFAULT 0,
last_retrieved_at TIMESTAMP,
source_conversation_id UUID,
source_message_id BIGINT,
tags VARCHAR(255)[],
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW()
);
CREATE UNIQUE INDEX idx_project ON memories(user_id, project_id);
CREATE INDEX idx_updated ON memories(updated_at DESC);
The system automatically creates these tables:
memories - Long-term memories (14 fields)users - User accountsconversations - Chat sessionsmessages - Individual messagesgoals - User goalspreferences - User preferencesprojects - User projects| Operation | Time | Notes |
|---|---|---|
| Store memory | 150ms | Async PostgreSQL + Qdrant |
| SQL search | 10ms | Indexed by (user_id, project_id) |
| Vector search | 50ms | Qdrant, top-10 results |
| Merge results | 5ms | Deduplication in-memory |
| Total !blame | ~65ms | Sequential: SQL + vec + merge |
| Reflection | 1-5s | LLM-dependent |
| TUI render | <30ms | Per frame |
| Issue | Solution |
|---|---|
| "Cannot connect to database" | Check PostgreSQL: brew services start postgresql |
| "Cannot find module 'blessed'" | Run: npm install |
| "TUI doesn't render" | Try: export TERM=xterm-256color |
| "No response from Ollama" | Check: curl localhost:11434/api/tags |
| "JSON parsing error" | Fixed in v1.0 ✅ |
| "!blame finds nothing" | Use !audit to verify memories exist |
| Key | Action |
|---|---|
Enter | Send message |
Ctrl+L | Show audit log |
Tab | Switch panels |
Ctrl+C | Exit |
↑/↓ | Scroll history |
hjkl | Vim navigation |
Pull requests welcome! Areas that need help:
MIT
FAQs
TIMPs - A persistent cognitive partner that remembers, evolves, and builds with its user
The npm package timps receives a total of 2 weekly downloads. As such, timps popularity was classified as not popular.
We found that timps demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Socket joins more than 100 technology, cybersecurity, and financial organizations calling for a global surge in cyber defense.

Product
Enterprise security teams can now detect malware, credential theft, suspicious network activity, and risky updates across Microsoft Edge extensions.

Research
/Security News
Socket researchers found 18 Chrome extensions and one Edge extension delivering a wallet drainer, credential theft, and other malicious payloads.