hindsight-self-hosted
Store team knowledge, project conventions, and learnings from tasks. Use to remember what works and recall context before new tasks. Connects to a self-hosted Hindsight server. (user)
By vectorize-io · 425 installs
npx skills add vectorize-io/hindsight --skill hindsight-self-hosted
Source repository · Upstream listing
Hindsight Memory Skill (Self Hosted)
You have persistent memory via a self hosted Hindsight server . This memory bank can be shared with the team , so knowledge stored here benefits everyone working on this codebase.
Proactively store team knowledge and recall context to provide better assistance.
Setup Check (First Time Only)
Before using memory commands, verify the Hindsight CLI is configured:
If the file doesn't exist or is missing credentials , help the user set it up:
1. Install the CLI (if hindsight command not found):
2. Create the config file ask the user for:
API URL : Their self hosted Hindsight server URL (e.g., https://hindsight.mycompany.com )
API Key : Their authentication key
3. Get the bank ID ask the user for their bank ID (e.g., team myproject )
After setup, use the bank ID in all commands below.
How Hindsight Works
When you call retain , Hindsight does not store the string as is. The server runs an internal pipeline that:
1. Extracts structured facts from the content using an LLM
2. Identifies entities (people, tools, concepts) and links related facts
3. Builds temporal and causal relationships between facts
4. Generates embeddings for semantic search
This means you should pass rich, full context content — the server is better at extracting what matters than a pre summarized string. Your job is to decide when to store, not what to extract.
Commands
Replace <bank id with the user's actual bank ID (e.g., team frontend ).
Store a memory
Use memory retain to store what you learn. Pass full context — raw observations, session notes, or detailed descriptions:
You can also pass a raw conversation transcript with timestamps:
Recall memories
Use memory recall BEFORE starting tasks to get relevant context:
Reflect on memories
Use memory reflect to synthesize context:
IMPORTANT: When to Store Memories
This is a shared team bank . Store knowledge that benefits the team. For individual preferences, include the person's name.
Project/Team Conventions (shared)
Coding standards ("Project uses 2 space indentation")
Required tools and versions ("Project requires Node 20+, PostgreSQL 15+")
Linting and formatting rules ("ESLint with Airbnb config")
Testing conventions ("Integration tests require Docker running")
Branch naming and PR conventions
Individual Preferences (attribute to person)
Personal coding style ("Alice prefers explicit type annotations")
Communication preferences ("Bob prefers detailed PR descriptions")
Tool preferences ("Carol uses vim keybindings")
Procedure Outcomes
Steps that successfully completed a task
Commands that worked (or failed) and why
Workarounds discovered
Configuration that resolved issues
Learnings from Tasks
Bugs encountered and their solutions
Performance optimizations that worked
Architecture decisions and rationale
Dependencies or version requirements
Team Knowledge
Onboarding information for new team members
Common pitfalls and how to avoid them
Architecture decisions and their rationale
Integration points with external systems
Domain knowledge and business logic explanations
IMPORTANT: When to Recall Memories
Always recall before:
Starting any non trivial task
Making decisions about implementation
Suggesting tools, libraries, or approaches
Writing code in a new area of the project
When answering questions about the codebase
When a team member asks how something works
Best Practices
1. Store immediately : When you discover something, store it right away
2. Pass rich context : Include full observations, not pre summarized strings — the server extracts facts automatically
3. Include outcomes : Store what happened AND why, including failures and workarounds
4. Recall first : Always check for relevant context before starting work
5. Think team first : Store knowledge that would help other team members
6. Attribute individual preferences : Store "Alice reviewed the PR and asked for X" not just "User prefers X"
7. Distinguish project vs personal : Project conventions apply to everyone; personal preferences are per person
8. Use context for metadata : The context flag labels the type of memory (e.g., procedures , learnings , preferences ), not a replacement for full content