vibeeval/memory-palace
Hierarchical memory organization for multi-session context retention. Wings (projects) > Rooms (domains) > Drawers (decisions). Semantic search across all memories with zero cloud dependency.
npx skills add https://github.com/vibeeval/vibecosystem --skill memory-palace
Hierarchical, persistent memory system for Claude Code sessions. Organizes knowledge so agents never lose context across sessions.
Palace (global)
Wing: project-name
Room: authentication
Drawer: "chose JWT over sessions" (2026-04-07)
Drawer: "rate limiting at 100 req/min" (2026-04-06)
Room: database
Drawer: "PostgreSQL with pgvector" (2026-04-05)
Drawer: "migration strategy: blue-green" (2026-04-04)
Room: deployment
Drawer: "Vercel + GitHub Actions" (2026-04-03)
Wing: another-project
Room: ...
All memories stored in ~/.claude/palace/ as flat JSONL files per wing:
~/.claude/palace/
index.json # Wing registry
my-project.jsonl # All drawers for this wing
other-project.jsonl # All drawers for this wing
{
"id": "d-abc123",
"wing": "my-project",
"room": "authentication",
"content": "Chose JWT with refresh tokens over session-based auth. Reason: stateless, mobile-friendly, scalable.",
"tags": ["auth", "jwt", "architecture"],
"timestamp": "2026-04-07T14:30:00Z",
"session_id": "s-xyz789",
"agent": "architect",
"type": "decision"
}
decision - Architectural or design choice with reasoningdiscovery - Something learned about the codebaseerror - Error encountered and how it was resolvedconstraint - External limitation or requirementpattern - Recurring code or workflow patternWhen an important decision, discovery, or constraint is identified:
Wing: detect from CLAUDE_PROJECT_DIR or package.json name
Room: infer from topic (auth, db, deploy, frontend, api, etc.)
Content: what was decided/discovered and WHY
Tags: relevant keywords for search
Before starting work on a topic, query relevant rooms:
1. Get wing from current project
2. List rooms with recent activity
3. Load drawers matching current task keywords
4. Inject as context: "Previous decisions in this area: ..."
For cross-project pattern detection:
Search all wings for entries matching query
Return sorted by relevance (keyword match + recency)
Useful for: "Have I solved this before in another project?"
Palace complements (does not replace) the existing PostgreSQL memory:
| Keywords in Context | Room |
|---------------------|------|
| auth, login, session, JWT, OAuth | authentication |
| database, SQL, migration, schema | database |
| deploy, CI/CD, Docker, K8s | deployment |
| React, CSS, component, UI | frontend |
| API, endpoint, REST, GraphQL | api |
| test, TDD, coverage, mock | testing |
| security, XSS, injection, CORS | security |
| performance, cache, optimize | performance |
| config, env, settings | configuration |
ALWAYS store:
NEVER store:
Take vibeeval/memory-palace from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.