elastic-claude
Index and search project knowledge. Use when starting a new task to find related prior work, when ingesting documents or chats, or when searching project history for context.
When & Why to Use This Skill
Elastic-Claude is a robust local search infrastructure designed to index and retrieve project-specific knowledge, including documents, chat histories, and code snippets. By providing a persistent memory layer, it enables Claude to maintain deep context across sessions, allowing for efficient retrieval of prior work, architectural decisions, and technical documentation to streamline complex development workflows.
Use Cases
- Project Onboarding: Search through historical project data and documentation to quickly understand context and prior work when starting new tasks.
- Automated Document Ingestion: Index markdown files, READMEs, and technical docs with rich metadata (project, title, tags) for instant, high-relevance retrieval.
- Persistent Chat Memory: Save and search previous Claude session transcripts to recall specific logic, debugging steps, or requirements discussed in the past.
- Contextual Code Discovery: Index local codebases to help the agent find specific implementations or code patterns relevant to the current coding objective.
| name | elastic-claude |
|---|---|
| description | Index and search project knowledge. Use when starting a new task to find related prior work, when ingesting documents or chats, or when searching project history for context. |
Elastic-Claude
Local search infrastructure for project knowledge.
CLI Commands
Add an entry
# From file path (preferred - Rust reads the file)
elastic-claude add -t <type> -p <file_path> [-m '<json_metadata>']
# Inline content (for small content)
elastic-claude add -t <type> -c "<content>" [-m '<json_metadata>']
# From stdin
cat <file> | elastic-claude add -t <type> [-m '<json_metadata>']
Arguments:
-t, --entry-type: Entry type (e.g., "document", "chat", "code")-p, --path: Read content from file (also sets file_path in DB)-c, --content: Inline content (conflicts with -p)-m, --metadata: JSON metadata (optional)
Example:
elastic-claude add -t document -p /path/to/file.md -m '{"project": "my-project", "title": "My Doc", "category": "docs"}'
Search entries
elastic-claude search "<query>"
Returns matching entries with snippets, scores, and metadata.
Save current chat session
# Get path to current chat file
elastic-claude current-chat --path-only
# Ingest current chat with metadata (always include project)
elastic-claude current-chat -m '{"project": "my-project", "title": "Session title", "tags": ["topic1", "topic2"]}'
Auto-detects the current Claude session and ingests the chat file.
Get entry by ID
# Get full entry details
elastic-claude get <id>
# Get just the content
elastic-claude get <id> --content-only
# Show tsvector tokens (for debugging search)
elastic-claude get <id> --tsv
Workflow for Ingesting Documents
When asked to ingest files:
- Determine the project name from the current working directory or ask the user
- Read each file's content
- Extract metadata from content and path:
- project: always include - the project/repo name
- title: from first heading or filename
- category: from directory path
- tags: from content keywords
- Call
elastic-claude addfor each file
Example for a markdown file:
elastic-claude add -t document -p /path/to/file.md -m '{"project": "CQR", "title": "Extracted Title", "category": "documentation"}'
Workflow for Searching
When asked to find information:
- Run
elastic-claude search "<relevant keywords>" - Review the results (snippets, file paths, metadata)
- If needed, read the full files for more context
- Summarize findings for the user
Schema Reference
See references/schema.md for database schema details.
Entry types:
document: Markdown docs, READMEs, etc.chat: Chat session transcriptscode: Code snippets or files