Open-source goal-driven agent runtime for production workflows — graphs, HITL, MCP, credentials, and web dashboard.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · streamable-http · sse counts 57 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
append_data
-
browser_activate_tab
-
browser_click
-
browser_click_coordinate
-
browser_close
-
browser_console
-
browser_drag
-
browser_evaluate
-
browser_get_attribute
-
browser_get_rect
-
browser_get_text
-
browser_go_back
-
browser_go_forward
-
browser_hover
-
browser_hover_coordinate
-
browser_html
-
browser_navigate
-
browser_open
-
browser_press
-
browser_press_at
-
browser_reload
-
browser_resize
-
browser_screenshot
-
browser_scroll
-
browser_select
-
browser_setup
-
browser_shadow_query
-
browser_snapshot
-
browser_status
-
browser_stop
-
browser_tabs
-
browser_type
-
browser_type_focused
-
browser_upload
-
browser_wait
-
chart_render
-
edit_data
-
edit_file
-
get_current_time
-
list_data_files
-
list_directory
-
load_data
-
read_file
-
save_data
-
search_files
-
serve_file_to_user
-
terminal_exec
-
terminal_find
-
terminal_job_logs
-
terminal_job_manage
-
terminal_job_start
-
terminal_output_get
-
terminal_pty_close
-
terminal_pty_open
-
terminal_pty_run
-
terminal_rg
-
write_file
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit a5136a7 · analyzer v33 · 1w ago
skills & prompt files 2
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 383
filesystem 83
- fs EngineXV-engineX-a5136a7/core/engine/cli.py :5
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/config.py :9
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/credentials/key_storage.py :8
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/credentials/local/registry.py :7
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/credentials/setup.py :11
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/credentials/storage.py :10
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/credentials/store.py :416
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/credentials/validation.py :18
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/graph/conversation.py :8
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/graph/event_loop/node.py :13
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/graph/executor.py :7
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/graph/hitl.py :6
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/graph/prompt_composer.py :7
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/llm/litellm.py :9
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/llm/model_catalog.py :8
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/observability/cost_alerts.py :29
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/observability/run_history.py :7
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/runner/cli.py :7
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/runner/mcp_client.py :168
devnull = open(os.devnull, "w") # noqa: SIM115 - fs EngineXV-engineX-a5136a7/core/engine/runner/runner.py :6
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/runner/server_cli.py :7
import shutil - fs EngineXV-engineX-a5136a7/core/engine/runner/subscription_auth.py :9
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/runner/tool_registry.py :12
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/runtime/agent_runtime.py :9
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/runtime/core.py :7
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/runtime/event_bus.py :11
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/runtime/llm_debug_logger.py :7
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/runtime/runtime_log_store.py :9
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/server/app.py :7
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/server/discovery.py :6
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/server/routes_checkpoints.py :6
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/server/routes_skills.py :9
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/server/session.py :10
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/skills/discovery.py :7
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/skills/runtime_tools.py :5
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/storage/backend.py :4
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/storage/checkpoint_store.py :6
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/storage/concurrent.py :8
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/storage/conversation_store.py :7
import shutil - fs EngineXV-engineX-a5136a7/core/engine/storage/migrate.py :7
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/storage/session_store.py :7
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/tasks/store.py :10
from pathlib import Path - fs (weak) EngineXV-engineX-a5136a7/core/engine/tests/test_cost_attribution.py :17
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/tui/app.py :328
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/tui/screens/agent_picker.py :9
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/tui/widgets/chat_repl.py :6
import shutil - fs EngineXV-engineX-a5136a7/core/engine/tui/widgets/file_browser.py :7
from pathlib import Path - fs EngineXV-engineX-a5136a7/core/engine/utils/io.py :3
from pathlib import Path - fs (weak) EngineXV-engineX-a5136a7/core/tests/conftest.py :6
from pathlib import Path - fs (weak) EngineXV-engineX-a5136a7/core/tests/test_agent_runtime.py :5
from pathlib import Path - fs (weak) EngineXV-engineX-a5136a7/core/tests/test_claim.py :4
from pathlib import Path - fs (weak) EngineXV-engineX-a5136a7/core/tests/test_cli_entry_point.py :3
import shutil - fs (weak) EngineXV-engineX-a5136a7/core/tests/test_credential_store.py :6
from pathlib import Path - fs (weak) EngineXV-engineX-a5136a7/core/tests/test_litellm_streaming.py :18
from pathlib import Path - fs (weak) EngineXV-engineX-a5136a7/core/tests/test_log_monitor_pipeline.py :7
from pathlib import Path - fs (weak) EngineXV-engineX-a5136a7/core/tests/test_log_monitor_production.py :7
from pathlib import Path - fs (weak) EngineXV-engineX-a5136a7/core/tests/test_path_traversal_fix.py :8
from pathlib import Path - fs (weak) EngineXV-engineX-a5136a7/core/tests/test_platform_features.py :5
from pathlib import Path - fs (weak) EngineXV-engineX-a5136a7/core/tests/test_run_history.py :6
from pathlib import Path - fs (weak) EngineXV-engineX-a5136a7/core/tests/test_runner_validation.py :36
from pathlib import Path - fs (weak) EngineXV-engineX-a5136a7/core/tests/test_runtime.py :3
from pathlib import Path - fs (weak) EngineXV-engineX-a5136a7/core/tests/test_runtime_logger.py :10
from pathlib import Path - fs (weak) EngineXV-engineX-a5136a7/core/tests/test_safe_eval.py :52
safe_eval("open('/etc/passwd')", {}) - fs (weak) EngineXV-engineX-a5136a7/core/tests/test_server_e2e.py :8
from pathlib import Path - fs (weak) EngineXV-engineX-a5136a7/core/tests/test_shared_state_persistence.py :10
from pathlib import Path - fs (weak) EngineXV-engineX-a5136a7/core/tests/test_tool_registry.py :10
from pathlib import Path - fs (weak) EngineXV-engineX-a5136a7/core/tests/test_vector_store.py :5
from pathlib import Path - fs (weak) EngineXV-engineX-a5136a7/examples/templates/deep_research/tools.py :200
with open(path, "a", encoding="utf-8") as handle: - fs (weak) EngineXV-engineX-a5136a7/examples/templates/log_monitor/lib/dedup_store.py :7
from pathlib import Path - fs (weak) EngineXV-engineX-a5136a7/examples/templates/log_monitor/lib/enrichment.py :8
from pathlib import Path - fs (weak) EngineXV-engineX-a5136a7/examples/templates/supervised_agreement_analysis/agent.py :5
from pathlib import Path - fs (weak) EngineXV-engineX-a5136a7/examples/templates/supervisors/supervisor_factory.py :6
from pathlib import Path - fs EngineXV-engineX-a5136a7/tools/src/chart_tools/renderer.py :33
from pathlib import Path - fs EngineXV-engineX-a5136a7/tools/src/chart_tools/tools.py :21
from pathlib import Path - fs EngineXV-engineX-a5136a7/tools/src/engine_tools/credentials/base.py :7
from pathlib import Path - fs EngineXV-engineX-a5136a7/tools/src/engine_tools/credentials/shell_config.py :7
from pathlib import Path - fs EngineXV-engineX-a5136a7/tools/src/engine_tools/file_ops.py :11
from pathlib import Path - fs EngineXV-engineX-a5136a7/tools/src/engine_tools/tools/data_tools.py :6
from pathlib import Path - fs EngineXV-engineX-a5136a7/tools/src/gcu/browser/telemetry.py :21
from pathlib import Path - fs EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/advanced.py :355
from pathlib import Path - fs EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/inspection.py :108
img = Image.open(io.BytesIO(raw)).convert("RGBA") - fs EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/lifecycle.py :12
from pathlib import Path - fs EngineXV-engineX-a5136a7/tools/src/terminal_tools/search/tools.py :12
import shutil
shell / exec 16
- shell EngineXV-engineX-a5136a7/core/engine/runner/cli.py :341
import subprocess - shell EngineXV-engineX-a5136a7/core/engine/runner/server_cli.py :8
import subprocess - shell EngineXV-engineX-a5136a7/core/engine/runner/subscription_auth.py :145
import subprocess - shell EngineXV-engineX-a5136a7/core/engine/tui/app.py :3
import subprocess - shell EngineXV-engineX-a5136a7/core/engine/tui/widgets/file_browser.py :5
import subprocess - shell EngineXV-engineX-a5136a7/core/engine/tui/widgets/selectable_rich_log.py :5
import subprocess - shell (weak) EngineXV-engineX-a5136a7/core/tests/dummy_graphs/run_all.py :5
import subprocess - shell (weak) EngineXV-engineX-a5136a7/core/tests/test_cli_entry_point.py :4
import subprocess - shell (weak) EngineXV-engineX-a5136a7/core/tests/test_load_framework.py :4
import subprocess - shell (weak) EngineXV-engineX-a5136a7/core/tests/test_report.py :5
import subprocess - shell (weak) EngineXV-engineX-a5136a7/tools/load_test.py :5
import subprocess - shell EngineXV-engineX-a5136a7/tools/src/engine_tools/file_ops.py :9
import subprocess - shell EngineXV-engineX-a5136a7/tools/src/engine_tools/tools/data_tools.py :41
import subprocess - shell EngineXV-engineX-a5136a7/tools/src/terminal_tools/exec.py :29
import subprocess - shell EngineXV-engineX-a5136a7/tools/src/terminal_tools/jobs/manager.py :27
import subprocess - shell EngineXV-engineX-a5136a7/tools/src/terminal_tools/search/tools.py :13
import subprocess
network 19
- net EngineXV-engineX-a5136a7/core/engine/credentials/oauth2/base_provider.py :13
from urllib.parse import urlencode - net EngineXV-engineX-a5136a7/core/engine/runner/mcp_client.py :9
import httpx - net EngineXV-engineX-a5136a7/core/engine/runner/server_cli.py :109
from aiohttp import web - net EngineXV-engineX-a5136a7/core/engine/runner/subscription_auth.py :30
import urllib.error - net EngineXV-engineX-a5136a7/core/engine/server/app.py :9
from aiohttp import web - net EngineXV-engineX-a5136a7/core/engine/server/routes.py :9
from aiohttp import web - net EngineXV-engineX-a5136a7/core/engine/server/routes_checkpoints.py :8
from aiohttp import web - net EngineXV-engineX-a5136a7/core/engine/server/routes_credentials.py :9
from aiohttp import web - net EngineXV-engineX-a5136a7/core/engine/server/routes_oauth.py :11
from aiohttp import web - net EngineXV-engineX-a5136a7/core/engine/server/routes_ops.py :5
from aiohttp import web - net EngineXV-engineX-a5136a7/core/engine/server/routes_skills.py :11
from aiohttp import web - net EngineXV-engineX-a5136a7/core/engine/server/routes_tasks.py :7
from aiohttp import web - net EngineXV-engineX-a5136a7/core/engine/server/sse.py :6
from aiohttp import web - net (weak) EngineXV-engineX-a5136a7/core/tests/test_server_e2e.py :12
from aiohttp.test_utils import TestClient, TestServer - net (weak) EngineXV-engineX-a5136a7/examples/templates/deep_research/tools.py :10
from urllib.parse import urlparse - net (weak) EngineXV-engineX-a5136a7/examples/templates/log_monitor/lib/alerts.py :9
from urllib.error import HTTPError, URLError - net (weak) EngineXV-engineX-a5136a7/examples/templates/log_monitor/lib/grafana_client.py :10
from urllib.error import HTTPError, URLError - net (weak) EngineXV-engineX-a5136a7/examples/templates/log_monitor/lib/health.py :8
from urllib.error import HTTPError, URLError - net EngineXV-engineX-a5136a7/tools/src/engine_tools/credentials/health_check.py :8
import httpx
secrets 18
- secrets EngineXV-engineX-a5136a7/core/engine/credentials/setup.py :5
import getpass - secrets EngineXV-engineX-a5136a7/core/engine/credentials/store.py :427
api_key = os.environ.get("ENGINE_OAUTH_API_KEY") - secrets EngineXV-engineX-a5136a7/core/engine/credentials/validation.py :244
if os.environ.get("ENGINE_OAUTH_API_KEY"): - secrets EngineXV-engineX-a5136a7/core/engine/graph/node.py :493
api_key = os.environ.get("ANTHROPIC_API_KEY") - secrets EngineXV-engineX-a5136a7/core/engine/graph/output_cleaner.py :91
api_key = os.environ.get("CEREBRAS_API_KEY") - secrets EngineXV-engineX-a5136a7/core/engine/llm/anthropic.py :20
return os.environ.get("ANTHROPIC_API_KEY") - secrets EngineXV-engineX-a5136a7/core/engine/runner/cli.py :978
client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY")) - secrets EngineXV-engineX-a5136a7/core/engine/runner/runner.py :597
if not os.environ.get("ENGINE_CREDENTIAL_KEY"): - secrets EngineXV-engineX-a5136a7/core/engine/runner/tool_registry.py :328
self._mcp_engine_sync_key_snapshot = os.environ.get("ENGINE_OAUTH_API_KEY") - secrets EngineXV-engineX-a5136a7/core/engine/server/app.py :42
if os.environ.get("ENGINE_CREDENTIAL_KEY"): - secrets EngineXV-engineX-a5136a7/core/engine/server/routes_credentials.py :172
if os.environ.get("ENGINE_CREDENTIAL_KEY"): - secrets EngineXV-engineX-a5136a7/core/engine/server/routes_oauth.py :39
client_secret = os.environ.get("HUBSPOT_CLIENT_SECRET", "") - secrets EngineXV-engineX-a5136a7/core/engine/tui/screens/credential_setup.py :96
oauth_api_key = os.environ.get("ENGINE_OAUTH_API_KEY", "") - secrets (weak) EngineXV-engineX-a5136a7/core/tests/test_server_e2e.py :79
@pytest.mark.skipif(not os.environ.get("ANTHROPIC_API_KEY"), reason="ANTHROPIC_API_KEY not set") - secrets (weak) EngineXV-engineX-a5136a7/examples/templates/deep_research/tools.py :49
env_key = os.environ.get("BRAVE_SEARCH_API_KEY") - secrets (weak) EngineXV-engineX-a5136a7/examples/templates/log_monitor/lib/alerts.py :89
routing_key = os.environ.get("PAGERDUTY_ROUTING_KEY", "") - secrets (weak) EngineXV-engineX-a5136a7/examples/templates/log_monitor/lib/config.py :43
grafana_token=os.environ.get("GRAFANA_API_TOKEN", ""), - secrets EngineXV-engineX-a5136a7/tools/src/engine_tools/credentials/store_adapter.py :334
engine_oauth_api_key = os.environ.get("ENGINE_OAUTH_API_KEY")
tool registrations 60
- chart_render EngineXV-engineX-a5136a7/tools/src/chart_tools/tools.py :54
- read_file EngineXV-engineX-a5136a7/tools/src/engine_tools/file_ops.py :224
- write_file EngineXV-engineX-a5136a7/tools/src/engine_tools/file_ops.py :283
- edit_file EngineXV-engineX-a5136a7/tools/src/engine_tools/file_ops.py :307
- list_directory EngineXV-engineX-a5136a7/tools/src/engine_tools/file_ops.py :377
- search_files EngineXV-engineX-a5136a7/tools/src/engine_tools/file_ops.py :420
- save_data EngineXV-engineX-a5136a7/tools/src/engine_tools/tools/data_tools.py :60
- load_data EngineXV-engineX-a5136a7/tools/src/engine_tools/tools/data_tools.py :87
- serve_file_to_user EngineXV-engineX-a5136a7/tools/src/engine_tools/tools/data_tools.py :166
- list_data_files EngineXV-engineX-a5136a7/tools/src/engine_tools/tools/data_tools.py :203
- append_data EngineXV-engineX-a5136a7/tools/src/engine_tools/tools/data_tools.py :230
- edit_data EngineXV-engineX-a5136a7/tools/src/engine_tools/tools/data_tools.py :258
- get_current_time EngineXV-engineX-a5136a7/tools/src/engine_tools/tools/time_tool/time_tool.py :14
- browser_wait EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/advanced.py :23
- browser_evaluate EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/advanced.py :91
- browser_get_text EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/advanced.py :192
- browser_get_attribute EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/advanced.py :229
- browser_resize EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/advanced.py :270
- browser_upload EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/advanced.py :318
- browser_screenshot EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/inspection.py :277
- browser_shadow_query EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/inspection.py :493
- browser_get_rect EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/inspection.py :557
- browser_snapshot EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/inspection.py :620
- browser_console EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/inspection.py :694
- browser_html EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/inspection.py :724
- browser_click EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/interactions.py :101
- browser_click_coordinate EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/interactions.py :193
- browser_type EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/interactions.py :310
- browser_type_focused EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/interactions.py :402
- browser_press EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/interactions.py :489
- browser_hover EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/interactions.py :563
- browser_hover_coordinate EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/interactions.py :622
- browser_press_at EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/interactions.py :711
- browser_select EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/interactions.py :802
- browser_scroll EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/interactions.py :861
- browser_drag EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/interactions.py :946
- browser_setup EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/lifecycle.py :142
- browser_status EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/lifecycle.py :206
- browser_stop EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/lifecycle.py :278
- browser_navigate EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/navigation.py :26
- browser_go_back EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/navigation.py :114
- browser_go_forward EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/navigation.py :169
- browser_reload EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/navigation.py :227
- browser_tabs EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/tabs.py :40
- browser_open EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/tabs.py :99
- browser_close EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/tabs.py :176
- browser_activate_tab EngineXV-engineX-a5136a7/tools/src/gcu/browser/tools/tabs.py :246
- terminal_exec EngineXV-engineX-a5136a7/tools/src/terminal_tools/exec.py :62
- terminal_job_start EngineXV-engineX-a5136a7/tools/src/terminal_tools/jobs/tools.py :35
- terminal_job_logs EngineXV-engineX-a5136a7/tools/src/terminal_tools/jobs/tools.py :103
- terminal_job_manage EngineXV-engineX-a5136a7/tools/src/terminal_tools/jobs/tools.py :165
- terminal_output_get EngineXV-engineX-a5136a7/tools/src/terminal_tools/output.py :14
- terminal_pty_open EngineXV-engineX-a5136a7/tools/src/terminal_tools/pty/tools.py :97
- terminal_pty_run EngineXV-engineX-a5136a7/tools/src/terminal_tools/pty/tools.py :107
- terminal_pty_close EngineXV-engineX-a5136a7/tools/src/terminal_tools/pty/tools.py :112
- terminal_pty_open EngineXV-engineX-a5136a7/tools/src/terminal_tools/pty/tools.py :121
- terminal_pty_run EngineXV-engineX-a5136a7/tools/src/terminal_tools/pty/tools.py :170
- terminal_pty_close EngineXV-engineX-a5136a7/tools/src/terminal_tools/pty/tools.py :226
- terminal_rg EngineXV-engineX-a5136a7/tools/src/terminal_tools/search/tools.py :25
- terminal_find EngineXV-engineX-a5136a7/tools/src/terminal_tools/search/tools.py :130
clipboard 1
- clipboard shell call EngineXV-engineX-a5136a7/core/engine/tui/widgets/selectable_rich_log.py :196
subprocess.run(["pbcopy"], input=text.encode(), check=True, timeout=5)