github Python analyzed 3bad1b6

tenuo-ai/tenuo-claude-code

github

Task-scoped authorization for Claude Code. Constrain files, commands, web access, MCP tools, and subagents, with signed evidence of what was allowed or denied.

maintainer
tenuo-ai
licence
NOASSERTION
first seen
2026-09-02
last seen
2026-09-12
releases · 30d
1
short id

Drift inferred · capture-to-capture

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

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

tools

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

analyzed commit 3bad1b6 · analyzer v33 · 2d ago

skills & prompt files 1

danger signals2

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

code files: 29

filesystem 11

  • fs tenuo-ai-tenuo-claude-code-3bad1b6/demo/ops_server.py :18 from pathlib import Path
  • fs tenuo-ai-tenuo-claude-code-3bad1b6/src/tenuo_claude_code/admin.py :32 from pathlib import Path
  • fs tenuo-ai-tenuo-claude-code-3bad1b6/src/tenuo_claude_code/authorizer_runtime.py :9 import shutil
  • fs tenuo-ai-tenuo-claude-code-3bad1b6/src/tenuo_claude_code/cli.py :35 import shutil
  • fs tenuo-ai-tenuo-claude-code-3bad1b6/src/tenuo_claude_code/packs.py :12 from pathlib import Path
  • fs tenuo-ai-tenuo-claude-code-3bad1b6/src/tenuo_claude_code/paths.py :7 from pathlib import Path
  • fs tenuo-ai-tenuo-claude-code-3bad1b6/src/tenuo_claude_code/verify.py :8 from pathlib import Path
  • fs (weak) tenuo-ai-tenuo-claude-code-3bad1b6/tests/test_authorizer_runtime.py :7 from pathlib import Path
  • fs (weak) tenuo-ai-tenuo-claude-code-3bad1b6/tests/test_dx_improvements.py :315 # at a *directory*, so open("a") raises but `.receipt_write_failed` (same parent)
  • fs (weak) tenuo-ai-tenuo-claude-code-3bad1b6/tests/test_ipc_transport.py :19 import shutil
  • fs (weak) tenuo-ai-tenuo-claude-code-3bad1b6/tests/test_posture.py :10 from pathlib import Path

shell / exec 5

  • shell tenuo-ai-tenuo-claude-code-3bad1b6/src/tenuo_claude_code/authorizer_runtime.py :14 import subprocess
  • shell tenuo-ai-tenuo-claude-code-3bad1b6/src/tenuo_claude_code/cli.py :37 import subprocess
  • shell (weak) tenuo-ai-tenuo-claude-code-3bad1b6/tests/test_check.py :8 import subprocess
  • shell (weak) tenuo-ai-tenuo-claude-code-3bad1b6/tests/test_managed_template.py :11 import subprocess
  • shell (weak) tenuo-ai-tenuo-claude-code-3bad1b6/tests/test_scaffold.py :7 import subprocess

network 4

  • net tenuo-ai-tenuo-claude-code-3bad1b6/src/tenuo_claude_code/admin.py :30 import socket
  • net tenuo-ai-tenuo-claude-code-3bad1b6/src/tenuo_claude_code/authorizer_runtime.py :11 import socket
  • net tenuo-ai-tenuo-claude-code-3bad1b6/src/tenuo_claude_code/cli.py :41 import urllib.error
  • net (weak) tenuo-ai-tenuo-claude-code-3bad1b6/tests/test_ipc_transport.py :20 import socket

secrets 2

  • secrets tenuo-ai-tenuo-claude-code-3bad1b6/src/tenuo_claude_code/admin.py :28 import getpass
  • secrets tenuo-ai-tenuo-claude-code-3bad1b6/src/tenuo_claude_code/cli.py :3058 key = os.environ.get("TENUO_ADMIN_KEY") or os.environ.get("TENUO_ADMIN_API_KEY")

tool registrations 3

  • read_file tenuo-ai-tenuo-claude-code-3bad1b6/demo/ops_server.py :35
  • list_directory tenuo-ai-tenuo-claude-code-3bad1b6/demo/ops_server.py :47
  • delete_deployment tenuo-ai-tenuo-claude-code-3bad1b6/demo/ops_server.py :56

declared dependencies 5

  • mcp@>=1.0,<2
  • tenuo@>=0.3.0,<0.4
  • PyYAML@>=6.0
  • certifi@>=2024.0
  • cryptography@>=42.0