live · scanning repos
Scanrepo
github.com
github.com / mbailey

mbailey/voicemode

Python·518 files·commit 5c1b3e4·scanned 3d ago·cached ✓
25/100
LOW RISK
Minor findings consistent with the project type. Nothing reachable from install hooks.

score capped at 251,332 stars — findings likely legitimate code patterns

verdict accurate?
threat-state: lowlive

FINDINGS ░▒▓

warningPython subprocess / os.system usageos.system() or subprocess with shell=True / suspicious commands can execute arbitrary shell commands. Plain pip/package installs are usually benign.scripts/diagnose-wsl-audio.py
    try:
        subprocess.run(["which", cmd], capture_output=True, check=True)
        return True
    except:
+4
warningPython subprocess / os.system usageos.system() or subprocess with shell=True / suspicious commands can execute arbitrary shell commands. Plain pip/package installs are usually benign.voice_mode/utils/services/whisper_version.py
        if (whisper_dir / ".git").exists():
            result = subprocess.run(
                ["git", "describe", "--tags", "--always"],
                cwd=whisper_dir,
+4
warningPython subprocess / os.system usageos.system() or subprocess with shell=True / suspicious commands can execute arbitrary shell commands. Plain pip/package installs are usually benign.voice_mode/utils/version_helpers.py
        # Use git ls-remote to get tags without cloning
        result = subprocess.run(
            ["git", "ls-remote", "--tags", repo_url],
            capture_output=True,
+4
criticalRemote script piped into a shellA shell script downloads remote content and executes it directly (e.g. `curl … | bash`). The payload is never stored or reviewable and can change server-side — a classic malware/backdoor install pattern.docs/web/install.sh
# Usage:
#   curl -fsSL https://getvoicemode.com/install.sh | bash
#   curl -fsSL https://getvoicemode.com/install.sh | bash -s -- -y  # non-interactive
#   curl -fsSL https://getvoicemode.com/install...
+10
criticalPython dynamic code executioneval(), exec() or compile() on untrusted input can execute arbitrary code. Common in Python malware for running obfuscated payloads.tests/test_server_syntax.py
    with open('{server_path}', 'r') as f:
        compile(f.read(), '{server_path}', 'exec')
    print("OK")
except SyntaxError as e:
+7
infoSuspicious files are not reachable from entry pointsFlagged files exist but are not imported by any entry point. They may be dead code, tests, or attack payloads triggered by another mechanism.+2
warningHex-encoded string sequencesLong hex-encoded strings are commonly used to hide malicious code from code review.tests/test_conversation_browser_playback.py
            # Create a simple WAV header (44 bytes) + minimal data
            wav_header = b'RIFF\x24\x08\x00\x00WAVEfmt \x10\x00\x00\x00\x01\x00\x02\x00\x22\x56\x00\x00\x88\x58\x01\x00\x04\x00\x10\x...
+5
warningHigh-entropy string literalsFound 3 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.scripts/diagnose-wsl-audio.py+3
warningHigh-entropy string literalsFound 3 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.scripts/release.py+3
warningHigh-entropy string literalsFound 5 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.scripts/view_event_logs.py+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.voice_mode/dj/library.py+3

Scores are heuristics. A “safe” verdict means no known-malicious patterns were found — clever malware can look boring. Wrong verdict? Flag it above; confirmed false positives become regression tests.

289 files scanned @ 5c1b3e4 | 8/21/2026 | heuristic scan — always review manually

risk by category
code execution25
network & exfiltration0
file system access0
obfuscation15
supply chain0
owasp / injection0
telemetry
files 289/518rules hit 11engine v5commit 5c1b3e4

github

mbailey/voicemode

Natural voice conversations with Claude Code

Python
1332
186
442d
518 files
289 scanned(56%)
5c1b3e4

architecture░▒▓

entry (0) flagged (61) pkg (195)
460 nodes · 1423 edgesscroll to zoom · click node to jump to finding