https://github.com/huangjunsen0406/py-xiaozhi
· scanned 2026-05-15 09:54 UTC (3 weeks ago)
· 10 languages
89 findings (23 legacy + 66 scanner) 58th percentile · Python · medium (20-100K LoC) Scanner says 90 (lower by 28)
Last scanned 3 weeks ago · v1 · 19 findings from 1 source. Findings combine the legacy security pipeline AND the multi-layer engine (atlas, wiring, flows, ranked) AND verified AI agent contributions.
| Component | Sub-score | Weight | Contribution |
|---|---|---|---|
structure_score |
85.0 | 0.15 | 12.75 |
security_score |
84.5 | 0.25 | 21.12 |
testing_score |
0.0 | 0.20 | 0.00 |
documentation_score |
73.6 | 0.15 | 11.04 |
practices_score |
80.0 | 0.15 | 12.00 |
code_quality |
56.6 | 0.10 | 5.66 |
| Overall | 1.00 | 62.6 |
agent: 4.2 ·
threat: 11.3
All 1521 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
parse_args |
software | healthy | main.py:14 |
handle_activation |
software | healthy | main.py:58 |
_create_activation |
software | healthy | main.py:89 |
start_app |
software | healthy | main.py:106 |
handle_sigint |
software | dead | main.py:182 |
__init__ |
software | healthy | scripts/keyword_generator.py:24 |
_load_tokens |
software | healthy | scripts/keyword_generator.py:64 |
_split_pinyin |
software | healthy | scripts/keyword_generator.py:85 |
chinese_to_keyword_format |
software | healthy | scripts/keyword_generator.py:105 |
add_keyword |
software | healthy | scripts/keyword_generator.py:143 |
batch_add_keywords |
software | healthy | scripts/keyword_generator.py:177 |
list_keywords |
software | healthy | scripts/keyword_generator.py:201 |
main |
software | healthy | scripts/keyword_generator.py:228 |
__init__ |
software | healthy | scripts/music_cache_scanner.py:185 |
_calculate_hash |
software | healthy | scripts/music_cache_scanner.py:53 |
extract_metadata |
software | healthy | scripts/music_cache_scanner.py:67 |
_get_tag_value |
software | healthy | scripts/music_cache_scanner.py:121 |
format_duration |
software | healthy | scripts/music_cache_scanner.py:134 |
format_file_size |
software | healthy | scripts/music_cache_scanner.py:145 |
to_dict |
software | healthy | scripts/music_cache_scanner.py:156 |
scan_cache |
software | healthy | scripts/music_cache_scanner.py:196 |
remove_duplicates |
software | healthy | scripts/music_cache_scanner.py:250 |
sort_playlist |
software | healthy | scripts/music_cache_scanner.py:272 |
print_statistics |
software | healthy | scripts/music_cache_scanner.py:293 |
print_playlist |
software | healthy | scripts/music_cache_scanner.py:320 |
export_playlist |
software | healthy | scripts/music_cache_scanner.py:344 |
search_songs |
software | healthy | scripts/music_cache_scanner.py:385 |
get_artists |
software | healthy | scripts/music_cache_scanner.py:411 |
get_albums |
software | healthy | scripts/music_cache_scanner.py:423 |
main |
software | healthy | scripts/music_cache_scanner.py:438 |
print_directory_tree |
software | healthy | scripts/dir_tree.py:19 |
detect_audio_devices |
software | healthy | scripts/py_audio_scanner.py:7 |
get_camera_capabilities |
software | healthy | scripts/camera_scanner.py:27 |
detect_cameras |
software | healthy | scripts/camera_scanner.py:80 |
_get_library_path |
software | healthy | libs/webrtc_apm/__init__.py:16 |
_ensure_library_loaded |
software | healthy | libs/webrtc_apm/__init__.py:48 |
_init_function_signatures |
software | healthy | libs/webrtc_apm/__init__.py:239 |
__init__ |
software | healthy | libs/webrtc_apm/__init__.py:284 |
__del__ |
software | healthy | libs/webrtc_apm/__init__.py:294 |
create_stream_config |
software | dead | libs/webrtc_apm/__init__.py:299 |
destroy_stream_config |
software | dead | libs/webrtc_apm/__init__.py:314 |
apply_config |
software | dead | libs/webrtc_apm/__init__.py:318 |
process_reverse_stream |
software | dead | libs/webrtc_apm/__init__.py:329 |
process_stream |
software | dead | libs/webrtc_apm/__init__.py:346 |
set_stream_delay_ms |
software | dead | libs/webrtc_apm/__init__.py:363 |
create_default_config |
software | dead | libs/webrtc_apm/__init__.py:371 |
get_instance |
software | healthy | src/mcp/mcp_server.py:25 |
__init__ |
software | healthy | src/mcp/mcp_server.py:33 |
set_send_callback |
software | healthy | src/mcp/mcp_server.py:38 |
add_tool |
software | healthy | src/mcp/mcp_server.py:44 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
checke_opus.sh |
software | healthy | checke_opus.sh |
build.json |
software | healthy | build.json |
README.md |
software | healthy | README.md |
README.en.md |
software | healthy | README.en.md |
format_code.sh |
software | healthy | format_code.sh |
pyproject.toml |
software | healthy | pyproject.toml |
main.py |
software | healthy | main.py |
requirements.txt |
software | healthy | requirements.txt |
AGENTS.md |
software | healthy | AGENTS.md |
README.md |
software | healthy | models/zh/README.md |
configuration.json |
software | healthy | models/zh/configuration.json |
README.md |
software | healthy | models/en/README.md |
keyword_generator.py |
software | healthy | scripts/keyword_generator.py |
debug_audio_devices.py |
software | warning | scripts/debug_audio_devices.py |
music_cache_scanner.py |
software | healthy | scripts/music_cache_scanner.py |
dir_tree.py |
software | healthy | scripts/dir_tree.py |
py_audio_scanner.py |
software | healthy | scripts/py_audio_scanner.py |
camera_scanner.py |
software | healthy | scripts/camera_scanner.py |
__init__.py |
software | healthy | libs/webrtc_apm/__init__.py |
README.md |
software | healthy | libs/webrtc_apm/README.md |
README.md |
software | healthy | documents/README.md |
pnpm-lock.yaml |
software | healthy | documents/pnpm-lock.yaml |
package.json |
software | healthy | documents/package.json |
index.ts |
software | healthy | documents/index.ts |
tsconfig.json |
software | healthy | documents/tsconfig.json |
index.md |
software | healthy | documents/docs/index.md |
contributing.md |
software | healthy | documents/docs/contributing.md |
team.md |
software | healthy | documents/docs/about/team.md |
Member.ts |
software | warning | documents/docs/about/team/Member.ts |
TeamMember.vue |
software | healthy | documents/docs/about/team/TeamMember.vue |
members-partner.json |
software | healthy | documents/docs/about/team/members-partner.json |
TeamList.vue |
software | healthy | documents/docs/about/team/TeamList.vue |
TeamPage.vue |
software | healthy | documents/docs/about/team/TeamPage.vue |
TeamHero.vue |
software | healthy | documents/docs/about/team/TeamHero.vue |
members-core.json |
software | healthy | documents/docs/about/team/members-core.json |
index.md |
software | healthy | documents/docs/architecture/index.md |
TechnologyStack.vue |
software | healthy | documents/docs/architecture/components/TechnologyStack.vue |
ModuleDetails.vue |
software | healthy | documents/docs/architecture/components/ModuleDetails.vue |
CoreArchitecture.vue |
software | healthy | documents/docs/architecture/components/CoreArchitecture.vue |
ArchitectureFeatures.vue |
software | healthy | documents/docs/architecture/components/ArchitectureFeatures… |
system.md |
software | healthy | documents/docs/mcp/system.md |
ha.md |
software | healthy | documents/docs/mcp/ha.md |
index.md |
software | healthy | documents/docs/mcp/index.md |
camera.md |
software | healthy | documents/docs/mcp/camera.md |
xiaozhi-mcp.md |
software | healthy | documents/docs/mcp/xiaozhi-mcp.md |
music.md |
software | healthy | documents/docs/mcp/music.md |
SponsorsList.vue |
software | healthy | documents/docs/sponsors/SponsorsList.vue |
index.md |
software | healthy | documents/docs/sponsors/index.md |
data.js |
software | warning | documents/docs/sponsors/data.js |
index.md |
software | healthy | documents/docs/ecosystem/index.md |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
KeywordGenerator |
software | healthy | scripts/keyword_generator.py:23 |
MusicMetadata |
software | healthy | scripts/music_cache_scanner.py:27 |
MusicCacheScanner |
software | healthy | scripts/music_cache_scanner.py:180 |
DownmixMethod |
software | healthy | libs/webrtc_apm/__init__.py:68 |
NoiseSuppressionLevel |
software | healthy | libs/webrtc_apm/__init__.py:73 |
GainController1Mode |
software | healthy | libs/webrtc_apm/__init__.py:80 |
ClippingPredictorMode |
software | healthy | libs/webrtc_apm/__init__.py:86 |
Pipeline |
software | healthy | libs/webrtc_apm/__init__.py:93 |
PreAmplifier |
software | healthy | libs/webrtc_apm/__init__.py:102 |
AnalogMicGainEmulation |
software | healthy | libs/webrtc_apm/__init__.py:109 |
CaptureLevelAdjustment |
software | healthy | libs/webrtc_apm/__init__.py:116 |
HighPassFilter |
software | healthy | libs/webrtc_apm/__init__.py:125 |
EchoCanceller |
software | healthy | libs/webrtc_apm/__init__.py:132 |
NoiseSuppression |
software | healthy | libs/webrtc_apm/__init__.py:141 |
TransientSuppression |
software | healthy | libs/webrtc_apm/__init__.py:149 |
ClippingPredictor |
software | healthy | libs/webrtc_apm/__init__.py:155 |
AnalogGainController |
software | healthy | libs/webrtc_apm/__init__.py:168 |
GainController1 |
software | healthy | libs/webrtc_apm/__init__.py:181 |
InputVolumeController |
software | healthy | libs/webrtc_apm/__init__.py:192 |
AdaptiveDigital |
software | healthy | libs/webrtc_apm/__init__.py:198 |
FixedDigital |
software | healthy | libs/webrtc_apm/__init__.py:209 |
GainController2 |
software | healthy | libs/webrtc_apm/__init__.py:215 |
Config |
software | healthy | libs/webrtc_apm/__init__.py:224 |
WebRTCAudioProcessing |
software | healthy | libs/webrtc_apm/__init__.py:281 |
McpServer |
software | healthy | src/mcp/mcp_server.py:17 |
PropertyType |
software | healthy | src/mcp/tooling.py:19 |
Property |
software | healthy | src/mcp/tooling.py:30 |
PropertyList |
software | healthy | src/mcp/tooling.py:83 |
McpTool |
software | healthy | src/mcp/tooling.py:146 |
PropType |
software | healthy | src/mcp/decorators.py:17 |
Prop |
software | healthy | src/mcp/decorators.py:37 |
ToolDef |
software | healthy | src/mcp/decorators.py:61 |
ScreenshotCamera |
software | healthy | src/mcp/tools/screenshot/screenshot_camera.py:15 |
BaseCamera |
software | healthy | src/mcp/tools/camera/base_camera.py:15 |
NormalCamera |
software | healthy | src/mcp/tools/camera/normal_camera.py:17 |
VLCamera |
software | healthy | src/mcp/tools/camera/vl_camera.py:19 |
AppMatcher |
software | healthy | src/mcp/tools/app/utils.py:44 |
VolumeController |
software | healthy | src/mcp/tools/volume/volume_controller.py:17 |
MusicStateData |
software | healthy | src/mcp/tools/music/events.py:11 |
MusicLyricsData |
software | healthy | src/mcp/tools/music/events.py:30 |
MusicControlRequest |
software | healthy | src/mcp/tools/music/events.py:45 |
MusicMetadata |
software | healthy | src/mcp/tools/music/music_player.py:36 |
MusicPlayer |
software | healthy | src/mcp/tools/music/music_player.py:96 |
ViewManager |
software | healthy | src/ui/gui/manager.py:18 |
GUIActivation |
software | healthy | src/ui/gui/activation.py:17 |
EmotionService |
software | healthy | src/ui/gui/services/emotion_service.py:15 |
TrayService |
software | healthy | src/ui/gui/services/tray_service.py:17 |
UITextUpdate |
software | healthy | src/ui/shared/events.py:10 |
UIEmotionUpdate |
software | healthy | src/ui/shared/events.py:17 |
UIStatusUpdate |
software | healthy | src/ui/shared/events.py:24 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
models |
software | healthy | models |
zh |
software | healthy | models/zh |
en |
software | healthy | models/en |
scripts |
software | healthy | scripts |
libs |
software | healthy | libs |
webrtc_apm |
software | healthy | libs/webrtc_apm |
documents |
software | healthy | documents |
docs |
software | healthy | documents/docs |
about |
software | healthy | documents/docs/about |
team |
software | healthy | documents/docs/about/team |
architecture |
software | healthy | documents/docs/architecture |
components |
software | healthy | documents/docs/architecture/components |
mcp |
software | healthy | documents/docs/mcp |
sponsors |
software | healthy | documents/docs/sponsors |
ecosystem |
software | healthy | documents/docs/ecosystem |
guide |
software | healthy | documents/docs/guide |
old_docs |
software | healthy | documents/docs/guide/old_docs |
.github |
software | healthy | .github |
ISSUE_TEMPLATE |
software | healthy | .github/ISSUE_TEMPLATE |
workflows |
software | healthy | .github/workflows |
src |
software | healthy | src |
mcp |
software | healthy | src/mcp |
tools |
software | healthy | src/mcp/tools |
screenshot |
software | healthy | src/mcp/tools/screenshot |
weather |
software | healthy | src/mcp/tools/weather |
camera |
software | healthy | src/mcp/tools/camera |
app |
software | healthy | src/mcp/tools/app |
volume |
software | healthy | src/mcp/tools/volume |
music |
software | healthy | src/mcp/tools/music |
ui |
software | healthy | src/ui |
gui |
software | healthy | src/ui/gui |
services |
software | healthy | src/ui/gui/services |
shared |
software | healthy | src/ui/shared |
models |
software | healthy | src/ui/shared/models |
bridge |
software | healthy | src/ui/shared/bridge |
cli |
software | healthy | src/ui/cli |
gpio |
software | healthy | src/ui/gpio |
constants |
software | healthy | src/constants |
utils |
software | healthy | src/utils |
activation |
software | healthy | src/activation |
bootstrap |
software | healthy | src/bootstrap |
audio_codecs |
software | healthy | src/audio_codecs |
audio_processing |
software | healthy | src/audio_processing |
keyword_converters |
software | healthy | src/audio_processing/keyword_converters |
logging |
software | healthy | src/logging |
core |
software | healthy | src/core |
protocols |
software | healthy | src/protocols |
plugins |
software | healthy | src/plugins |
shortcuts |
software | healthy | src/plugins/shortcuts |
| Label | Layer | Status | Path |
|---|---|---|---|
0.2.2.0 |
network | healthy | pyproject.toml |
127.0.0.1 |
network | healthy | src/activation/service.py |
8.8.8.8 |
network | healthy | src/activation/service.py |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::vitepress |
cicd | healthy | .github/workflows/vitepress.yml |
gha::release |
cicd | healthy | .github/workflows/release.yml |
gha::build |
cicd | healthy | .github/workflows/build.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
build-and-deploy |
cicd | healthy | .github/workflows/vitepress.yml |
create-release |
cicd | healthy | .github/workflows/release.yml |
build |
cicd | healthy | .github/workflows/build.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
ACCESS_TOKEN |
cicd | healthy | — |
GITHUB_TOKEN |
cicd | healthy | — |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-a6lf9oqy |
software | healthy | /tmp/repobility-clone-a6lf9oqy |
| Label | Layer | Status | Path |
|---|---|---|---|
port:8883 |
network | healthy | src/protocols/mqtt_protocol.py |
| Label | Layer | Status | Path |
|---|---|---|---|
gpu (detected) |
hardware | healthy | src/mcp/tools/app/scanner_mac.py |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::src/logging/filters.py |
security | healthy | src/logging/filters.py |
This page is publicly accessible at:
https://repobility.com/scan/57263f9d-e867-4072-a691-2b0ee18162b6/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/57263f9d-e867-4072-a691-2b0ee18162b6/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.