github Python analyzed a0aac25

awslabs/cli-agent-orchestrator

github

Multi-agent orchestration for AI coding CLIs — Claude Code, Kiro, Codex, and more, coordinated in isolated tmux sessions

maintainer
awslabs
license
Apache-2.0
first seen
2026-08-01
last seen
2026-08-01
releases · 30d
1
short id

Drift inferred · capture-to-capture

  1. HIGH code analysis flagged committed secret, dynamic code execution ×3 in awslabs/cli-agent-orchestrator
capabilities 29 tools
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
skills & danger signals github-tarball
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

danger signals4

code evidence vv2.3.0 · github-tarball
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