Charlie 语音助手 — 本地部署的私人AI助理,零配置Demo模式开箱即用,支持语音交互、ESP32开发板终端、飞书推送、MCP技能扩展。ASR→大脑→TTS语音闭环,Demo规则模式无需任何API key即可对话。
- capability exposure inferred + 35
- recent drift inferred + 20
- tool safety inferred + 17
- trust mitigators mixed − 3
inferred mixed
The A–E grade is our heuristic synthesis — a "review this" prompt, not a verdict. Each factor is tagged by what backs it: attested (a verifiable record), reported (a third party's claim), or inferred (our own heuristic, e.g. permissions). See methodology.
graded 1m ago · see ecosystem CVEs →
- D · 62 → D · 69
- D · 69 → D · 62
- D · 61 → D · 69
No known CVEs for this server.
- high dangerous code
committed secret: private key · dynamic exec: __import__ sink, eval()/exec()
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium dangerous code
env-secret-flows-to-network-py: An environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a key, call
- medium toxic flow (lethal trifecta)
lethal trifecta reachable across this server's tool + source surface: private-data access + untrusted-content ingestion + network exfil (a leg is proven only in the analyzed source)
analyzed commit deb5cda · analyzer v32 · 1h ago
skills & prompt files 39
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/ask-matt/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/charlie-dev/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/claude-handoff/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/code-review/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/codebase-design/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/diagnosing-bugs/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/domain-modeling/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/douyin-publishing/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/git-guardrails-claude-code/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/grill-me/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/grill-with-docs/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/grilling/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/handoff/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/implement/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/improve-codebase-architecture/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/loop-me/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/migrate-to-shoehorn/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/prototype/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/research/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/resolving-merge-conflicts/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/scaffold-exercises/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/setup-matt-pocock-skills/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/setup-pre-commit/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/setup-ts-deep-modules/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/tdd/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/teach/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/to-questionnaire/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/to-spec/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/to-tickets/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/triage/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/wait-what/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/wayfinder/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/wizard/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/writing-beats/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/writing-for-agents/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/writing-fragments/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/writing-shape/SKILL.md
- skill SxLiuYu-charlie-voice-assistant-deb5cda/.agents/skills/xiaohongshu-publishing/SKILL.md
- agent-rules SxLiuYu-charlie-voice-assistant-deb5cda/docs/AGENTS.md
danger signals4
- dynamic code execution __import__ sink SxLiuYu-charlie-voice-assistant-deb5cda/src/agent/retry.py :12
RETRY_AFTER_CAP = float(__import__("os").environ.get("ASSISTANT_KID_RETRY_AFTER_CAP", "60")) - dynamic code execution eval()/exec() SxLiuYu-charlie-voice-assistant-deb5cda/src/skills/magic-info.py :285
exec(_compiled, {'__builtins__': { - dynamic code execution eval()/exec() SxLiuYu-charlie-voice-assistant-deb5cda/src/tests/test_decisions.py :33
exec(code, mod.__dict__) - committed secret private key SxLiuYu-charlie-voice-assistant-deb5cda/config/cert/key.pem :1
PEM private key block (redacted)
- recent drift +20 capability drift →
Heuristic, inferred signals — false positives (legitimately powerful tools, forks, language ports) are expected. Treat each as "review this", not a verdict. See the ecosystem-wide picture on the security hub, or the fleet security of SxLiuYu.