PersonalClaw/PersonalClaw
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.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
No tools enumerated yet for this server.
analyzed commit 0c7b952 · analyzer v33 · 15h ago
skills & prompt files 40
- agent-rules PersonalClaw-PersonalClaw-0c7b952/AGENT.md
- agent-rules PersonalClaw-PersonalClaw-0c7b952/AGENTS.md
- agent-rules PersonalClaw-PersonalClaw-0c7b952/CLAUDE.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/background.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/chat.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/code.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/goal_loop.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-channel_title.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-code_classify.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-code_design_brief.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-code_step_brief.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-contradiction_judge.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-cycle_judge.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-cycle_judge_skeptic.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-design_design_brief.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-design_phases.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-design_step_brief.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-digest.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-eval_judge.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-folder_icon.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-followups.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-goal_classify.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-goal_step_brief.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-grill_assess.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-grill_flat.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-grill_tree.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-history_compression.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-inbox-classify.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-inbox-digest.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-inbox-draft.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-memory_consolidation.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-nav_links.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-nl_to_cron.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-orchestrator_skill.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-parallel_worker_nudge.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-plan_rephrase.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-prompt_optimizer.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-research_step_brief.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-sdlc_stage_gate.md
- prompt-file PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/prompts/task-side_chat.md
danger signals45
- dynamic code execution eval()/exec() PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/config/schema.py :151
tp = eval(tp, vars(_loader_mod)) # noqa: S307 - dynamic code execution __import__() PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/documents/registry.py :65
__import__(f"personalclaw.documents.writers.{module}") - dynamic code execution __import__() PersonalClaw-PersonalClaw-0c7b952/src/personalclaw/workflows/service.py :2224
spec_semver=__import__( - dynamic code execution eval()/exec() PersonalClaw-PersonalClaw-0c7b952/tests/test_config_schema.py :59
tp = eval(tp, vars(_mod)) # noqa: S307 - dynamic code execution __import__() PersonalClaw-PersonalClaw-0c7b952/tests/test_context_router.py :433
__import__( - dynamic code execution __import__() PersonalClaw-PersonalClaw-0c7b952/tests/test_ea6_replay_harness.py :483
__import__(forbidden) - dynamic code execution __import__ sink PersonalClaw-PersonalClaw-0c7b952/tests/test_harness_exemplars.py :165
env = {k: v for k, v in __import__("os").environ.items() if k != "PERSONALCLAW_PY"} - dynamic code execution __import__() PersonalClaw-PersonalClaw-0c7b952/tests/test_proposals_contract.py :256
mod = __import__(patch[0], fromlist=["x"]) - dynamic code execution __import__() PersonalClaw-PersonalClaw-0c7b952/tests/test_skills.py :706
__import__( - dynamic code execution __import__ sink PersonalClaw-PersonalClaw-0c7b952/tests/test_triggers_file_watch.py :354
**__import__("os").environ, - suspicious endpoint 169.254.169.254 (cloud metadata) PersonalClaw-PersonalClaw-0c7b952/tests/security/test_mode_independence.py :74
BASELINE_COMMAND = "curl http://169.254.169.254/latest/meta-data/" - suspicious endpoint 169.254.169.254 (cloud metadata) PersonalClaw-PersonalClaw-0c7b952/tests/test_baseline_denylist_integrity.py :446
"curl http://169.254.169.254/latest/meta-data/", - suspicious endpoint 169.254.169.254 (cloud metadata) PersonalClaw-PersonalClaw-0c7b952/tests/test_denied_commands.py :19
security.denied_command_reason("curl http://169.254.169.254/latest/meta-data/") - suspicious endpoint 169.254.169.254 (cloud metadata) PersonalClaw-PersonalClaw-0c7b952/tests/test_durability_sync_crypto.py :461
"http://169.254.169.254/latest/meta-data/iam/security-credentials/", - suspicious endpoint 100.100.100.200 (cloud metadata) PersonalClaw-PersonalClaw-0c7b952/tests/test_durability_sync_crypto.py :463
"http://100.100.100.200/latest/meta-data/", - suspicious endpoint 8.8.8.8 PersonalClaw-PersonalClaw-0c7b952/tests/test_local_model_detect.py :218
"/api/onboarding/local-model/bind", json={"endpoint": "http://8.8.8.8:11434"} - suspicious endpoint 169.254.169.254 (cloud metadata) PersonalClaw-PersonalClaw-0c7b952/tests/test_native_builtin_tools.py :292
imds = await p.invoke("bash", {"command": "curl http://169.254.169.254/latest/meta-data/"}) - suspicious endpoint 169.254.169.254 (cloud metadata) PersonalClaw-PersonalClaw-0c7b952/tests/test_net_client.py :48
"http://169.254.169.254/latest/meta-data", - suspicious endpoint 169.254.169.254 (cloud metadata) PersonalClaw-PersonalClaw-0c7b952/tests/test_net_fetch_provider.py :297
result = await _run({"url": "http://169.254.169.254/latest/meta-data/"}) - suspicious endpoint 169.254.169.254 (cloud metadata) PersonalClaw-PersonalClaw-0c7b952/tests/test_security.py :235
assert self._is_denied("curl http://169.254.169.254/latest/meta-data/", denied_commands) - committed secret Anthropic key PersonalClaw-PersonalClaw-0c7b952/tests/test_approval_read_only_supply.py :170
sk-ant…(37 chars, redacted) - committed secret OpenAI key PersonalClaw-PersonalClaw-0c7b952/tests/test_artifact_knowledge_source.py :354
sk-liv…(34 chars, redacted) - committed secret Anthropic key PersonalClaw-PersonalClaw-0c7b952/tests/test_artifacts_iterate_and_refs.py :250
sk-ant…(61 chars, redacted) - committed secret Anthropic key PersonalClaw-PersonalClaw-0c7b952/tests/test_computer_use_live_view.py :391
sk-ant…(55 chars, redacted) - committed secret Anthropic key PersonalClaw-PersonalClaw-0c7b952/tests/test_diagnostics_log_redaction.py :77
sk-ant…(45 chars, redacted) - committed secret Anthropic key PersonalClaw-PersonalClaw-0c7b952/tests/test_evals_study_arms.py :371
sk-ant…(53 chars, redacted) - committed secret Anthropic key PersonalClaw-PersonalClaw-0c7b952/tests/test_learning_template_gate.py :383
sk-ant…(37 chars, redacted) - committed secret Anthropic key PersonalClaw-PersonalClaw-0c7b952/tests/test_ledger_golden.py :245
sk-ant…(45 chars, redacted) - committed secret Anthropic key PersonalClaw-PersonalClaw-0c7b952/tests/test_legibility_always_on.py :189
sk-ant…(61 chars, redacted) - committed secret Anthropic key PersonalClaw-PersonalClaw-0c7b952/tests/test_onboarding_import.py :45
sk-ant…(63 chars, redacted) - committed secret GitHub token PersonalClaw-PersonalClaw-0c7b952/tests/test_onboarding_import.py :46
ghp_PL…(40 chars, redacted) - committed secret Anthropic key PersonalClaw-PersonalClaw-0c7b952/tests/test_onboarding_import_api.py :48
sk-ant…(61 chars, redacted) - committed secret Slack token PersonalClaw-PersonalClaw-0c7b952/tests/test_packs_build.py :32
xoxb-C…(42 chars, redacted) - committed secret Anthropic key PersonalClaw-PersonalClaw-0c7b952/tests/test_portability_dsar.py :37
sk-ant…(31 chars, redacted) - committed secret OpenAI key PersonalClaw-PersonalClaw-0c7b952/tests/test_pp16_ledger_rails.py :569
sk-ZYX…(27 chars, redacted) - committed secret Anthropic key PersonalClaw-PersonalClaw-0c7b952/tests/test_pp16_run_deliverable.py :375
sk-ant…(45 chars, redacted) - committed secret Slack token PersonalClaw-PersonalClaw-0c7b952/tests/test_provider_config_secrets.py :31
xoxb-N…(36 chars, redacted) - committed secret AWS access key id PersonalClaw-PersonalClaw-0c7b952/tests/test_redaction_cost.py :361
AKIAAA…(20 chars, redacted) - committed secret Anthropic key PersonalClaw-PersonalClaw-0c7b952/tests/test_run_ledger_redaction.py :41
sk-ant…(31 chars, redacted) - committed secret Anthropic key PersonalClaw-PersonalClaw-0c7b952/tests/test_security_audit_api.py :37
sk-ant…(55 chars, redacted) - committed secret Slack token PersonalClaw-PersonalClaw-0c7b952/tests/test_shepherd_fixes.py :236
xoxb-f…(17 chars, redacted) - committed secret Anthropic key PersonalClaw-PersonalClaw-0c7b952/tests/test_triggers_delivery.py :244
sk-ant…(38 chars, redacted) - committed secret Anthropic key PersonalClaw-PersonalClaw-0c7b952/tests/test_triggers_history.py :580
sk-ant…(37 chars, redacted) - committed secret AWS access key id PersonalClaw-PersonalClaw-0c7b952/tests/test_turn_checkpoints.py :24
AKIA7S…(20 chars, redacted) - committed secret Stripe live key PersonalClaw-PersonalClaw-0c7b952/tests/test_turn_checkpoints.py :24
sk_liv…(30 chars, redacted)
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.