github Python re-analysis due deep scan · partial (232/4,548 files)

PersonalClaw/PersonalClaw

github

Your self-hosted personal AI agent — an agentic OS for one person: chat, autonomous goal loops, memory, knowledge base, skills, automation, MCP in both directions, and a permission-gated app platform. Local-first, provider-agnostic, MIT.

maintainer
PersonalClaw
licence
MIT
first seen
2026-09-18
last seen
2026-09-19
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 0 tools
transport stdio · streamable-http 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 0c7b952 · analyzer v33 · 15h ago

skills & prompt files 40

danger signals45

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

code files: 3978

filesystem 400

  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/harness/baselines.py :22 from pathlib import Path
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/harness/cli.py :36 from pathlib import Path
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/harness/diff.py :15 from pathlib import Path
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/harness/exemplars/__init__.py :19 from pathlib import Path
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/harness/exemplars/__main__.py :16 from pathlib import Path
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/harness/fanout_measure.py :45 from pathlib import Path
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/harness/profiles.py :19 from pathlib import Path
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/harness/replay.py :24 from pathlib import Path
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/harness/scanner.py :27 from pathlib import Path
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/harness/specs.py :21 from pathlib import Path
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/harness/tool_dispatch_bench.py :46 from pathlib import Path
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/harness/validate_refs.py :23 from pathlib import Path
show 28 more
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/harness/worktree_bench.py :57 import shutil
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/mobile/scripts/generate_store_assets.py :33 from pathlib import Path
  • fs PersonalClaw-PersonalClaw-0c7b952/packages/personalclaw-client-py/personalclaw_client/client.py :17 from pathlib import Path
  • fs PersonalClaw-PersonalClaw-0c7b952/scratch/registry/validate_registry.py :51 from pathlib import Path
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/dcu3_stale_index_validate.py :69 from pathlib import Path
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/dcu4_v1_validate.py :42 import shutil
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/gate_report.py :46 from pathlib import Path
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/generate_config_baseline.py :32 from pathlib import Path
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/generate_demo_home_fixture.py :4 ``--seed`` is a bare ``shutil.copytree`` with no hydration hook, so every store a
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/generate_docs_lint_baseline.py :88 from pathlib import Path, PurePosixPath
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/generate_inert_surface_baseline.py :87 from pathlib import Path
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/generate_six_month_home_fixture.py :38 import shutil
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/generate_structural_baseline.py :113 from pathlib import Path
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/learning_benchmark.py :47 from pathlib import Path
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/mutation_harness.py :70 import shutil
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/render_acp_parity_residual.py :40 from pathlib import Path
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/sign_app.py :39 from pathlib import Path
  • fs (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/verify_wheel.py :38 import shutil
  • fs PersonalClaw-PersonalClaw-0c7b952/setup.py :5 import shutil
  • fs PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/_installer.py :33 import shutil
  • fs PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/_spawn_exec_shim.py :112 with open("/proc/self/oom_score_adj", "w", encoding="ascii") as fh:
  • fs PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/_ssl_compat.py :11 from pathlib import Path
  • fs PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/acp/cli_resolve.py :32 import shutil
  • fs PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/acp/client.py :33 from pathlib import Path
  • fs PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/acp/session.py :28 from pathlib import Path
  • fs PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/acp/translate.py :25 from pathlib import Path
  • fs PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/acp/transport.py :29 from pathlib import Path
  • fs PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/acp_bundles/_register.py :134 from pathlib import Path

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

shell / exec 146

  • shell (weak) PersonalClaw-PersonalClaw-0c7b952/harness/cli.py :34 import subprocess
  • shell (weak) PersonalClaw-PersonalClaw-0c7b952/harness/diff.py :13 import subprocess
  • shell (weak) PersonalClaw-PersonalClaw-0c7b952/harness/exemplars/__main__.py :14 import subprocess
  • shell (weak) PersonalClaw-PersonalClaw-0c7b952/harness/validate_refs.py :22 import subprocess
  • shell (weak) PersonalClaw-PersonalClaw-0c7b952/harness/worktree_bench.py :59 import subprocess
  • shell PersonalClaw-PersonalClaw-0c7b952/scratch/registry/validate_registry.py :46 import subprocess
  • shell (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/dcu3_stale_index_validate.py :66 import subprocess
  • shell (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/dcu4_v1_validate.py :43 import subprocess
  • shell (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/generate_docs_lint_baseline.py :87 import subprocess
  • shell (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/mutation_harness.py :71 import subprocess
  • shell (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/verify_wheel.py :39 import subprocess
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/acp/cli_resolve.py :33 import subprocess
show 28 more
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/acp/transport.py :25 import subprocess as subprocess_mod
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/agents/runners.py :63 import subprocess
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/apps/app_manager.py :42 import subprocess
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/apps/backend_runtime.py :36 import subprocess
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/apps/catalog.py :399 import subprocess
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/apps/quality.py :49 import subprocess
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/apps/source.py :19 import subprocess
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/apps/worker_runtime.py :61 import subprocess
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/cli_doctor.py :6 import subprocess
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/cli_run.py :42 import subprocess
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/cli_server.py :8 import subprocess
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/computer_use/macos_tcc.py :50 import subprocess # nosec B404 - one fixed-argv read of the OS's own log; see _probe
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/dashboard/handlers/files.py :85 import subprocess # noqa: F811
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/dashboard/handlers/mcp.py :8 import subprocess
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/dashboard/handlers_system.py :9 import subprocess
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/durability/state_history.py :50 import subprocess
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/evals/runner.py :35 import subprocess
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/frontend.py :6 import subprocess
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/gateway.py :745 import subprocess as _sp
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/knowledge/pipeline/executor.py :302 import subprocess
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/knowledge/pipeline/nodes/media_nodes.py :21 import subprocess
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/knowledge_providers/pack_parse.py :75 import subprocess
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/local_models/fit.py :29 import subprocess
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/local_models/residency.py :22 import subprocess
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/local_models/sidecar.py :50 import subprocess
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/loop/worktree.py :26 import subprocess
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/mcp_core.py :33 import subprocess
  • shell PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/mcp_shared.py :7 import subprocess

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

network 365

  • net PersonalClaw-PersonalClaw-0c7b952/packages/personalclaw-client-py/personalclaw_client/client.py :20 import aiohttp
  • net PersonalClaw-PersonalClaw-0c7b952/scratch/registry/validate_registry.py :53 from urllib.parse import urlsplit
  • net (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/memory_validate.py :21 import urllib.error
  • net (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/seed_tasks.py :27 import urllib.error
  • net (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/session_validate.py :22 import urllib.error
  • net (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/ut7_validate.py :12 import urllib.error
  • net (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/verify_wheel.py :44 import urllib.error
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/__main__.py :5 ``dashboard.__init__`` → ``dashboard.server`` → ``from aiohttp import web``).
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/action_providers/net_fetch_provider.py :95 from urllib.parse import urlparse
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/agents/native/builtin_tools.py :1881 from urllib.parse import urlsplit
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/apps/backend_runtime.py :35 import socket
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/apps/catalog.py :700 from urllib.parse import urlsplit
show 28 more
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/artifacts/deploy.py :46 from urllib.parse import unquote
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/artifacts/handlers.py :15 from aiohttp import web
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/auth/cli.py :219 import urllib.error
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/auth/oidc.py :21 import urllib.request
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/auth/totp.py :22 from urllib.parse import quote
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/browse/cdp.py :50 from urllib.parse import urlparse
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/browse/credentials.py :55 from urllib.parse import parse_qsl, urlencode, urlsplit, urlunsplit
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/browse/extraction.py :37 from urllib.parse import parse_qsl, urlencode, urlsplit, urlunsplit
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/browse/grant.py :38 from urllib.parse import urlsplit
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/browse/handoff.py :56 from urllib.parse import urlsplit
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/cli_app_new.py :38 import urllib.error
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/cli_commands.py :7 import urllib.error
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/cli_config.py :148 `personalclaw config get` should not pay for importing aiohttp. A failure to import is
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/cli_doctor.py :8 import urllib.error
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/cli_run.py :45 import urllib.error
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/cli_server.py :11 import urllib.error
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/cli_setup.py :5 import socket
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/companion/discovery.py :37 import socket
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/edit_spec.py :40 from urllib.parse import urlparse
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/dashboard/api_version_gate.py :54 from aiohttp import web
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/dashboard/chat_channel.py :5 from aiohttp import web
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/dashboard/chat_file_rewind.py :27 from aiohttp import web
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/dashboard/chat_folders.py :8 from aiohttp import web
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/dashboard/chat_fork.py :5 from aiohttp import web
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/dashboard/chat_handlers.py :13 from aiohttp import web
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/dashboard/chat_plan.py :44 from aiohttp import web
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/dashboard/chat_regenerate.py :7 from aiohttp import web
  • net PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/dashboard/chat_retag.py :27 from aiohttp import web

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

secrets 14

  • secrets PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/auth/cli.py :17 import getpass
  • secrets PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/auth/credentials.py :279 password = str(os.environ.get("PERSONALCLAW_LOGIN_PASSWORD", "") or "")
  • secrets PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/credentials.py :95 import keyring # type: ignore[import-not-found]
  • secrets PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/dashboard/handlers_system.py :302 import getpass
  • secrets PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/image_gen/openai_provider.py :248 return os.environ.get("OPENAI_API_KEY", "")
  • secrets PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/mcp_core.py :774 sk = os.environ.get("PERSONALCLAW_SESSION_KEY", "")
  • secrets PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/mcp_shared.py :102 caller=os.environ.get("PERSONALCLAW_SESSION_KEY", "mcp"),
  • secrets PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/mcp_workflows.py :959 return os.environ.get("PERSONALCLAW_SESSION_KEY", "")
  • secrets PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/tts/openai_provider.py :166 val = os.environ.get("OPENAI_API_KEY", "")
  • secrets (weak) PersonalClaw-PersonalClaw-0c7b952/tests/test_child_env_allowlist.py :122 os.environ.get("ACME_CLOUD_API_KEY", "-"),
  • secrets (weak) PersonalClaw-PersonalClaw-0c7b952/tests/test_credential_backend.py :55 """A `sys.meta_path` finder that makes `import keyring` fail, whatever is installed.
  • secrets (weak) PersonalClaw-PersonalClaw-0c7b952/tests/test_credential_migration.py :46 """A ``sys.meta_path`` finder that makes ``import keyring`` fail, whatever is installed.
show 2 more
  • secrets (weak) PersonalClaw-PersonalClaw-0c7b952/tests/test_secrets_vault.py :319 assert os.environ["EI10_HOST_TOKEN"] == HOST_VALUE
  • secrets (weak) PersonalClaw-PersonalClaw-0c7b952/tests/test_shepherd_fixes.py :224 assert os.environ.get("SLACK_BOT_TOKEN") == "xoxb-test"

database 48

  • db (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/generate_demo_home_fixture.py :37 import sqlite3
  • db (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/generate_six_month_home_fixture.py :39 import sqlite3
  • db (weak) PersonalClaw-PersonalClaw-0c7b952/scripts/memory_validate.py :18 import sqlite3
  • db PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/codegraph/index.py :18 import sqlite3
  • db PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/durability/footprint.py :32 import sqlite3
  • db PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/durability/service.py :363 import sqlite3
  • db PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/durability/shards.py :38 import sqlite3
  • db PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/knowledge/retrieval.py :9 from personalclaw.sqlite_compat import sqlite3
  • db PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/knowledge/staleness.py :53 import sqlite3
  • db PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/knowledge/vector_index.py :64 from personalclaw.sqlite_compat import sqlite3
  • db PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/learning/staging.py :37 import sqlite3
  • db PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/lexicon/store.py :20 import sqlite3
show 28 more
  • db PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/loop/store.py :42 from personalclaw.sqlite_compat import sqlite3
  • db PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/memory_graph.py :41 from personalclaw.sqlite_compat import sqlite3
  • db PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/memory_linker.py :251 import sqlite3
  • db PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/portability.py :53 from personalclaw.sqlite_compat import sqlite3
  • db PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/resilience/doctor.py :32 import sqlite3
  • db PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/snapshot.py :17 from personalclaw.sqlite_compat import sqlite3
  • db PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/sqlite_compat.py :4 ImportError: import sqlite3`` (and one carried a bare ``import sqlite3``), so the
  • db PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/vector_memory.py :32 from personalclaw.sqlite_compat import sqlite3
  • db PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/workflows/store.py :21 import sqlite3
  • db (weak) PersonalClaw-PersonalClaw-0c7b952/tests/conftest.py :501 module (six stores still ``import sqlite3`` directly) and the one
  • db (weak) PersonalClaw-PersonalClaw-0c7b952/tests/test_durability_archive.py :12 import sqlite3
  • db (weak) PersonalClaw-PersonalClaw-0c7b952/tests/test_durability_db_merge.py :12 import sqlite3
  • db (weak) PersonalClaw-PersonalClaw-0c7b952/tests/test_durability_db_shards.py :12 import sqlite3
  • db (weak) PersonalClaw-PersonalClaw-0c7b952/tests/test_durability_footprint.py :29 import sqlite3
  • db (weak) PersonalClaw-PersonalClaw-0c7b952/tests/test_durability_inventory.py :18 import sqlite3
  • db (weak) PersonalClaw-PersonalClaw-0c7b952/tests/test_durability_pull_engine.py :140 import sqlite3
  • db (weak) PersonalClaw-PersonalClaw-0c7b952/tests/test_durability_service.py :11 import sqlite3
  • db (weak) PersonalClaw-PersonalClaw-0c7b952/tests/test_durability_shards.py :17 import sqlite3
  • db (weak) PersonalClaw-PersonalClaw-0c7b952/tests/test_durability_sync_cycle.py :12 import sqlite3
  • db (weak) PersonalClaw-PersonalClaw-0c7b952/tests/test_knowledge.py :1160 import sqlite3 as stdlib_sqlite3
  • db (weak) PersonalClaw-PersonalClaw-0c7b952/tests/test_knowledge_citation_store.py :13 import sqlite3
  • db (weak) PersonalClaw-PersonalClaw-0c7b952/tests/test_knowledge_collections.py :17 import sqlite3
  • db (weak) PersonalClaw-PersonalClaw-0c7b952/tests/test_knowledge_semantics.py :534 import sqlite3
  • db (weak) PersonalClaw-PersonalClaw-0c7b952/tests/test_loop_scratch_lifecycle.py :79 import sqlite3
  • db (weak) PersonalClaw-PersonalClaw-0c7b952/tests/test_memory_entity_graph.py :616 import sqlite3
  • db (weak) PersonalClaw-PersonalClaw-0c7b952/tests/test_portability.py :6 import sqlite3
  • db (weak) PersonalClaw-PersonalClaw-0c7b952/tests/test_portability_dsar.py :17 import sqlite3
  • db (weak) PersonalClaw-PersonalClaw-0c7b952/tests/test_pp16_total_cycles_retired.py :81 import sqlite3

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

install hooks 1

  • setup.py PersonalClaw-PersonalClaw-0c7b952/setup.py :57 cmdclass={

declared dependencies 41

  • mcp@>=1.2,<2
  • aiohttp@>=3.9,<4
  • websockets@>=12,<18
  • cron-descriptor@>=1.4,<3
  • croniter@>=2.0,<7
  • numpy@>=1.21,<3
  • snowballstemmer@>=1.0
  • pysqlite3-binary@>=0.5.4; sys_platform ==
  • and@platform_machine ==
  • reportlab@>=4,<6
  • trafilatura@>=2,<3
  • nh3@>=0.2
show 28 more
  • openpyxl@>=3.1,<4
  • Pillow@>=10,<13
  • s@actually used.
  • anthropic@>=0.20
  • openai@>=1.0
  • boto3@>=1.34
  • httpx@>=0.27
  • cryptography@>=42
  • slack-sdk@>=3.27,<4
  • faster-whisper@>=1.0
  • huggingface-hub@>=0.23
  • piper-tts@>=1.2
  • jinja2@>=3.0
  • sentence-transformers@>=3.0
  • faiss-cpu@>=1.7
  • playwright@>=1.40
  • keyring@>=24
  • personalclaw@*
  • .@*
  • black@>=26,<27
  • isort@>=8,<9
  • flake8@>=7,<8
  • mypy@>=2,<3
  • build@>=1.0
  • pytest@>=7
  • pytest-asyncio@>=0.23
  • pytest-xdist@>=3
  • pytest-timeout@>=2

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