Multi-agent orchestration for AI coding CLIs — Claude Code, Kiro, Codex, and more, coordinated in isolated tmux sessions
Drift inferred · capture-to-capture
- HIGH code analysis flagged committed secret, dynamic code execution ×3 in awslabs/cli-agent-orchestrator
transport http counts 29 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
answer_user_prompt
-
assign
-
delete_terminal
-
emit_ui
-
find_profiles
-
get_profile_details
-
get_session_info
-
get_terminal_output
-
get_terminal_status
-
handoff
-
install_profile
-
launch_session
-
list_outcomes
-
list_profiles
-
list_sessions
-
load_skill
-
memory_forget
-
memory_recall
-
memory_store
-
read_session_output
-
report_outcome
-
send_message
-
send_session_message
-
shutdown_session
-
store_lesson
-
workflow_cancel
-
workflow_resume
-
workflow_return
-
workflow_run
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit a0aac25 · analyzer v28 · 2h ago
skills & prompt files 29
- skill awslabs-cli-agent-orchestrator-a0aac25/examples/aidlc-portfolio/skills/aidlc-portfolio/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/skills/agui-author/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/skills/cao-agent-routing/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/skills/cao-learning/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/skills/cao-mcp-apps/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/skills/cao-memory/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/skills/cao-plugin/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/skills/cao-provider/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/skills/cao-session-management/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/skills/cao-supervisor-protocols/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/skills/cao-worker-protocols/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/skills/cao-workflow/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/skills/mcp-apps-builder/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/skills/vendor/ext-apps/add-app-to-server/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/skills/vendor/ext-apps/convert-web-app/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/skills/vendor/ext-apps/create-mcp-app/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/skills/vendor/ext-apps/migrate-oai-app/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/skills/agui-author/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/skills/cao-agent-routing/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/skills/cao-learning/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/skills/cao-mcp-apps/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/skills/cao-memory/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/skills/cao-plugin/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/skills/cao-provider/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/skills/cao-session-management/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/skills/cao-supervisor-protocols/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/skills/cao-worker-protocols/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/skills/cao-workflow/SKILL.md
- skill awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/skills/mcp-apps-builder/SKILL.md
danger signals4
- dynamic code execution __import__ sink awslabs-cli-agent-orchestrator-a0aac25/test/cli/commands/test_info.py :16
env_patch = {k: v for k, v in __import__("os").environ.items() if k != "CAO_SESSION_NAME"} - dynamic code execution __import__ sink awslabs-cli-agent-orchestrator-a0aac25/test/cli/commands/test_update_cmd.py :148
side_effect=__import__("subprocess").CalledProcessError(1, ["uv", "tool", "dir"]), - dynamic code execution __import__() awslabs-cli-agent-orchestrator-a0aac25/test/services/test_context_manager_agent.py :96
__import__( - committed secret OpenAI key awslabs-cli-agent-orchestrator-a0aac25/test/services/test_wiki_compiler.py :481
sk-AAA…(43 chars, redacted)
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 660
filesystem 51
- fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/api/main.py :16
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/backends/herdr_backend.py :19
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/cli/commands/init.py :4
import shutil - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/cli/commands/install.py :4
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/cli/commands/memory.py :6
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/cli/commands/profile.py :8
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/cli/commands/skills.py :3
import shutil - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/cli/commands/update.py :4
import shutil - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/constants.py :12
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/ext_apps/apps.py :24
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/ext_apps/widget.py :23
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/graph/sinks/base.py :10
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/graph/sinks/graphml.py :20
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/graph/sinks/okf.py :22
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/plugins/builtin/claude_code_memory.py :16
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/plugins/builtin/codex_memory.py :23
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/plugins/builtin/kiro_cli_memory.py :29
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/providers/antigravity_cli.py :46
import shutil - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/providers/claude_code.py :11
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/providers/copilot_cli.py :13
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/providers/cursor_cli.py :68
import shutil - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/providers/kimi_cli.py :33
import shutil - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/agent_scaffold.py :10
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/audit_log.py :38
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/cleanup_service.py :5
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/config_service.py :28
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/fifo_reader.py :229
# The reader never blocks in open()/read() (non-blocking fd + - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/flow_service.py :9
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/herdr_inbox_service.py :92
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/install_service.py :6
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/learned_patterns.py :39
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/log_writer.py :24
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/memory_archive/base.py :15
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/memory_archive/okf.py :31
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/memory_reconciliation.py :17
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/memory_service.py :14
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/promotion_service.py :30
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/script_runner.py :558
fd = os.open(str(path), os.O_WRONLY | os.O_CREAT | os.O_TRUNC | os.O_NOFOLLOW, 0o600) - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/settings_service.py :6
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/wiki_compiler.py :12
import shutil - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/wiki_healer.py :39
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/wiki_lint.py :28
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/workflow_spec_service.py :33
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/utils/agent_profiles.py :6
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/utils/atomic_file.py :66
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/utils/markdown_links.py :10
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/utils/mcp_resolution.py :26
import shutil - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/utils/opencode_config.py :14
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/utils/paths.py :4
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/utils/skill_injection.py :8
from pathlib import Path - fs awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/utils/skills.py :5
from pathlib import Path
shell / exec 14
- shell awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/api/main.py :12
import subprocess - shell awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/backends/herdr_backend.py :17
import subprocess - shell awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/backends/tmux_backend.py :133
import subprocess - shell awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/cli/commands/info.py :4
import subprocess - shell awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/cli/commands/update.py :5
import subprocess - shell awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/clients/tmux.py :7
import subprocess - shell awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/providers/copilot_cli.py :11
import subprocess - shell awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/providers/cursor_cli.py :69
import subprocess - shell awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/providers/kiro_capabilities.py :11
import subprocess - shell awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/flow_service.py :7
import subprocess - shell awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/herdr_inbox_service.py :21
import subprocess - shell awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/memory_service.py :9
import subprocess - shell awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/wiki_lint.py :24
import subprocess - shell awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/utils/markdown_links.py :6
import subprocess
network 16
- net awslabs-cli-agent-orchestrator-a0aac25/src/cao_workflow/_transport.py :13
from urllib.error import HTTPError, URLError - net awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/cli/commands/info.py :7
import requests - net awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/cli/commands/launch.py :7
import requests - net awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/cli/commands/session.py :6
from urllib.parse import quote - net awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/cli/commands/shutdown.py :4
import requests - net awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/cli/commands/terminal.py :7
import requests - net awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/cli/commands/workflow.py :16
import requests - net awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/mcp_server/app_tools.py :36
import requests - net awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/mcp_server/server.py :9
import requests - net awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/mcp_server/utils.py :12
import requests - net awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/ops_mcp_server/server.py :5
import requests # type: ignore[import-untyped] - net awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/agui/base.py :99
import requests - net awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/agui/stream_reader.py :8
passed to ``requests.get``. The read timeout must comfortably exceed the - net awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/install_service.py :8
from urllib.parse import urlparse - net awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/utils/markdown_links.py :12
from urllib.parse import unquote, urlsplit - net awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/utils/terminal.py :10
import requests
secrets 1
- secrets awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/security/auth.py :315
token = os.getenv("CAO_AUTH_LOCAL_TOKEN", "").strip()
database 8
- db awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/clients/database.py :9
from sqlalchemy import ( - db awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/memory_reconciliation.py :259
from sqlalchemy.orm import sessionmaker - db awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/memory_service.py :281
from sqlalchemy.orm import sessionmaker - db awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/outcome_service.py :65
from sqlalchemy.orm import sessionmaker - db awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/wiki_lint.py :202
from sqlalchemy import event - db awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/workflow_journal.py :38
import sqlite3 - db awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/workflow_service.py :1061
import sqlite3 - db awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/services/workflow_spec_service.py :333
import sqlite3
tool registrations 31
- handoff awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/mcp_server/server.py :866
- handoff awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/mcp_server/server.py :937
- assign awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/mcp_server/server.py :1155
- assign awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/mcp_server/server.py :1173
- send_message awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/mcp_server/server.py :1273
- emit_ui awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/mcp_server/server.py :1303
- answer_user_prompt awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/mcp_server/server.py :1350
- load_skill awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/mcp_server/server.py :1368
- delete_terminal awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/mcp_server/server.py :1376
- find_profiles awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/mcp_server/server.py :1416
- memory_store awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/mcp_server/server.py :1517
- memory_recall awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/mcp_server/server.py :1591
- memory_forget awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/mcp_server/server.py :1681
- report_outcome awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/mcp_server/server.py :1718
- list_outcomes awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/mcp_server/server.py :1789
- store_lesson awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/mcp_server/server.py :1850
- workflow_return awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/mcp_server/server.py :1967
- workflow_run awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/mcp_server/server.py :2029
- workflow_resume awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/mcp_server/server.py :2071
- workflow_cancel awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/mcp_server/server.py :2107
- list_profiles awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/ops_mcp_server/server.py :156
- get_profile_details awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/ops_mcp_server/server.py :177
- install_profile awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/ops_mcp_server/server.py :204
- launch_session awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/ops_mcp_server/server.py :269
- send_session_message awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/ops_mcp_server/server.py :338
- read_session_output awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/ops_mcp_server/server.py :454
- get_terminal_status awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/ops_mcp_server/server.py :511
- get_terminal_output awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/ops_mcp_server/server.py :541
- list_sessions awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/ops_mcp_server/server.py :592
- get_session_info awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/ops_mcp_server/server.py :610
- shutdown_session awslabs-cli-agent-orchestrator-a0aac25/src/cli_agent_orchestrator/ops_mcp_server/server.py :637
declared dependencies 10
- fastmcp@>=2.14.0,<4.0.0
- mcp@>=1.23.0
- fastapi@>=0.104.0
- pydantic@>=2.10.6
- apscheduler@>=3.10.4
- sqlalchemy@>=2.0.0
- ag-ui-protocol@>=0.1.19,<0.2.0
- opentelemetry-api@>=1.27.0
- opentelemetry-sdk@>=1.27.0
- opentelemetry-exporter-otlp-proto-grpc@>=1.27.0
transport_posture 1
- network-listening, binds all interfaces, no auth detected awslabs-cli-agent-orchestrator-a0aac25/test/api/test_api_endpoints.py :1441
agents_dir=None, host="0.0.0.0", port=9999, terminal=None