🐕 Self-hosted security-first AI agent · 22 providers · 11 chat channels · WebUI · 3-level memory · task-schedule · automation · skills · MCP
Drift inferred · capture-to-capture
- HIGH code analysis flagged dynamic code execution in RikyZ90/ShibaClaw
- HIGH code analysis flagged dynamic code execution in RikyZ90/ShibaClaw
transport stdio · streamable-http counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
no tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit bdc205e · analyzer v18 · 1h ago
skills & prompt files 10
- skillRikyZ90-ShibaClaw-bdc205e/shibaclaw/skills/automation/SKILL.md
- skillRikyZ90-ShibaClaw-bdc205e/shibaclaw/skills/clawhub/SKILL.md
- skillRikyZ90-ShibaClaw-bdc205e/shibaclaw/skills/github/SKILL.md
- skillRikyZ90-ShibaClaw-bdc205e/shibaclaw/skills/memory/SKILL.md
- skillRikyZ90-ShibaClaw-bdc205e/shibaclaw/skills/skill-creator/SKILL.md
- skillRikyZ90-ShibaClaw-bdc205e/shibaclaw/skills/summarize/SKILL.md
- skillRikyZ90-ShibaClaw-bdc205e/shibaclaw/skills/tmux/SKILL.md
- skillRikyZ90-ShibaClaw-bdc205e/shibaclaw/skills/weather/SKILL.md
- skillRikyZ90-ShibaClaw-bdc205e/shibaclaw/skills/windows-shell/SKILL.md
- agent-rulesRikyZ90-ShibaClaw-bdc205e/shibaclaw/templates/AGENTS.md
danger signals1
- dynamic code execution__import__()RikyZ90-ShibaClaw-bdc205e/scripts/build_windows.py:38
__import__(module_name)
evidence-backed
findings quoted directly from the published source artifact — not inferred
filesystem 46
- fs RikyZ90-ShibaClaw-bdc205e/pyinstaller-hooks/rthook_unblock_dlls.py :50
os.remove(ads_path) - fs RikyZ90-ShibaClaw-bdc205e/scripts/build_windows.py :6
import shutil - fs RikyZ90-ShibaClaw-bdc205e/scripts/generate_icons.py :21
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/__init__.py :7
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/agent/context.py :7
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/agent/loop.py :13
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/agent/memory.py :9
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/agent/profiles.py :4
import shutil - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/agent/skills.py :8
import shutil - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/agent/subagent.py :6
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/agent/tools/filesystem.py :4
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/agent/tools/memory_search.py :7
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/agent/tools/message.py :3
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/agent/tools/shell.py :6
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/automation/service.py :35
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/brain/manager.py :4
import shutil - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/cli/auth.py :196
with open(os.path.join(token_dir, "access-token"), "w") as f: - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/cli/base.py :7
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/cli/onboard.py :7
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/config/loader.py :4
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/config/paths.py :6
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/config/schema.py :4
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/desktop/controller.py :72
webbrowser.open("https://github.com/RikyZ90/ShibaClaw") - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/desktop/tray.py :72
return Image.open(icon_path) - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/desktop/window_state.py :7
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/helpers/helpers.py :5
import shutil - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/helpers/system.py :44
with open("/proc/1/cgroup", "r") as f: - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/integrations/base.py :6
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/integrations/dingtalk.py :8
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/integrations/discord.py :7
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/integrations/feishu.py :727
with open(file_path, "rb") as f: - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/integrations/matrix.py :6
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/integrations/telegram.py :556
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/security/install_audit.py :277
os.unlink(temp_reqs_path) - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/skills/skill-creator/scripts/init_skill.py :18
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/skills/skill-creator/scripts/package_skill.py :15
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/skills/skill-creator/scripts/quick_validate.py :8
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/thinkers/github_copilot_provider.py :67
with open(token_path, "r", encoding="utf-8") as f: - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/updater/apply.py :5
import shutil - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/updater/detector.py :8
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/webui/oauth_github.py :320
with open(os.path.join(token_dir, "access-token"), "w") as f: - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/webui/routers/fs.py :7
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/webui/routers/sessions.py :94
os.remove(path) - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/webui/server.py :11
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/webui/utils.py :8
from pathlib import Path - fs RikyZ90-ShibaClaw-bdc205e/shibaclaw/webui/ws_handler.py :19
from pathlib import Path
shell / exec 10
- shell RikyZ90-ShibaClaw-bdc205e/scripts/build_windows.py :7
import subprocess - shell RikyZ90-ShibaClaw-bdc205e/shibaclaw/agent/loop.py :605
import subprocess - shell RikyZ90-ShibaClaw-bdc205e/shibaclaw/agent/tools/shell.py :202
import subprocess - shell RikyZ90-ShibaClaw-bdc205e/shibaclaw/cli/commands.py :101
import subprocess - shell RikyZ90-ShibaClaw-bdc205e/shibaclaw/desktop/controller.py :198
import subprocess - shell RikyZ90-ShibaClaw-bdc205e/shibaclaw/desktop/runtime.py :16
import subprocess - shell RikyZ90-ShibaClaw-bdc205e/shibaclaw/helpers/system.py :129
import subprocess - shell RikyZ90-ShibaClaw-bdc205e/shibaclaw/updater/apply.py :6
import subprocess - shell RikyZ90-ShibaClaw-bdc205e/shibaclaw/updater/detector.py :6
import subprocess - shell RikyZ90-ShibaClaw-bdc205e/shibaclaw/webui/routers/system.py :6
import subprocess
network 25
- net RikyZ90-ShibaClaw-bdc205e/shibaclaw/agent/tools/browser.py :7
import httpx - net RikyZ90-ShibaClaw-bdc205e/shibaclaw/agent/tools/mcp.py :7
import httpx - net RikyZ90-ShibaClaw-bdc205e/shibaclaw/agent/tools/web.py :11
from urllib.parse import urlparse - net RikyZ90-ShibaClaw-bdc205e/shibaclaw/cli/auth.py :9
import httpx - net RikyZ90-ShibaClaw-bdc205e/shibaclaw/cli/commands.py :100
import socket - net RikyZ90-ShibaClaw-bdc205e/shibaclaw/cli/gateway.py :260
import httpx - net RikyZ90-ShibaClaw-bdc205e/shibaclaw/cli/onboard.py :285
import urllib.error - net RikyZ90-ShibaClaw-bdc205e/shibaclaw/desktop/runtime.py :15
import socket - net RikyZ90-ShibaClaw-bdc205e/shibaclaw/helpers/system.py :12
import socket - net RikyZ90-ShibaClaw-bdc205e/shibaclaw/integrations/dingtalk.py :10
from urllib.parse import unquote, urlparse - net RikyZ90-ShibaClaw-bdc205e/shibaclaw/integrations/discord.py :9
from urllib.parse import quote, urlsplit, urlunsplit - net RikyZ90-ShibaClaw-bdc205e/shibaclaw/integrations/mochat.py :12
import httpx - net RikyZ90-ShibaClaw-bdc205e/shibaclaw/integrations/whatsapp.py :59
from urllib.parse import urlparse as _urlparse - net RikyZ90-ShibaClaw-bdc205e/shibaclaw/security/network.py :7
import socket - net RikyZ90-ShibaClaw-bdc205e/shibaclaw/thinkers/azure_openai_provider.py :7
from urllib.parse import urljoin - net RikyZ90-ShibaClaw-bdc205e/shibaclaw/thinkers/github_copilot_provider.py :7
import httpx - net RikyZ90-ShibaClaw-bdc205e/shibaclaw/thinkers/openai_codex_provider.py :10
import httpx - net RikyZ90-ShibaClaw-bdc205e/shibaclaw/updater/apply.py :12
import httpx - net RikyZ90-ShibaClaw-bdc205e/shibaclaw/updater/checker.py :10
import httpx - net RikyZ90-ShibaClaw-bdc205e/shibaclaw/updater/manifest.py :6
import urllib.error - net RikyZ90-ShibaClaw-bdc205e/shibaclaw/webui/oauth_github.py :11
import urllib.parse - net RikyZ90-ShibaClaw-bdc205e/shibaclaw/webui/routers/fs.py :5
import urllib.parse - net RikyZ90-ShibaClaw-bdc205e/shibaclaw/webui/routers/system.py :9
import urllib.parse - net RikyZ90-ShibaClaw-bdc205e/shibaclaw/webui/server.py :8
import socket - net RikyZ90-ShibaClaw-bdc205e/shibaclaw/webui/ws_handler.py :17
import urllib.parse
secrets 8
- secrets RikyZ90-ShibaClaw-bdc205e/shibaclaw/agent/tools/web.py :124
api_key = self.config.api_key or os.environ.get("BRAVE_API_KEY", "") - secrets RikyZ90-ShibaClaw-bdc205e/shibaclaw/cli/auth.py :37
if os.environ.get("GITHUB_COPILOT_TOKEN"): - secrets RikyZ90-ShibaClaw-bdc205e/shibaclaw/cli/commands.py :117
os.environ["SHIBACLAW_AUTH_TOKEN"] = token - secrets RikyZ90-ShibaClaw-bdc205e/shibaclaw/desktop/runtime.py :150
os.environ["SHIBACLAW_AUTH_TOKEN"] = token - secrets RikyZ90-ShibaClaw-bdc205e/shibaclaw/thinkers/anthropic_provider.py :28
resolved_key = api_key or os.environ.get("ANTHROPIC_API_KEY") - secrets RikyZ90-ShibaClaw-bdc205e/shibaclaw/thinkers/github_copilot_provider.py :50
env_token = os.environ.get("GITHUB_COPILOT_TOKEN") - secrets RikyZ90-ShibaClaw-bdc205e/shibaclaw/webui/auth.py :23
env_token = os.environ.get("SHIBACLAW_AUTH_TOKEN", "").strip() - secrets RikyZ90-ShibaClaw-bdc205e/shibaclaw/webui/routers/oauth.py :28
has_env = bool(os.environ.get("OPENROUTER_API_KEY"))
declared dependencies 45
- typer@>=0.20.0,<1.0.0
- anthropic@>=0.40.0,<1.0.0
- pydantic@>=2.12.0,<3.0.0
- pydantic-settings@>=2.12.0,<3.0.0
- websockets@>=16.0,<17.0
- websocket-client@>=1.9.0,<2.0.0
- httpx@>=0.28.0,<1.0.0
- ddgs@>=9.5.5,<10.0.0
- oauth-cli-kit@>=0.1.3,<1.0.0
- loguru@>=0.7.3,<1.0.0
- readability-lxml@>=0.8.4,<1.0.0
- rich@>=14.0.0,<15.0.0
- croniter@>=6.0.0,<7.0.0
- socksio@>=1.0.0,<2.0.0
- msgpack@>=1.1.0,<2.0.0
- prompt-toolkit@>=3.0.50,<4.0.0
- questionary@>=2.0.0,<3.0.0
- mcp@>=1.26.0,<2.0.0
- json-repair@>=0.57.0,<1.0.0
- chardet@>=3.0.2,<6.0.0
- openai@>=2.8.0,<3.0.0
- tiktoken@>=0.12.0,<1.0.0
- uvicorn@>=0.34.0,<1.0.0
- starlette@>=1.2.1,<2.0.0
- aiofiles@>=24.0.0,<25.0.0
- pip-audit@>=2.7.0,<3.0.0
- python-multipart@>=0.0.27
- pyyaml@>=6.0,<7.0
- pywebview@>=5.3,<7.0
- pystray@>=0.19.5,<1.0.0
- pillow@>=11.0.0,<13.0.0
- slack-sdk@>=3.39.0,<4.0.0
- slackify-markdown@>=0.2.0,<1.0.0
- dingtalk-stream@>=0.24.0,<1.0.0
- lark-oapi@>=1.5.0,<2.0.0
- qq-botpy@>=1.2.0,<2.0.0
- wecom-aibot-sdk-python@>=0.1.5
- matrix-nio@>=0.25.2
- mistune@>=3.0.0,<4.0.0
- nh3@>=0.2.17,<1.0.0
- cryptography@>=46.0.7
- langsmith@>=0.1.0
- pythonnet@>=3.0,<4.0
- pytest@>=9.0.3,<10.0.0
- pytest-asyncio@>=1.3.0,<2.0.0