Claude-skill-registry local-brain
Delegate complex, multi-step codebase exploration to local Ollama models. Best for analysis, review, and understanding tasks that require reasoning across multiple files.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/local-brain" ~/.claude/skills/majiayu000-claude-skill-registry-local-brain && rm -rf "$T"
skills/data/local-brain/SKILL.mdLocal Brain
Delegate complex codebase exploration to local Ollama models. Local Brain excels at multi-step tasks requiring reasoning, not simple commands.
When to Use Local Brain
Local Brain adds 10-70 seconds of LLM inference overhead per query. Use it for tasks where AI reasoning provides value, not for simple commands.
Use Local Brain for:
- Multi-step exploration ("Find all error handlers and explain how they work")
- Code review and analysis ("Review recent changes for potential issues")
- Understanding unfamiliar code ("Explain how authentication flows through the system")
- Tasks requiring judgment ("What patterns does this codebase use?")
- When you don't know which files or commands to look at
Do NOT use Local Brain for:
- Simple file listing (use
orls
directly — 1000x faster)find - Git status/log (use
directly — 1000x faster)git log - Reading a specific known file (use
or your editor)cat - Any single-command operation where you know what to run
Performance reality: A simple "list files" query takes 12-70 seconds via Local Brain vs 5ms via
ls. The value is in the reasoning, not the tool execution.
Installation
Install local-brain:
uv pip install local-brain
Or with pipx:
pipx install local-brain
Requirements:
- Ollama running locally (https://ollama.ai)
- A model pulled (e.g.,
)ollama pull qwen3
Usage
local-brain "prompt" # Ask anything (auto-selects best model) local-brain -v "prompt" # Show tool calls local-brain -d "prompt" # Show step-by-step debug output local-brain -m qwen3-coder:30b "prompt" # Specific model local-brain --trace "prompt" # Enable OTEL tracing local-brain --list-models # Show available models local-brain --root /path/to/project "prompt" # Set project root local-brain doctor # Check system health
Health Check
Verify your setup is working correctly:
local-brain doctor
This checks:
- Ollama is installed and running
- Recommended models are available
- Tools execute correctly
- Optional tracing dependencies
Example output:
🔍 Local Brain Health Check Checking Ollama... ✅ Ollama is installed (ollama version is 0.13.1) Checking Ollama server... ✅ Ollama server is running (9 models) Checking recommended models... ✅ Recommended models installed: qwen3:latest Checking tools... ✅ Tools working (9 tools available) Checking optional features... ✅ OTEL tracing available (--trace flag) ======================================== ✅ All checks passed! Local Brain is ready.
Examples
Focus on tasks where AI reasoning adds value:
# Code review and analysis (good use case) local-brain "Review the recent git changes and identify potential issues" local-brain "Analyze the error handling patterns in this codebase" # Understanding unfamiliar code (good use case) local-brain "Explain how the authentication system works end-to-end" local-brain "What design patterns does this codebase use?" # Multi-step exploration (good use case) local-brain "Find all TODO comments and categorize them by urgency" local-brain "Trace how user input flows through the validation layer" # Generate content requiring context (good use case) local-brain "Generate a commit message based on the staged changes" local-brain "Summarize what changed in the last 5 commits"
Model Selection Guide
Choose the right model for your task:
For Code Exploration (Recommended)
Use
qwen3-coder:30b for faster exploration tasks:
local-brain -m qwen3-coder:30b "Find all error handlers and explain how they work" local-brain -m qwen3-coder:30b "What validation patterns are used in this codebase?" local-brain -m qwen3-coder:30b "Trace the data flow from API endpoint to database"
Why: 2.5x faster than qwen3:30b (12-20s vs 35-70s per query), direct tool usage.
For Complex Reasoning
Use
qwen3:30b for tasks requiring deeper analysis:
local-brain -m qwen3:30b "Analyze the architecture and suggest improvements" local-brain -m qwen3:30b "Review recent changes for security vulnerabilities" local-brain -m qwen3:30b "Explain how authentication works end-to-end"
Why: More thorough reasoning, better at synthesis and review tasks.
Tips for Better Results
Use --debug to see what the model is doing step-by-step:
local-brain -d -m qwen3-coder:30b "Analyze the test coverage gaps"
Avoid these models (broken or unreliable tool calling):
- Outputs JSON instead of executing toolsqwen2.5-coder:*
- Too small, hallucinates pathsllama3.2:1b
- No tool support at architecture leveldeepseek-r1:*
If no model is specified, Local Brain auto-selects the best installed model.
Observability
Debug Mode (--debug or -d)
See step-by-step progress with the
--debug flag:
local-brain --debug "Analyze error handling in the auth module"
This shows:
- Step number and duration
- Tool calls with arguments
- Result preview (truncated)
- Token usage per step
Example output:
[debug] Model: qwen3-coder:30b [debug] Project root: /path/to/project [Step 1] (4.2s) Tool: list_directory(path='.', pattern='**/*') Result: src/main.py src/utils.py ... (15 lines total) Tokens: 2634 in / 42 out
OTEL Tracing (--trace)
Enable OpenTelemetry tracing to visualize agent execution with detailed timing and metrics:
local-brain --trace "Review recent changes and identify potential issues"
This captures:
- Agent execution timeline (total duration)
- Individual steps (planning, execution, final answer)
- LLM calls with token counts
- Tool invocations with inputs/outputs
- Timing for each operation
Visualizing Traces with Jaeger (Recommended)
For real-time visualization of agent execution, use Jaeger:
1. Start Jaeger (one-time setup):
docker run -d \ --name jaeger \ -p 16686:16686 \ -p 4318:4318 \ jaegertracing/all-in-one
2. Run local-brain with tracing:
local-brain --trace -m qwen3-coder:30b "Analyze the test patterns in this codebase"
3. View in Jaeger UI: Open http://localhost:16686 and select:
- Service:
local-brain - Operation:
CodeAgent.run
You'll see a waterfall timeline showing:
CodeAgent.run (5.1s total) ├── Step 1 (2.04s) │ ├── LiteLLMModel.generate (2.03s) ← LLM latency │ └── list_directory (1.5ms) ← Tool execution └── Step 2 (3.09s) ├── LiteLLMModel.generate (3.09s) └── FinalAnswerTool (0.1ms)
Click any span to see details: tokens used, arguments, outputs, errors.
Install Tracing Dependencies
For JSON console output only (no Jaeger):
pip install local-brain[tracing]
For Jaeger visualization, also install:
pip install opentelemetry-exporter-otlp
Combining Flags for Maximum Insight
Use all three flags together for complete visibility:
local-brain --trace --debug -m qwen3-coder:30b "Review recent changes for security issues"
This gives:
→ OTEL spans in Jaeger (timing, tokens, architecture)--trace
→ Real-time step progress to stderr (what's happening now)--debug
→ Tool calls in main output (what was called)--verbose
Note:
--debug and --trace can be combined.
Security
All file operations are restricted to the project root (path jailing):
- Files outside the project directory cannot be read
- Shell commands execute within the project root
- Sensitive files (
,.env
, SSH keys) are blocked.pem - Only read-only shell commands are allowed
- All tool outputs are truncated (200 lines / 20K chars max)
- Tool calls have timeouts (30 seconds default)
Available Tools
The model assumes these tools are available and uses them directly:
File Tools
- Read file contents at a givenread_file(path)
. Large files are truncated (200 lines / 20K chars). Has 30s timeout. Restricted to project root.path
- List files inlist_directory(path, pattern)
matching a globpath
. Supports recursive patterns:pattern
- files in directory only*
- ALL files recursively (use this to discover nested structures)**/*
- all Python files recursively**/*.py
- all JS files under src/ Excludes hidden files and common ignored directories. Returns up to 100 files. Has 30s timeout.src/**/*.js
- Get file metadata (size, type, modified time) for a givenfile_info(path)
. Has 30s timeout.path
Code Navigation Tools (New in v0.6.0)
- AST-aware code search. Unlike simple grep, shows intelligent context around matches (function/class boundaries). Supports Python, JavaScript, TypeScript, Go, Rust, Ruby, Java, C/C++.search_code(pattern, file_path, ignore_case)
- Extract class/function definitions from a source file. Shows signatures and docstrings without full implementation code. Great for understanding file structure quickly.list_definitions(file_path)
Git Tools
- Show code changes. Usegit_diff(staged, file_path)
for staged changes. Optionally provide astaged=True
. Output is truncated.file_path
- Check repo status. Output is truncated.git_status()
- List changed files. Usegit_changed_files(staged, include_untracked)
for staged files,staged=True
to include untracked files. Output is truncated.include_untracked=True
- View commit history.git_log(count)
specifies number of commits (max 50). Output is truncated.count
All tools return human-readable output or error messages on failure.