github Python analyzed 9955a79

drknowhow/code-context-control

v2.140.0
github

Local MCP code-intelligence for AI coding tools: surgical search/read/edit, agent-config version history, path-level access + masking guards, and a multi-project hub.

maintainer
drknowhow
licence
Apache-2.0
first seen
2026-07-28
last seen
2026-09-14
releases · 30d
84
short id

Drift inferred · capture-to-capture

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

capabilities 24 tools
transport stdio counts 24 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • c3_agent
  • c3_artifacts
  • c3_bitbucket
  • c3_ci
  • c3_credentials
  • c3_delegate
  • c3_edit
  • c3_edits
  • c3_filter
  • c3_impact
  • c3_jira
  • c3_locks
  • c3_memory
  • c3_override
  • c3_project
  • c3_read
  • c3_search
  • c3_session
  • c3_shell
  • c3_shell_job
  • c3_status
  • c3_task
  • c3_validate
  • tool
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 9955a79 · analyzer v33 · 1d ago

skills & prompt files 3

danger signals6

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

code files: 628

filesystem 372

  • fs drknowhow-code-context-control-9955a79/cli/_hook_utils.py :15 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/_shell_writes.py :23 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/c3.py :43 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/commands/common.py :8 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/hook_access_guard.py :18 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/hook_agent_model.py :17 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/hook_artifact.py :16 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/hook_auto_snapshot.py :12 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/hook_c3_signal.py :25 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/hook_c3read.py :16 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/hook_codex_lifecycle.py :4 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/hook_dispatch.py :42 from pathlib import Path
show 28 more
  • fs drknowhow-code-context-control-9955a79/cli/hook_edit_ledger.py :15 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/hook_edit_unlock.py :16 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/hook_filter.py :17 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/hook_ghost_files.py :18 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/hook_pretool_enforce.py :42 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/hook_prompt_recall.py :16 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/hook_read.py :16 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/hook_session_end.py :38 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/hook_session_open.py :51 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/hook_session_stats.py :35 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/hook_terse_advisor.py :21 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/hub_server.py :18 import shutil
  • fs drknowhow-code-context-control-9955a79/cli/mcp_proxy.py :19 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/mcp_server.py :18 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/server.py :19 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/tools/_helpers.py :3 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/tools/agent.py :6 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/tools/artifacts.py :3 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/tools/compress.py :11 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/tools/credentials.py :216 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/tools/delegate.py :13 import shutil
  • fs drknowhow-code-context-control-9955a79/cli/tools/edit.py :23 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/tools/edit_verify.py :43 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/tools/filter.py :11 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/tools/impact.py :10 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/tools/jira.py :9 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/tools/project.py :14 from pathlib import Path
  • fs drknowhow-code-context-control-9955a79/cli/tools/read.py :6 from pathlib import Path

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

shell / exec 64

  • shell drknowhow-code-context-control-9955a79/cli/c3.py :36 import subprocess
  • shell drknowhow-code-context-control-9955a79/cli/hub_server.py :20 import subprocess
  • shell drknowhow-code-context-control-9955a79/cli/mcp_proxy.py :99 import subprocess
  • shell drknowhow-code-context-control-9955a79/cli/server.py :14 import subprocess
  • shell drknowhow-code-context-control-9955a79/cli/tools/agent.py :202 import subprocess
  • shell drknowhow-code-context-control-9955a79/cli/tools/delegate.py :14 import subprocess
  • shell drknowhow-code-context-control-9955a79/cli/tools/impact.py :8 import subprocess
  • shell drknowhow-code-context-control-9955a79/cli/tools/search.py :8 import subprocess
  • shell drknowhow-code-context-control-9955a79/cli/tools/shell.py :25 import subprocess
  • shell drknowhow-code-context-control-9955a79/cli/tools/validate.py :7 import subprocess
  • shell (weak) drknowhow-code-context-control-9955a79/scripts/screenshots/demo_world.py :22 import subprocess
  • shell (weak) drknowhow-code-context-control-9955a79/scripts/screenshots/run.py :26 import subprocess
show 28 more
  • shell drknowhow-code-context-control-9955a79/services/background_service.py :43 import subprocess
  • shell drknowhow-code-context-control-9955a79/services/bench/delegate_write_eval.py :36 import subprocess
  • shell drknowhow-code-context-control-9955a79/services/bench/external/aider_polyglot.py :37 import subprocess
  • shell drknowhow-code-context-control-9955a79/services/bench/external/swe_bench.py :44 import subprocess
  • shell drknowhow-code-context-control-9955a79/services/ci_act.py :42 import subprocess
  • shell drknowhow-code-context-control-9955a79/services/ci_cache.py :43 import subprocess
  • shell drknowhow-code-context-control-9955a79/services/ci_github.py :29 import subprocess
  • shell drknowhow-code-context-control-9955a79/services/ci_impact.py :29 import subprocess
  • shell drknowhow-code-context-control-9955a79/services/ci_runner.py :22 `subprocess.run(shell=True, timeout=...)` hangs forever on Windows.
  • shell drknowhow-code-context-control-9955a79/services/ci_workflow.py :431 import subprocess
  • shell drknowhow-code-context-control-9955a79/services/codex_integration.py :4 import subprocess
  • shell drknowhow-code-context-control-9955a79/services/e2e_benchmark.py :17 import subprocess
  • shell drknowhow-code-context-control-9955a79/services/e2e_evaluator.py :18 import subprocess
  • shell drknowhow-code-context-control-9955a79/services/edit_ledger.py :12 import subprocess
  • shell drknowhow-code-context-control-9955a79/services/git_context.py :16 import subprocess
  • shell drknowhow-code-context-control-9955a79/services/grok_integration.py :13 import subprocess
  • shell drknowhow-code-context-control-9955a79/services/override_wake.py :51 import subprocess
  • shell drknowhow-code-context-control-9955a79/services/parser.py :792 import subprocess as _subprocess
  • shell drknowhow-code-context-control-9955a79/services/project_manager.py :7 import subprocess
  • shell drknowhow-code-context-control-9955a79/services/repo_map.py :21 import subprocess
  • shell drknowhow-code-context-control-9955a79/services/shell_jobs.py :86 import subprocess
  • shell drknowhow-code-context-control-9955a79/services/shell_output.py :70 import subprocess
  • shell (weak) drknowhow-code-context-control-9955a79/tests/test_bitbucket_cli_smoke.py :7 import subprocess
  • shell (weak) drknowhow-code-context-control-9955a79/tests/test_c3_shell.py :17 import subprocess
  • shell (weak) drknowhow-code-context-control-9955a79/tests/test_ci_act.py :13 import subprocess
  • shell (weak) drknowhow-code-context-control-9955a79/tests/test_ci_cache.py :13 import subprocess
  • shell (weak) drknowhow-code-context-control-9955a79/tests/test_ci_impact.py :21 import subprocess
  • shell (weak) drknowhow-code-context-control-9955a79/tests/test_ci_intel.py :13 import subprocess

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

network 29

  • net drknowhow-code-context-control-9955a79/cli/c3.py :8173 import urllib.error
  • net drknowhow-code-context-control-9955a79/cli/hook_auto_snapshot.py :13 from urllib.error import URLError
  • net drknowhow-code-context-control-9955a79/cli/hub_server.py :19 import socket
  • net drknowhow-code-context-control-9955a79/cli/server.py :98 import socket
  • net drknowhow-code-context-control-9955a79/core/web_security.py :42 from urllib.parse import urlsplit
  • net drknowhow-code-context-control-9955a79/oracle/oracle_server.py :6 import socket
  • net drknowhow-code-context-control-9955a79/oracle/services/chat_engine.py :8 import urllib.error
  • net drknowhow-code-context-control-9955a79/oracle/services/mobile_api.py :3041 import urllib.request
  • net drknowhow-code-context-control-9955a79/oracle/services/project_scanner.py :7 import urllib.error
  • net (weak) drknowhow-code-context-control-9955a79/scripts/screenshots/run.py :29 import urllib.error
  • net (weak) drknowhow-code-context-control-9955a79/scripts/screenshots/seed.py :18 import urllib.error
  • net drknowhow-code-context-control-9955a79/services/agents.py :1680 import urllib.request
show 17 more
  • net drknowhow-code-context-control-9955a79/services/background_service.py :42 import socket
  • net drknowhow-code-context-control-9955a79/services/bitbucket_client.py :3 Stdlib-only HTTP via urllib.request, Bearer-token (PAT) auth.
  • net drknowhow-code-context-control-9955a79/services/ci_act.py :279 import socket
  • net drknowhow-code-context-control-9955a79/services/jira_client.py :18 import urllib.error
  • net drknowhow-code-context-control-9955a79/services/ollama_bridge.py :13 import urllib.error
  • net drknowhow-code-context-control-9955a79/services/ollama_client.py :10 import urllib.error
  • net drknowhow-code-context-control-9955a79/services/oracle_service.py :25 import urllib.request
  • net drknowhow-code-context-control-9955a79/services/project_manager.py :6 import socket
  • net (weak) drknowhow-code-context-control-9955a79/tests/test_background_service.py :143 with mock.patch("urllib.request.urlopen", fake_urlopen):
  • net (weak) drknowhow-code-context-control-9955a79/tests/test_bitbucket_client.py :3 Mocks ``urllib.request.urlopen`` with a context-manager stub so we can
  • net (weak) drknowhow-code-context-control-9955a79/tests/test_hub_oracle_service_routes.py :175 mock.patch("urllib.request.urlopen",
  • net (weak) drknowhow-code-context-control-9955a79/tests/test_jira_client.py :3 All transport goes through ``services.jira_client.urllib.request.urlopen`` —
  • net (weak) drknowhow-code-context-control-9955a79/tests/test_oracle_chat_engine.py :15 import urllib.error
  • net (weak) drknowhow-code-context-control-9955a79/tests/test_oracle_health_probe.py :43 with mock.patch("urllib.request.urlopen") as urlopen:
  • net (weak) drknowhow-code-context-control-9955a79/tests/test_oracle_loopback.py :15 import socket
  • net (weak) drknowhow-code-context-control-9955a79/tests/test_oracle_ollama_bridge.py :4 urllib.request.urlopen is monkeypatched at the module level — no network.
  • net drknowhow-code-context-control-9955a79/tui/screens/stats.py :2 import socket

secrets 22

  • secrets drknowhow-code-context-control-9955a79/cli/c3.py :829 if os.environ.get("OLLAMA_API_KEY"):
  • secrets drknowhow-code-context-control-9955a79/cli/commands/parser.py :432 bb_logout = bb_subs.add_parser("logout", help="Remove a Bitbucket account from keyring + config")
  • secrets drknowhow-code-context-control-9955a79/oracle/services/api_auth.py :28 import keyring # type: ignore[import-untyped]
  • secrets drknowhow-code-context-control-9955a79/services/access_guard.py :432 import keyring # noqa: PLC0415 — lazy: access_guard is stdlib-only on
  • secrets drknowhow-code-context-control-9955a79/services/bitbucket_credentials.py :25 import keyring # type: ignore[import-untyped]
  • secrets drknowhow-code-context-control-9955a79/services/credential_store.py :62 import keyring # type: ignore[import-untyped]
  • secrets drknowhow-code-context-control-9955a79/services/jira_credentials.py :34 import keyring # type: ignore[import-untyped]
  • secrets drknowhow-code-context-control-9955a79/services/ollama_bridge.py :91 self.api_key = api_key or os.environ.get("OLLAMA_API_KEY", "")
  • secrets drknowhow-code-context-control-9955a79/services/ollama_credentials.py :30 import keyring # type: ignore[import-untyped]
  • secrets drknowhow-code-context-control-9955a79/services/shell_output.py :62 import getpass
  • secrets (weak) drknowhow-code-context-control-9955a79/tests/test_memory_distiller.py :158 os.environ["OLLAMA_API_KEY"] = old
  • secrets (weak) drknowhow-code-context-control-9955a79/tests/test_mobile_api.py :28 os.environ["C3_ORACLE_API_KEY"] = "mobile-test-key"
show 10 more
  • secrets (weak) drknowhow-code-context-control-9955a79/tests/test_mobile_clients.py :198 self._prior_key = os.environ.get("C3_ORACLE_API_KEY")
  • secrets (weak) drknowhow-code-context-control-9955a79/tests/test_mobile_extras.py :30 os.environ["C3_ORACLE_API_KEY"] = "mobile-extras-key"
  • secrets (weak) drknowhow-code-context-control-9955a79/tests/test_mobile_jobs_ci.py :34 os.environ["C3_ORACLE_API_KEY"] = "mobile-jobs-key"
  • secrets (weak) drknowhow-code-context-control-9955a79/tests/test_mobile_override_costs.py :73 self.auth = {"Authorization": "Bearer " + os.environ["C3_ORACLE_API_KEY"]}
  • secrets (weak) drknowhow-code-context-control-9955a79/tests/test_mobile_override_routes.py :101 self.auth = {"Authorization": "Bearer " + os.environ["C3_ORACLE_API_KEY"]}
  • secrets (weak) drknowhow-code-context-control-9955a79/tests/test_mobile_security_api.py :144 self.auth = {"Authorization": "Bearer " + os.environ["C3_ORACLE_API_KEY"]}
  • secrets (weak) drknowhow-code-context-control-9955a79/tests/test_oracle_discovery_api.py :17 os.environ["C3_ORACLE_API_KEY"] = "test-secret-key"
  • secrets (weak) drknowhow-code-context-control-9955a79/tests/test_oracle_local_auth.py :29 os.environ["C3_ORACLE_API_KEY"] = "test-secret-key"
  • secrets (weak) drknowhow-code-context-control-9955a79/tests/test_oracle_loopback.py :232 os.environ["C3_ORACLE_API_KEY"] = "loopback-test-key"
  • secrets (weak) drknowhow-code-context-control-9955a79/tests/test_oracle_security_fixes.py :24 os.environ["C3_ORACLE_API_KEY"] = "test-secret-key"

database 3

  • db drknowhow-code-context-control-9955a79/services/index_store.py :33 import sqlite3
  • db drknowhow-code-context-control-9955a79/services/lexical_index.py :27 import sqlite3
  • db (weak) drknowhow-code-context-control-9955a79/tests/fixtures/search_eval_repo/src/ledgerlite/storage/sqlite_store.py :2 import sqlite3

tool registrations 24

  • c3_search drknowhow-code-context-control-9955a79/cli/mcp_server.py :660
  • c3_session drknowhow-code-context-control-9955a79/cli/mcp_server.py :694
  • c3_memory drknowhow-code-context-control-9955a79/cli/mcp_server.py :711
  • c3_read drknowhow-code-context-control-9955a79/cli/mcp_server.py :748
  • c3_validate drknowhow-code-context-control-9955a79/cli/mcp_server.py :777
  • c3_filter drknowhow-code-context-control-9955a79/cli/mcp_server.py :792
  • c3_status drknowhow-code-context-control-9955a79/cli/mcp_server.py :811
  • c3_delegate drknowhow-code-context-control-9955a79/cli/mcp_server.py :824
  • c3_agent drknowhow-code-context-control-9955a79/cli/mcp_server.py :863
  • c3_edit drknowhow-code-context-control-9955a79/cli/mcp_server.py :887
  • c3_edits drknowhow-code-context-control-9955a79/cli/mcp_server.py :912
  • c3_locks drknowhow-code-context-control-9955a79/cli/mcp_server.py :937
show 12 more
  • c3_ci drknowhow-code-context-control-9955a79/cli/mcp_server.py :955
  • c3_override drknowhow-code-context-control-9955a79/cli/mcp_server.py :1007
  • c3_impact drknowhow-code-context-control-9955a79/cli/mcp_server.py :1031
  • c3_shell drknowhow-code-context-control-9955a79/cli/mcp_server.py :1045
  • c3_shell_job drknowhow-code-context-control-9955a79/cli/mcp_server.py :1096
  • c3_bitbucket drknowhow-code-context-control-9955a79/cli/mcp_server.py :1132
  • c3_jira drknowhow-code-context-control-9955a79/cli/mcp_server.py :1194
  • c3_credentials drknowhow-code-context-control-9955a79/cli/mcp_server.py :1271
  • c3_project drknowhow-code-context-control-9955a79/cli/mcp_server.py :1338
  • c3_task drknowhow-code-context-control-9955a79/cli/mcp_server.py :1407
  • c3_artifacts drknowhow-code-context-control-9955a79/cli/mcp_server.py :1464
  • tool drknowhow-code-context-control-9955a79/oracle/mcp_oracle.py :76

declared dependencies 31

  • fastmcp@>=2.0.0
  • tiktoken@>=0.7.0
  • tomlkit@>=0.13.2
  • watchdog@>=4.0.0
  • tree-sitter@>=0.22.0
  • tree-sitter-python@>=0.21.0
  • tree-sitter-javascript@>=0.21.0
  • tree-sitter-typescript@>=0.21.0
  • tree-sitter-html@>=0.21.0
  • tree-sitter-markdown@>=0.3.2
  • tree-sitter-css@>=0.21.0
  • tree-sitter-go@>=0.21.0
show 19 more
  • tree-sitter-rust@>=0.21.0
  • tree-sitter-json@>=0.21.0
  • tree-sitter-yaml@>=0.6.0
  • flask@>=3.0.0
  • rich@>=13.0.0
  • click@>=8.0.0
  • pyyaml@>=6.0.0
  • keyring@>=24.0
  • scikit-learn@>=1.3.0
  • numpy@>=1.24.0
  • chromadb@>=0.4.24
  • flashrank@>=0.2.10
  • textual@>=0.50.0
  • sentry-sdk@>=2.0.0
  • pytest@>=7.0.0
  • pyright@>=1.1.350
  • ruff@>=0.6.0
  • build@>=1.0.0
  • twine@>=5.0.0