github Python re-analysis due

pensados/sentinelx-cloud-core

github

SentinelX agent: outbound-only agent that exposes your Linux, macOS, and Windows servers as MCP tools to Claude.ai and ChatGPT

maintainer
pensados
licence
Apache-2.0
first seen
2026-06-03
last seen
2026-09-17
releases · 30d
0
short id

Drift inferred · capture-to-capture

tool count over time

08-11 18:22 now
18t
18t
capabilities 18 tools
transport stdio counts 18 tools · 0 res · 0 prompts permission surface via README inference

tools

  • sentinel_capabilities

    Host policy/capabilities; optional bounded summary projection

  • sentinel_chmod

    Change file permissions

  • sentinel_chown

    Change file owner/group

  • sentinel_copy

    Copy a file or directory

  • sentinel_delete

    Delete a file or directory

  • sentinel_edit

    Structured file edit (replace, regex, replace-block, write, append, prepend)

  • sentinel_exec

    Run an allowlisted shell command

  • sentinel_help

    Rich orientation/help; optional topic/path/single-playbook projections

  • sentinel_list

    Structured directory listing (name, type, size, mtime)

  • sentinel_move

    Move/rename a file or directory

  • sentinel_ping

    Cheap connectivity check

  • sentinel_read

    Read a file's contents, with optional line-range slicing

  • sentinel_restart

    Shortcut for sentinel_service with action=restart

  • sentinel_script_run

    Run a one-off bash or python3 script

  • sentinel_search

    Recursive content search with regex and glob filters

  • sentinel_service

    systemctl start/stop/restart/reload/status

  • sentinel_state

    Internal agent state, for debugging

  • sentinel_upload_file

    Single-shot file upload to the host

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

analyzed commit 7d33d5e · analyzer v33 · 1d ago

danger signals1

code evidence vwin-bundle-0.4.1 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 53

filesystem 36

  • fs pensados-sentinelx-cloud-core-7d33d5e/src/sentinelx_core/__main__.py :9 from pathlib import Path
  • fs pensados-sentinelx-cloud-core-7d33d5e/src/sentinelx_core/client.py :15 import shutil
  • fs pensados-sentinelx-cloud-core-7d33d5e/src/sentinelx_core/executor.py :16 from pathlib import Path
  • fs pensados-sentinelx-cloud-core-7d33d5e/src/sentinelx_core/executor_engine.py :17 from pathlib import Path
  • fs pensados-sentinelx-cloud-core-7d33d5e/src/sentinelx_core/handlers/__init__.py :14 from pathlib import Path
  • fs pensados-sentinelx-cloud-core-7d33d5e/src/sentinelx_core/handlers/basic.py :350 with open("/proc/uptime") as f:
  • fs pensados-sentinelx-cloud-core-7d33d5e/src/sentinelx_core/handlers/edit.py :45 import shutil
  • fs pensados-sentinelx-cloud-core-7d33d5e/src/sentinelx_core/handlers/file_export.py :34 from pathlib import Path
  • fs pensados-sentinelx-cloud-core-7d33d5e/src/sentinelx_core/handlers/fileops.py :90 from pathlib import Path
  • fs pensados-sentinelx-cloud-core-7d33d5e/src/sentinelx_core/handlers/fsmutate.py :69 import shutil
  • fs pensados-sentinelx-cloud-core-7d33d5e/src/sentinelx_core/handlers/git_ops.py :30 from pathlib import Path
  • fs pensados-sentinelx-cloud-core-7d33d5e/src/sentinelx_core/handlers/project_snapshot.py :22 from pathlib import Path
show 24 more
  • fs pensados-sentinelx-cloud-core-7d33d5e/src/sentinelx_core/handlers/script.py :50 import shutil
  • fs pensados-sentinelx-cloud-core-7d33d5e/src/sentinelx_core/handlers/upload.py :28 import shutil
  • fs pensados-sentinelx-cloud-core-7d33d5e/src/sentinelx_core/identity.py :7 from pathlib import Path
  • fs pensados-sentinelx-cloud-core-7d33d5e/src/sentinelx_core/local_audit.py :30 from pathlib import Path
  • fs pensados-sentinelx-cloud-core-7d33d5e/src/sentinelx_core/policy.py :14 from pathlib import Path
  • fs pensados-sentinelx-cloud-core-7d33d5e/src/sentinelx_core/staging.py :18 from pathlib import Path
  • fs (weak) pensados-sentinelx-cloud-core-7d33d5e/tests/test_audit_outcome.py :18 from pathlib import Path
  • fs (weak) pensados-sentinelx-cloud-core-7d33d5e/tests/test_fileops.py :15 from pathlib import Path
  • fs (weak) pensados-sentinelx-cloud-core-7d33d5e/tests/test_fileops_event_loop.py :19 from pathlib import Path
  • fs (weak) pensados-sentinelx-cloud-core-7d33d5e/tests/test_handlers_edit.py :11 from pathlib import Path
  • fs (weak) pensados-sentinelx-cloud-core-7d33d5e/tests/test_handlers_fsmutate.py :21 from pathlib import Path
  • fs (weak) pensados-sentinelx-cloud-core-7d33d5e/tests/test_handlers_script.py :5 from pathlib import Path
  • fs (weak) pensados-sentinelx-cloud-core-7d33d5e/tests/test_handlers_upload.py :7 from pathlib import Path
  • fs (weak) pensados-sentinelx-cloud-core-7d33d5e/tests/test_identity.py :6 from pathlib import Path
  • fs (weak) pensados-sentinelx-cloud-core-7d33d5e/tests/test_jobs.py :7 from pathlib import Path
  • fs (weak) pensados-sentinelx-cloud-core-7d33d5e/tests/test_local_api.py :12 from pathlib import Path
  • fs (weak) pensados-sentinelx-cloud-core-7d33d5e/tests/test_local_audit.py :20 from pathlib import Path
  • fs (weak) pensados-sentinelx-cloud-core-7d33d5e/tests/test_policy.py :6 from pathlib import Path
  • fs (weak) pensados-sentinelx-cloud-core-7d33d5e/tests/test_read_bounds.py :18 from pathlib import Path
  • fs (weak) pensados-sentinelx-cloud-core-7d33d5e/tests/test_script_windows_encoding.py :23 from pathlib import Path
  • fs (weak) pensados-sentinelx-cloud-core-7d33d5e/tests/test_search_streaming.py :17 from pathlib import Path
  • fs (weak) pensados-sentinelx-cloud-core-7d33d5e/tests/test_staging.py :14 from pathlib import Path
  • fs (weak) pensados-sentinelx-cloud-core-7d33d5e/tests/test_sudo_cwd.py :14 import shutil
  • fs (weak) pensados-sentinelx-cloud-core-7d33d5e/tests/test_vendored_pensa_safe_edit.py :20 from pathlib import Path

shell / exec 6

  • shell pensados-sentinelx-cloud-core-7d33d5e/src/sentinelx_core/client.py :17 import subprocess
  • shell pensados-sentinelx-cloud-core-7d33d5e/src/sentinelx_core/handlers/fsmutate.py :70 import subprocess
  • shell pensados-sentinelx-cloud-core-7d33d5e/src/sentinelx_core/handlers/script.py :52 import subprocess
  • shell (weak) pensados-sentinelx-cloud-core-7d33d5e/tests/test_kill_process_tree.py :21 import subprocess
  • shell (weak) pensados-sentinelx-cloud-core-7d33d5e/tests/test_sudo_cwd.py :15 import subprocess
  • shell (weak) pensados-sentinelx-cloud-core-7d33d5e/tests/test_vendored_pensa_safe_edit.py :18 import subprocess

network 5

  • net pensados-sentinelx-cloud-core-7d33d5e/src/sentinelx_core/client.py :16 import socket
  • net pensados-sentinelx-cloud-core-7d33d5e/src/sentinelx_core/handlers/basic.py :7 import socket
  • net pensados-sentinelx-cloud-core-7d33d5e/src/sentinelx_core/handlers/upload.py :29 import socket
  • net pensados-sentinelx-cloud-core-7d33d5e/src/sentinelx_core/local_api.py :85 from urllib.parse import quote
  • net pensados-sentinelx-cloud-core-7d33d5e/src/sentinelx_core/local_api_relay.py :22 import socket

declared dependencies 8

  • websockets@>=12.0
  • pydantic@>=2.6,<3
  • pyyaml@>=6.0
  • structlog@>=24.1
  • sentinelx-cloud-protocol@@ git+https://github.com/pensados/sentinelx-cloud-protocol.git@v1.11.0
  • pytest@>=8.0
  • pytest-asyncio@>=0.23
  • ruff@>=0.4