Scan Report
22 /100
lookupmark-local-rag
Semantic search over local files using all-MiniLM-L6-v2 embeddings and ms-marco-MiniLM-L-6-v2 cross-encoder reranking with ChromaDB and parent-child chunking
A legitimate local document indexing and search tool with well-defined security boundaries, though it uses undocumented shell commands for dependency installation and monitoring.
Safe to install
Approve for use with standard sandboxing. Declare subprocess usage in SKILL.md and fix the documentation mismatch on supported file types.
Findings 3 items
| Severity | Finding | Location |
|---|---|---|
| Low | Subprocess usage not declared in SKILL.md Doc Mismatch | scripts/index.py:96 |
| Low | Supported file type mismatch between docs and code Doc Mismatch | scripts/index.py:51 |
| Low | Unpinned dependency (index-batch.sh: uv pip install) Supply Chain | scripts/index.py:96 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | READ | WRITE | ✓ Aligned | SKILL.md: 'Optimized for low-RAM ARM devices' — file writes are to ~/.local/shar… |
| Network | READ | READ | ✓ Aligned | Downloads sentence-transformer models from HuggingFace; all model downloads are … |
| Shell | NONE | WRITE | ✗ Violation | scripts/index.py:96 subprocess.check_call(['uv', 'pip', 'install', ...]); script… |
File Tree
6 files · 31.5 KB · 962 lines Python 3f · 671L
Shell 1f · 157L
Markdown 1f · 129L
JSON 1f · 5L
├─
▾
scripts
│ ├─
index-batch.sh
Shell
│ ├─
index.py
Python
│ ├─
monitor.py
Python
│ └─
query.py
Python
├─
_meta.json
JSON
└─
SKILL.md
Markdown
Dependencies 3 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
chromadb | * | pip | No | Version not pinned — indirect dependency via requirements |
sentence-transformers | * | pip | No | Version not pinned — core dependency |
python-docx | * | pip | No | Version not pinned; installed on-demand by index.py |
Security Positives
✓ Security boundaries are well-implemented: ALLOWED_ROOTS restrict indexing to ~/Documenti and ~/Scaricati only
✓ BLOCKED_PATTERNS explicitly exclude .ssh, .gnupg, .env, credentials, tokens, and .config/openclaw
✓ File hash checking (SHA-256) prevents re-indexing unchanged files — no data duplication risk
✓ No hardcoded credentials, API keys, or secrets anywhere in the codebase
✓ No base64, eval, or obfuscation patterns present
✓ No external network calls except to HuggingFace for model downloads (legitimate and declared)
✓ No C2, reverse shell, or data exfiltration behavior observed
✓ Git-based rollback in index-batch.sh provides integrity protection against corruption
✓ OOM protection via SIGKILL detection and rollback is a responsible design choice for low-RAM devices
✓ Trustworthy purpose: local semantic document search with no outbound data transmission