kortix-semantic-search
Full semantic search over Desktop files, agent memory, and knowledge. Use when the agent needs to find relevant files or search knowledge semantically.
معلومات المصدر
- المستودع
- kortix-ai/lss
- آخر نشاط في المصدر
- ٢١ مارس ٢٠٢٦ في ١٣:٢٦
- لغة SKILL.md المكتشفة
- الإنجليزية
- النجوم
- ١٢
- التفرعات
- ٣
خيارات التثبيت
يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.
مراجعة ملفات المصدر
اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.
عرض SKILL.md
SKILL.md
تعليمات المصدر · معاينة للقراءة فقط- name
- kortix-semantic-search
- description
- Full semantic search over Desktop files, agent memory, and knowledge. Use when the agent needs to find relevant files or search knowledge semantically.
# Semantic Search
You have a **full semantic search engine** running on this machine, powered by [lss](https://github.com/kortix-ai/lss) (Local Semantic Search). It indexes text files, code, PDFs, DOCX, XLSX, PPTX, HTML, EML, JSON, CSV — virtually everything.
A background file-watcher daemon (`lss-sync`) detects file changes in real time via FSEvents/inotify and re-indexes within seconds.
## How It Works
lss combines **BM25 full-text search** (keyword matching with custom re-scoring) and **embedding similarity** (semantic meaning via OpenAI or local fastembed) using Reciprocal Rank Fusion. Queries can be natural language — you don't need exact keywords.
The database lives at `/config/.lss/lss.db`.
## What's Indexed
| Source | Path | Content |
|--------|------|---------|
| **Desktop files** | `/config/Desktop` | Code, docs, PDFs, DOCX, XLSX, PPTX, HTML, JSON, CSV — all text-like files recursively |
| **Agent memory** | `/config/workspace/.kortix/` | mem/*.md (observations), journal/*.md, memory/*.md, knowledge/*.md |
Indexed formats: ~80 known extensions (code, markup, config, documents). Unknown extensions are skipped. `.gitignore` patterns are respected.
## Quick Reference
```bash
# Search EVERYTHING indexed
lss "your natural language query" -p /config/Desktop -k 10 --json
# Search only agent memory + knowledge
lss "user deployment preferences" -p /config/workspace/.kortix/ -k 5 --json
# Search a specific project directory
lss "database migration strategy" -p /config/Desktop/myproject/ -k 5 --json
# Search without triggering re-indexing (faster, uses existing index)
lss "query" -p /config/Desktop --no-index -k 10 --json
# Filter by file type
lss "auth logic" -p /config/Desktop -e .py -e .ts -k 10 --json
# Exclude file types
lss "config" -p /config/Desktop -E .json -E .yaml -k 10 --json
# Exclude content patterns
lss "user data" -p /config/Desktop -x '\d{4}-\d{2}-\d{2}' -k 10 --json
# Force re-index a path immediately
lss index /config/Desktop/important-file.md
# List all indexed files
lss ls
# Check index stats and configuration
lss status
```
## Search Filters
Narrow results at query time without re-indexing.
| Flag | Meaning | Applied | Example |
|------|---------|---------|---------|
| `-e EXT` / `--ext` | Include only these extensions (repeatable) | In SQL, pre-scoring | `-e .py -e .ts` |
| `-E EXT` / `--exclude-ext` | Exclude these extensions (repeatable) | In SQL, pre-scoring | `-E .json -E .yaml` |
| `-x REGEX` / `--exclude-pattern` | Exclude chunks matching regex (repeatable) | Post-scoring | `-x 'test_' -x 'TODO'` |
### Filter Strategy for Agents
**Narrow first, then broaden.** Start with tight extension filters, then remove them if results are insufficient:
```bash
# 1. Try narrow: only Python source files
lss "authentication flow" -p /config/Desktop/project -e .py -k 10 --json
# 2. If too few results, broaden to all code
lss "authentication flow" -p /config/Desktop/project -e .py -e .ts -e .go -e .rs -k 10 --json
# 3. If still insufficient, search everything
lss "authentication flow" -p /config/Desktop/project -k 10 --json
```
**Exclude noise, not signal:**
```bash
# Exclude generated/test code when looking for implementations
lss "rate limiting" -e .py -x "test_" -x "mock_" -x "fixture" --json -k 10
# Exclude logs and config when looking for code
lss "database connection" -E .log -E .yaml -E .json -E .toml --json -k 10
# Exclude dates/timestamps from data searches
lss "customer report" -x '\d{4}-\d{2}-\d{2}' --json -k 10
```
## JSON Output Format
**Always use `--json` for programmatic parsing.**
```bash
lss "query" -p /config/Desktop --json -k 10
```
Returns an array of result arrays (one per query):
```json
[
{
"query": "authentication flow",
"hits": [
{
"file_path": "/config/Desktop/project/auth.py",
"score": 0.0345,
"snippet": "def authenticate(user, password):\n \"\"\"Authenticate user with JWT...",
"rank_stage": "S3_MMR",
"indexed_at": 1738900000.0
}
]
}
]
```
Key fields:
- `file_path` — Full path to the source file
- `score` — Relevance score (higher is better)
- `snippet` — Best-matching text excerpt (~280 chars)
- `rank_stage` — S1=BM25 only, S3=fusion, S3_MMR=fusion+diversity
## Multi-Query Decomposition
For complex questions, **decompose into multiple specific queries**:
```bash
# BAD: single vague query
lss "how does the system work" --json -k 10
# GOOD: decomposed into specific queries
lss "system architecture overview" "API endpoint design" "database schema" "authentication flow" --json -k 5
```
Or use a query file:
```bash
echo "system architecture overview" > /tmp/queries.txt
echo "API endpoint design" >> /tmp/queries.txt
echo "database schema" >> /tmp/queries.txt
lss -Q /tmp/queries.txt -p /config/Desktop/project --json -k 5
```
## When to Use lss vs grep
| Use lss | Use grep |
|---------|----------|
| Conceptual queries ("how to handle errors") | Exact string ("ERROR_CODE_429") |
| Fuzzy matching ("something like the email template") | Specific variable name (`userSessionToken`) |
| Cross-file discovery ("files about API design") | Known file + line search |
| Natural language ("what's the deploy process") | Regex pattern matching |
## Iterative Search Strategy
For large codebases, use an iterative approach:
```bash
# Step 1: Broad discovery — find relevant areas
lss "payment processing" -p /config/Desktop/project -k 20 --json
# Step 2: Narrow by extension — focus on implementation
lss "payment processing" -p /config/Desktop/project -e .py -k 10 --json
# Step 3: Narrow by path — focus on specific module
lss "payment processing" -p /config/Desktop/project/src/payments/ -k 10 --json
# Step 4: Read the actual files for full context
cat /config/Desktop/project/src/payments/processor.py
```
## Indexing
```bash
# Index a directory (auto-triggered on first search)
lss index /config/Desktop/project/
# Index a single file
lss index /config/Desktop/important.pdf
# The daemon handles real-time updates automatically
# Use manual indexing only for immediate needs
```
## Maintenance
```bash
# Sweep stale entries (files deleted from disk)
lss sweep --retention-days 90
# Clear all embeddings (forces re-embedding on next search)
lss sweep --clear-embeddings 0
# Full reset
lss sweep --clear-all
```
## Rules
1. **Always use `--json` flag** when searching programmatically. Parse the JSON output.
2. **Always use `-p <path>`** to scope searches. Never search without a path scope.
3. **Use `-k` to control result count.** `-k 5` for focused, `-k 20` for broad exploration.
4. **Decompose complex queries.** Multiple specific queries beat one vague query.
5. **Read source files for full context.** Snippets are excerpts — always read the full file after finding a match.
6. **Narrow with filters first.** Use `-e` to target file types before broadening.
7. **Don't grep when lss is better.** Conceptual, fuzzy, and cross-file queries belong in lss.
8. **The index auto-updates.** Only use `lss index` for immediate needs. The daemon handles the rest.
عرض على GitHub