github Python analyzed 04052b2

aceFelix/jarvis

github

An AI butler tailored for personal computers - paying tribute to Jarvis from "Iron Man". It engages in conversation with you, assists you in operating your computer, resides in the background ready to respond to your summon, and is capable of both listening and speaking.

maintainer
aceFelix
licence
MIT
first seen
2026-08-03
last seen
2026-09-08
releases · 30d
2
short id

Drift inferred · capture-to-capture

  1. HIGH code analysis flagged dynamic code execution ×2 in aceFelix/jarvis
  2. HIGH code analysis flagged dynamic code execution ×2 in aceFelix/jarvis
  3. HIGH code analysis flagged dynamic code execution in aceFelix/jarvis
  4. HIGH code analysis flagged dynamic code execution in aceFelix/jarvis
  5. HIGH code analysis flagged dynamic code execution in aceFelix/jarvis
  6. HIGH code analysis flagged dynamic code execution in aceFelix/jarvis
  7. HIGH code analysis flagged dynamic code execution in aceFelix/jarvis
  8. HIGH code analysis flagged dynamic code execution in aceFelix/jarvis
  9. HIGH code analysis flagged dynamic code execution in aceFelix/jarvis
  10. HIGH code analysis flagged dynamic code execution in aceFelix/jarvis
  11. HIGH code analysis flagged dynamic code execution ×2 in aceFelix/jarvis
  12. HIGH code analysis flagged dynamic code execution ×2 in aceFelix/jarvis
capabilities 0 tools
transport stdio counts 0 tools · 0 res · 0 prompts permission surface via code analysis

No tools enumerated yet for this server.

skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 04052b2 · analyzer v33 · 1d ago

danger signals4

code evidence vv2.0.8 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 297

filesystem 92

  • fs aceFelix-jarvis-04052b2/agent/bridge/server.py :297 with open(path, "rb") as f:
  • fs aceFelix-jarvis-04052b2/agent/cli_anything/loader.py :15 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/cli_anything/market.py :20 import shutil
  • fs aceFelix-jarvis-04052b2/agent/cli_anything/migrate.py :11 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/cli_anything/registry.py :11 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/cli_anything/runner.py :19 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/cli_anything/schema.py :11 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/collaboration/mailbox.py :27 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/collaboration/subagent.py :43 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/collaboration/task_list.py :27 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/collaboration/team.py :30 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/collaboration/teammate.py :26 from pathlib import Path
show 28 more
  • fs aceFelix-jarvis-04052b2/agent/commands/handlers/init_command.py :13 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/commands/handlers/voice_commands.py :295 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/config/migrations.py :23 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/config/model_registry.py :17 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/config/settings.py :19 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/core/audit/tool_auditor.py :16 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/core/daemon/calendar_source.py :34 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/core/daemon/deadline.py :32 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/core/daemon/monitor.py :39 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/core/daemon/scheduler.py :38 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/core/daemon/vision_watcher.py :38 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/core/diag.py :31 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/core/error_recovery.py :20 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/core/extensions/mcp_client.py :42 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/core/extensions/plugins.py :16 import shutil
  • fs aceFelix-jarvis-04052b2/agent/core/extensions/skills.py :27 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/core/images.py :10 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/core/logging.py :17 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/core/memory/compactor.py :414 with open(file_path, "r", encoding="utf-8", errors="replace") as f:
  • fs aceFelix-jarvis-04052b2/agent/core/memory/file_state.py :16 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/core/memory/profile_store.py :26 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/core/memory/recovery.py :29 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/core/memory/store.py :26 from pathlib import Path
  • fs aceFelix-jarvis-04052b2/agent/core/orchestrator.py :374 with open(filepath, "w", encoding="utf-8") as f:
  • fs (weak) aceFelix-jarvis-04052b2/agent/core/sandbox/audit.py :27 from pathlib import Path
  • fs (weak) aceFelix-jarvis-04052b2/agent/core/sandbox/executor.py :556 import shutil
  • fs (weak) aceFelix-jarvis-04052b2/agent/core/sandbox/file_guard.py :26 import shutil
  • fs aceFelix-jarvis-04052b2/agent/daemon/autostart.py :21 from pathlib import Path

52 more not shown — this panel samples each group; the count above is the real total.

shell / exec 9

  • shell aceFelix-jarvis-04052b2/agent/cli_anything/market.py :21 import subprocess
  • shell aceFelix-jarvis-04052b2/agent/core/error_recovery.py :17 import subprocess
  • shell aceFelix-jarvis-04052b2/agent/core/extensions/plugins.py :18 import subprocess
  • shell aceFelix-jarvis-04052b2/agent/daemon/autostart.py :415 import subprocess
  • shell aceFelix-jarvis-04052b2/agent/doctor.py :21 import subprocess
  • shell aceFelix-jarvis-04052b2/agent/tools/extensions/dev_server_tool.py :23 import subprocess
  • shell (weak) aceFelix-jarvis-04052b2/tests/core/test_plugins.py :23 import subprocess
  • shell (weak) aceFelix-jarvis-04052b2/tests/test_sandbox_more.py :26 import subprocess
  • shell (weak) aceFelix-jarvis-04052b2/tests/voice/test_voice_state.py :18 import subprocess

network 18

  • net aceFelix-jarvis-04052b2/agent/bridge/server.py :34 from urllib.parse import urlparse, parse_qs
  • net aceFelix-jarvis-04052b2/agent/cli_anything/market.py :23 import urllib.error
  • net aceFelix-jarvis-04052b2/agent/commands/handlers/wechat_commands.py :35 import aiohttp # noqa: F401
  • net aceFelix-jarvis-04052b2/agent/core/daemon/calendar_source.py :335 import urllib.request
  • net aceFelix-jarvis-04052b2/agent/core/daemon/vision_watcher.py :34 import urllib.request
  • net aceFelix-jarvis-04052b2/agent/core/extensions/plugins.py :74 from urllib.request import Request, urlopen
  • net aceFelix-jarvis-04052b2/agent/llm/openai_provider.py :144 # ── P-02: 共享 httpx.AsyncClient,复用 HTTP 连接池 ──
  • net aceFelix-jarvis-04052b2/agent/lsp/client.py :341 from urllib.parse import unquote
  • net aceFelix-jarvis-04052b2/agent/tools/extensions/dev_server_tool.py :22 import socket
  • net aceFelix-jarvis-04052b2/agent/tools/location.py :14 from urllib.request import Request, urlopen
  • net aceFelix-jarvis-04052b2/agent/tools/web/web.py :18 import socket
  • net aceFelix-jarvis-04052b2/agent/ui/workbench/single_instance.py :20 import socket
show 6 more
  • net aceFelix-jarvis-04052b2/agent/voice/stt.py :1009 import urllib.request
  • net aceFelix-jarvis-04052b2/agent/wechat/ilink.py :23 from urllib.parse import quote
  • net (weak) aceFelix-jarvis-04052b2/tests/core/test_plugins.py :90 "urllib.request.urlopen", lambda req, timeout=0, context=None: FakeResp(),
  • net (weak) aceFelix-jarvis-04052b2/tests/daemon/test_calendar_source.py :313 "urllib.request.urlopen",
  • net (weak) aceFelix-jarvis-04052b2/tests/daemon/test_vision_watcher.py :112 vw.urllib.request, "urlretrieve",
  • net (weak) aceFelix-jarvis-04052b2/tests/ui/test_workbench_single_instance.py :8 import socket

secrets 7

  • secrets aceFelix-jarvis-04052b2/agent/commands/handlers/voice_commands.py :128 or os.environ.get("DASHSCOPE_API_KEY", "")
  • secrets aceFelix-jarvis-04052b2/agent/config/env.py :43 dashscope_key = os.environ.get("DASHSCOPE_API_KEY")
  • secrets aceFelix-jarvis-04052b2/agent/config/keyring_store.py :45 import keyring
  • secrets aceFelix-jarvis-04052b2/agent/ui/workbench/engine.py :308 or os.environ.get("DASHSCOPE_API_KEY", "")
  • secrets aceFelix-jarvis-04052b2/agent/voice/stt.py :226 self._api_key = api_key or os.environ.get("DASHSCOPE_API_KEY", "")
  • secrets aceFelix-jarvis-04052b2/agent/voice/tts.py :177 self._api_key = api_key or os.environ.get("DASHSCOPE_API_KEY", "")
  • secrets aceFelix-jarvis-04052b2/agent/voice/voice_config.py :60 return os.environ.get("DASHSCOPE_API_KEY", "") or getattr(settings, "api_key", "") or ""

declared dependencies 31

  • mcp@>=1.0.0
  • anthropic@>=0.39.0
  • openai@>=1.50.0
  • zai-sdk@>=0.2.2
  • pydantic@>=2.7.0
  • pydantic-settings@>=2.3.0
  • rich@>=13.7.0
  • prompt_toolkit@>=3.0.0
  • pyyaml@>=6.0
  • tomli@>=2.0; python_version <
  • pyautogui@>=0.9.54
  • pillow@>=10.0.0
show 19 more
  • pywinauto@>=0.6.9; sys_platform ==
  • linux@*
  • playwright@>=1.40.0
  • opencv-python@>=4.8.0
  • mediapipe@>=0.10.14
  • paddleocr@>=2.7.0
  • dashscope@>=1.20.0
  • pyaudio@>=0.2.14
  • aec-audio-processing@>=1.0.0
  • numpy@>=1.24.0
  • pywin32@>=227; sys_platform ==
  • darwin@*
  • pywebview@>=5.0
  • aiohttp@>=3.9.0
  • qrcode@>=7.4.0
  • pytest@>=8.0.0
  • pytest-asyncio@>=0.23.0
  • ruff@>=0.5.0
  • jarvis-agent@*

clipboard 1

  • clipboard shell call aceFelix-jarvis-04052b2/agent/prompts/system.py :570 - 剪贴板:`pbcopy` / `pbpaste`