Scan Report
20 /100
amber-hunter
Universal AI memory backend for Huper琥珀 — local E2E encrypted memory capture and recall with optional cloud sync
A legitimate, well-documented local AI memory backend with strong E2E encryption. Minor documented fallbacks for headless Linux do not constitute hidden malicious behavior.
Safe to install
Consider pinning dependency versions in requirements.txt. For headless Linux, warn users about the config.json plaintext fallback for master_password. Otherwise safe to use.
Findings 5 items
| Severity | Finding | Location |
|---|---|---|
| Medium | Unpinned Python dependencies | requirements.txt:1 |
| Low | Linux headless stores master_password in plaintext | core/keychain.py:164 |
| Low | master_password also written to config.json as fallback on all platforms | amber_hunter.py:2063 |
| Info | Reads API keys from OpenClaw config | core/llm.py:524 |
| Info | Session file access for proactive capture | core/session.py:60 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | READ | READ | ✓ Aligned | SKILL.md allowed-tools maps Read→filesystem:READ; code reads ~/.amber-hunter/, ~… |
| Shell | WRITE | WRITE | ✓ Aligned | install.sh/freeze.sh are shell scripts; LLM providers use subprocess.run with cu… |
| Network | READ | READ | ✓ Aligned | SKILL.md declares huper.org cloud sync; core/llm.py makes API calls to minimaxi.… |
| Database | READ | WRITE | ✓ Aligned | SKILL.md: Memory write via /ingest is a core capability; code writes to SQLite a… |
| Environment | NONE | READ | ✓ Aligned | core/llm.py:361 reads MINIMAX_API_KEY env var; core/keychain.py:115 reads AMBER_… |
8 findings
Medium External URL 外部 URL
https://huper.org CHANGELOG.md:275 Medium External URL 外部 URL
https://huper.org/dashboard README.md:33 Medium External URL 外部 URL
https://huper.org/api README.md:43 Medium External URL 外部 URL
https://huper.org/api/ingest SKILL.md:68 Medium External URL 外部 URL
http://127.0.0.1:18998 amber_hunter.py:619 Medium External URL 外部 URL
https://api.minimaxi.com/anthropic/v1/messages core/llm.py:130 Medium External URL 外部 URL
https://api.groq.com/openai/v1/chat/completions core/llm.py:624 Medium External URL 外部 URL
https://api.minimaxi.com/anthropic core/llm.py:692 File Tree
29 files · 240.0 KB · 6548 lines Python 14f · 4387L
Markdown 7f · 1057L
JavaScript 3f · 606L
Shell 3f · 325L
TypeScript 1f · 161L
Text 1f · 12L
├─
▾
core
│ ├─
__init__.py
Python
│ ├─
crypto.py
Python
│ ├─
db.py
Python
│ ├─
keychain.py
Python
│ ├─
llm.py
Python
│ ├─
models.py
Python
│ └─
session.py
Python
├─
▾
proactive
│ ├─
▾
hooks
│ │ └─
▾
openclaw
│ │ ├─
handler.js
JavaScript
│ │ ├─
handler.ts
TypeScript
│ │ └─
HOOK.md
Markdown
│ ├─
▾
scripts
│ │ └─
proactive-check.js
JavaScript
│ ├─
proactive-check.js
JavaScript
│ └─
README.md
Markdown
├─
▾
tests
│ ├─
▾
test_api
│ │ ├─
__init__.py
Python
│ │ ├─
test_recall.py
Python
│ │ └─
test_status.py
Python
│ ├─
__init__.py
Python
│ ├─
conftest.py
Python
│ └─
test_crypto.py
Python
├─
amber_hunter.py
Python
├─
CHANGELOG.md
Markdown
├─
CLAUDE.md
Markdown
├─
freeze.sh
Shell
├─
install.sh
Shell
├─
README.md
Markdown
├─
RELEASE_CHECKLIST.md
Markdown
├─
release.sh
Shell
├─
requirements.txt
Text
└─
SKILL.md
Markdown
Dependencies 8 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
fastapi | 0.115.0 | pip | No | Lower bound only, no upper cap |
uvicorn | 0.30.0 | pip | No | Lower bound only |
pydantic | 2.9.0 | pip | No | Lower bound only |
cryptography | 43.0.0 | pip | No | Lower bound only |
httpx | 0.27.0 | pip | No | Lower bound only |
sentence-transformers | >=2.2.0 | pip | No | Version not pinned, ~90MB ML model download at install time |
numpy | >=1.24.0 | pip | No | Version not pinned |
pytest | >=8.0.0 | pip | No | Test only, not shipped |
Security Positives
✓ E2E AES-256-GCM encryption with PBKDF2-HMAC-SHA256 key derivation (100k iterations)
✓ master_password stored in OS Keychain (macOS security, Linux secret-tool, Windows cmdkey)
✓ Local service restricted to localhost:18998 — no remote exposure
✓ Cloud sync payload is E2E encrypted before upload; huper.org never sees plaintext
✓ No base64/eval obfuscation or dynamic code execution patterns
✓ No reverse shell, C2 infrastructure, or data exfiltration to unexpected hosts
✓ All external network IOCs map to declared API endpoints (huper.org, LLM providers)
✓ Review queue requires user approval before memories become permanent
✓ SKILL.md is comprehensive and accurately describes capabilities
✓ Comprehensive CORS restrictions to declared origins only