Back to skills
SkillHub ClubShip Full StackFull Stack

local-knowledge

Imported from https://github.com/terraphim/opencode-skills.

Packaged view

This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.

Stars
1
Hot score
77
Updated
March 19, 2026
Overall rating
C2.8
Composite score
2.8
Best-practice grade
B78.7

Install command

npx @skill-hub/cli install terraphim-opencode-skills-local-knowledge

Repository

terraphim/opencode-skills

Skill path: skill/local-knowledge

Imported from https://github.com/terraphim/opencode-skills.

Open repository

Best for

Primary workflow: Ship Full Stack.

Technical facets: Full Stack.

Target audience: everyone.

License: Apache-2.0.

Original source

Catalog source: SkillHub Club.

Repository owner: terraphim.

This is still a mirrored public skill entry. Review the repository before installing into production workflows.

What it helps with

  • Install local-knowledge into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
  • Review https://github.com/terraphim/opencode-skills before adding local-knowledge to shared team environments
  • Use local-knowledge for development workflows

Works across

Claude CodeCodex CLIGemini CLIOpenCode

Favorites: 0.

Sub-skills: 0.

Aggregator: No.

Original source / Raw SKILL.md

---
name: local-knowledge
description: |
  Leverage personal notes and documentation through Terraphim's role-based search.
  AI agents can search developer's local knowledge organized by domain (Rust, frontend, architecture)
  using the terraphim-agent REPL commands.
license: Apache-2.0
---

# Local Knowledge Search

Use this skill when you need to search the developer's personal notes, documentation, or local knowledge base for context-specific information.

## Overview

Terraphim enables AI coding agents to search local knowledge through role-based haystacks. Different roles have access to different knowledge domains:

| Role | Knowledge Domain | Haystacks |
|------|------------------|-----------|
| Terraphim Engineer | Architecture, system design | Local docs + Knowledge Graph |
| Rust Engineer | Rust patterns, async, WASM | Local notes + Query.rs API |
| Frontend Engineer | JavaScript, TypeScript, React | GrepApp (GitHub code search) |

## When to Use This Skill

Search local knowledge when the user:
- Asks about topics in their personal notes ("in my notes", "my documentation")
- Needs domain-specific patterns they've documented before
- Asks "how do I usually do X" or "what's our pattern for Y"
- References previous solutions or bookmarked resources

**Trigger Phrases:**
- "check my notes about..."
- "search my documentation for..."
- "what do I have on..."
- "find my notes on..."
- Any domain-specific question (Rust async, frontend patterns, etc.)

## Architecture

```
┌─────────────────────────────────────────────────────────────┐
│                    Claude Code Agent                         │
│  Uses /search and /role commands via terraphim-agent REPL   │
└───────────────────────────┬─────────────────────────────────┘
                            │
                            ▼
┌─────────────────────────────────────────────────────────────┐
│                    terraphim-agent REPL                      │
│  /search "query" --role rust-engineer --limit 10            │
└───────────────────────────┬─────────────────────────────────┘
                            │
          ┌─────────────────┼─────────────────┐
          ▼                 ▼                 ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Terraphim Eng   │ │ Rust Engineer   │ │ Frontend Eng    │
│                 │ │                 │ │                 │
│ • Local docs    │ │ • Rust notes    │ │ • GrepApp JS    │
│ • expanded_docs │ │ • Query.rs      │ │ • GrepApp TS    │
│ • Knowledge KG  │ │ • Auto-gen KG   │ │                 │
└─────────────────┘ └─────────────────┘ └─────────────────┘
```

## For Humans

### Quick Start

```bash
# Build terraphim-agent with REPL features
cd /path/to/terraphim-ai
cargo build -p terraphim_agent --features repl-full --release

# Start the REPL
./target/release/terraphim-agent

# In REPL: List available roles
/role list

# Switch to Rust Engineer role
/role select rust-engineer

# Search your notes
/search "async iterator patterns" --limit 5
```

### Role Configuration

Roles are defined in JSON config files at `terraphim_server/default/`:

```json
{
  "roles": {
    "Rust Engineer": {
      "relevance_function": "title-scorer",
      "haystacks": [
        {
          "location": "/path/to/your/notes",
          "service": "Ripgrep",
          "extra_parameters": { "glob": "*rust*.md" }
        }
      ]
    }
  }
}
```

### Adding Your Own Notes

1. Create a notes directory (e.g., `~/notes/rust/`)
2. Add markdown files with your knowledge
3. Update role config to include the directory as a Ripgrep haystack
4. Optionally create a knowledge graph for semantic term expansion

## For AI Agents

### Detecting Terraphim Capabilities

Check if terraphim-agent is available:

```bash
# Find the agent binary
if command -v terraphim-agent >/dev/null 2>&1; then
    AGENT="terraphim-agent"
elif [ -x "./target/release/terraphim-agent" ]; then
    AGENT="./target/release/terraphim-agent"
elif [ -x "$HOME/projects/terraphim/terraphim-ai/target/release/terraphim-agent" ]; then
    AGENT="$HOME/projects/terraphim/terraphim-ai/target/release/terraphim-agent"
fi
```

### REPL Command Reference

**Search Commands:**

```bash
# Basic search (uses current role)
/search "query string"

# Search with specific role
/search "async patterns" --role rust-engineer

# Limit results
/search "error handling" --limit 5

# Semantic search (uses knowledge graph)
/search "error handling" --semantic

# Concept-based search
/search "error handling" --concepts
```

**Role Commands:**

```bash
# List available roles
/role list

# Select a role
/role select rust-engineer

# Show current role
/role current
```

**Graph Commands:**

```bash
# Show knowledge graph terms
/graph

# Show top K terms
/graph --top-k 20
```

### Search Patterns for AI Agents

**Pattern 1: Domain-Specific Search**

When the user asks about a specific domain, select the appropriate role first:

```bash
# User asks about Rust async
/role select rust-engineer
/search "async iterator" --limit 5
```

**Pattern 2: Broad Knowledge Search**

For general questions, use the Terraphim Engineer role with expanded_docs:

```bash
/role select terraphim-engineer
/search "atomic data server configuration"
```

**Pattern 3: Code Examples**

For frontend code examples, use GrepApp integration:

```bash
/role select frontend-engineer
/search "useState useEffect pattern"
```

### Interpreting Results

Search results include:
- **title**: Document/note title
- **url**: File path or source URL
- **body**: Content excerpt
- **description**: Summary (if LLM summarization enabled)
- **rank**: Relevance score

Example output:

```
Results for "async iterator":

1. [rust-matching-iterators.md]
   Path: /Users/alex/notes/rust-matching-iterators.md
   Async iterator over AWS S3 pagination using State enum...

2. [rust-python-extension.md]
   Path: /Users/alex/notes/rust-python-extension.md
   PyO3/Maturin async patterns for Python extensions...
```

### Error Handling

If terraphim-agent is not available or fails:

1. **Graceful degradation**: Continue without local search
2. **Notify user**: "Local knowledge search unavailable, using general knowledge"
3. **Fallback**: Use web search or built-in knowledge

```bash
# Check if search succeeded
if ! /search "query" 2>/dev/null; then
    echo "Local search unavailable, falling back to general knowledge"
fi
```

## Knowledge Graph Format

Knowledge graph files enable semantic term expansion:

```markdown
# term_name

Optional description of the term.

synonyms:: synonym1, synonym2, synonym3
```

**Example - Rust async terms:**

```markdown
# async_iterator

Async iterators in Rust using Stream trait and async/await.

synonyms:: Stream, AsyncIterator, futures::Stream, tokio::stream
```

## Configuration Examples

### Rust Engineer with Local Notes

```json
{
  "Rust Engineer": {
    "shortname": "rust-engineer",
    "relevance_function": "terraphim-graph",
    "kg": {
      "knowledge_graph_local": {
        "input_type": "markdown",
        "path": "docs/src/kg/rust_notes_kg"
      }
    },
    "haystacks": [
      {
        "location": "/Users/alex/synced/expanded_docs",
        "service": "Ripgrep",
        "extra_parameters": { "glob": "*rust*.md" }
      },
      {
        "location": "https://query.rs",
        "service": "QueryRs"
      }
    ]
  }
}
```

### Frontend Engineer with GrepApp

```json
{
  "Frontend Engineer": {
    "shortname": "frontend-engineer",
    "relevance_function": "title-scorer",
    "haystacks": [
      {
        "location": "https://grep.app",
        "service": "GrepApp",
        "extra_parameters": { "language": "JavaScript" }
      },
      {
        "location": "https://grep.app",
        "service": "GrepApp",
        "extra_parameters": { "language": "TypeScript" }
      }
    ]
  }
}
```

## Troubleshooting

| Issue | Solution |
|-------|----------|
| No results returned | Check haystack path exists and contains .md files |
| Wrong role active | Use `/role select <name>` to switch |
| Search too slow | Reduce `--limit` or use more specific queries |
| KG not loading | Verify path in config and markdown format |
| Agent not found | Build with `cargo build -p terraphim_agent --features repl-full --release` |

## Related Skills

- `terraphim-hooks` - For text replacement using knowledge graph
- `session-search` - For searching AI coding session history
- `rust-development` - For Rust-specific patterns
local-knowledge | SkillHub