OpenCROW
Health Warn
- License — License: Apache-2.0
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Pass
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Agentic AI orchestration framework for offensive security and CTF work, with Codex-ready skills, typed MCP servers, workflow CLIs, and OpenCROW Constellation for multi-agent coordination, corpus sync, and final artifact handoff.
OpenCROW
Open Codex Runtime for Offensive Workflows.
OpenCROW is an agentic AI orchestration framework for offensive security and CTF workflows. It bootstraps a local execution runtime around an existing Anaconda or Miniconda installation, syncs repo-managed Codex skills into ~/.codex/skills, installs the underlying execution stack those agents need, and exposes provider-neutral stdio MCP servers so agents can work through typed interfaces instead of ad hoc shell glue.
The project is structured around three layers:
- workflow entrypoints such as
opencrow-autosetupandopencrow-exploitthat launch reconnaissance and solve agents inside the current workspace - OpenCROW Constellation, the multi-agent coordination layer for shared topics, directives, corpus sync, live chat, and immutable final artifacts
- toolbox and I/O MCP servers that give those agents typed access to crypto, pwn, reversing, network, web, forensics, stego, OSINT, utility, SSH, TCP, Minecraft, and coordination surfaces
OpenCROW now ships provider-neutral stdio MCP servers across that runtime surface, with the shared contract defined in doc/MCP_ARCHITECTURE.md.
OpenCROW as a Framework
OpenCROW is not just a package installer. The intended operating model is:
- initialize or update the local agent runtime with the catalog-driven installer
- seed a workspace and launch a reconnaissance pass with
opencrow-autosetup - continue into the solve phase with
opencrow-exploit - coordinate multiple agents and workspaces through OpenCROW Constellation when a challenge needs parallel work
- let every agent use typed MCP tools and synced skills instead of bespoke one-off shell scripts
OpenCROW Constellation
OpenCROW Constellation is the coordination core of the framework. It turns a challenge into a shared topic that agents can join from separate workspaces while sharing:
- topic metadata and handoff URLs
- live chat, broadcasts, and master directives
- synced markdown findings and changelog corpus
- resumable topic identity and Codex session tracking
- immutable final artifacts such as
writeup.md, solver files, and verified flags
Constellation ships as a stdio MCP client plus a Tornado backend, Flask UI, Mongo-backed event store, and GridFS artifact layer.
Requirements
- An existing Anaconda or Miniconda installation
- Ubuntu or another Debian-like system with
apt-get sudoaccess for system package installation- Network access
If Conda is missing, the installer stops and prints official download links:
- Miniconda: https://docs.conda.io/en/latest/miniconda.html
- Anaconda: https://www.anaconda.com/download
Installer and Runtime Model
OpenCROW now resolves installs from the machine-readable catalog at scripts/tool_catalog.json.
Behavior:
install.shis the interactive public entrypoint. It bootstraps a small Python installer venv and opens the full-screen Textual installer.install_headless.shis the non-interactive install entrypoint and uses the same flag-driven selection model as the old shell installer.update_headless.shis the non-interactive additive update entrypoint and merges the requested selection into the saved managed state.- The installer prints homepage and license links for every selected tool before it starts.
- Proprietary packages marked in the catalog require an explicit terms acceptance prompt during interactive installs.
- Install state is saved under
~/.local/share/opencrow/install-state.json. - By default, re-running the installer merges the new selection into the saved managed set and installs only the missing delta.
- Use
--replace-selectionwhen you want the installer to save exactly the current selection instead of performing an additive update.
Interactive modes:
- fresh installs:
fast installorpersonalized - existing managed installs:
updateormodify update: add new toolboxes to the current managed installmodify: replace the saved managed selection interactively
Current profiles:
headless: installs the CLI and automation-friendly tool setfull: includes the headless set plus GUI/heavier tools such as OWASP ZAP, Autopsy, StegSolve, OpenStego, and theHarvester
Agent Execution Surface
The current runtime surfaces below are execution backends for agents. The toolboxes matter because they give the orchestration layer deterministic capabilities to call.
Current toolbox coverage:
opencrow-crypto-toolbox:z3-solver,fpylll,pycryptodome,hashcat,john,factordb-pycliopencrow-pwn-toolbox:pwntools,checksec,gdb,gdbserver,patchelf,qemu-user,qemu-user-static,nasm,gcc,pwninit,pwndbg,seccomp-tools,one_gadgetopencrow-reversing-toolbox:angr,claripy,capstone,unicorn,keystone-engine,ropper,ROPGadget,r2pipe,lief,qiling,frida-tools,ghidra,radare2,strace,ltrace,binwalk,binutilsopencrow-network-toolbox:scapy,tshark,tcpdump,netcat-openbsd,socat,nmapopencrow-web-toolbox:sqlmap,gobuster,ffuf,dirb,wfuzzopencrow-forensics-toolbox:volatility3,exiftool,foremostopencrow-stego-toolbox:steghide,zstegopencrow-osint-toolbox:shodan,sherlock,waybackpyopencrow-utility-toolbox:jq,yq,xxd,tmux,screen,ripgrep,fzf
Wave 1 MCP servers:
opencrow-stego-mcpopencrow-forensics-mcpopencrow-osint-mcpopencrow-web-mcp
Wave 2 MCP servers:
opencrow-crypto-mcpopencrow-pwn-mcpopencrow-reversing-mcp
Wave 3 MCP servers:
opencrow-network-mcpopencrow-utility-mcp
I/O MCP servers:
opencrow-netcat-mcpopencrow-ssh-mcpopencrow-minecraft-mcp
Coordination MCP servers:
opencrow-constellation-mcp
Tracked as manual full-profile steps today:
Burp Suite Community
Attribution
OpenCROW installs and orchestrates third-party software, but it does not claim ownership of those tools.
- Each third-party package remains under its own upstream license and terms.
- OpenCROW does not relicense, modify, or redistribute those tools as part of this project.
- The installer only downloads packages from their official or explicitly configured upstream sources.
- Homepage and license links for selected tools are shown during installation so the operator can review them before proceeding.
The current OpenCROW toolbox stack credits the upstream projects it installs or manages through the catalog, including:
z3-solver,fpylll,PyCryptodome,hashcat,John the Ripper,factordb-pyclipwntools,checksec,gdb,gdbserver,patchelf,qemu-user,qemu-user-static,nasm,gcc,pwninit,pwndbg,seccomp-tools,one_gadgetangr,claripy,capstone,unicorn,keystone-engine,ropper,ROPGadget,r2pipe,lief,qiling,frida-tools,ghidra,radare2,strace,ltrace,binwalk,binutilsscapy,tshark,tcpdump,netcat-openbsd,socat,nmapsqlmap,gobuster,ffuf,dirb,wfuzz,OWASP ZAP,OpenStego,StegSolve,Autopsy,theHarvestervolatility3,exiftool,foremost,steghide,zsteg,shodan,sherlock,waybackpyjq,yq,xxd,tmux,screen,ripgrep,fzf
Agent Skills and MCP Surface
Repo-managed agent skills synced into ~/.codex/skills:
opencrow-crypto-toolboxopencrow-pwn-toolboxopencrow-reversing-toolboxopencrow-network-toolboxopencrow-web-toolboxopencrow-forensics-toolboxopencrow-stego-toolboxopencrow-osint-toolboxopencrow-utility-toolboxminecraft-async(OpenCROW I/O - Minecraft Async)netcat-async(OpenCROW I/O - Netcat Async)sagemath(OpenCROW Runner - SageMath)ssh-async(OpenCROW I/O - SSH Async)
OpenCROW-managed MCP server entries are also synced into ~/.codex/config.toml for the installed opencrow-*-mcp commands, with startup_timeout_sec = 20 on each managed entry.
High-level skill roles:
opencrow-crypto-toolbox: Python-first crypto solving, cracking, and quick factoring checksopencrow-pwn-toolbox: exploit development, ELF/runtime triage, and libc-oriented helpersopencrow-reversing-toolbox: binary analysis, emulation, tracing, and instrumentationopencrow-network-toolbox: packet work, PCAP analysis, and network/service triageopencrow-web-toolbox: endpoint discovery, fuzzing, and automated SQLi workflowsopencrow-forensics-toolbox: metadata extraction, memory analysis, and file carvingopencrow-stego-toolbox: hidden-data triage in media filesopencrow-osint-toolbox: public-source reconnaissance and archive lookupsopencrow-utility-toolbox: shell and workflow helpersminecraft-async(OpenCROW I/O - Minecraft Async): asynchronous control of a local Minecraft client for CTF tasksnetcat-async(OpenCROW I/O - Netcat Async): persistent asynchronous TCP sessionssagemath(OpenCROW Runner - SageMath): Sage-based math and cryptanalysisssh-async(OpenCROW I/O - SSH Async): persistent asynchronous SSH sessions
Installed I/O MCP commands:
opencrow-netcat-mcp: MCP bridge for the managed TCP session backendopencrow-ssh-mcp: MCP bridge for the managed SSH session backendopencrow-minecraft-mcp: MCP bridge for managed local Minecraft launch, logs, screenshots, and X11 actionsopencrow-constellation-mcp: MCP bridge for Constellation topic membership, live chat/task/broadcast traffic, corpus sync, and final artifact upload
Installed toolbox MCP commands:
opencrow-crypto-mcp: typed crypto workflows over thectfenvironment plus cracking helpersopencrow-pwn-mcp: typed exploit-development helpers for checksec, cyclic patterns, ELF patching, and one_gadgetopencrow-reversing-mcp: typed reversing workflows for disassembly, decompilation, VA-based data reads, emulation, symbolic execution, tracing, binwalk, gadget search, and Python analysisopencrow-network-mcp: typed packet, PCAP, scanning, and socket-probe workflows over the network toolboxopencrow-utility-mcp: typed workspace search, jq/yq queries, and bounded hexdump workflows over the utility toolbox
MCP Architecture
OpenCROW MCP servers are the typed execution layer underneath the orchestration framework. The toolbox, I/O, and Constellation MCP surfaces follow one shared contract:
- one stdio MCP server per toolbox
- the same contract also applies to session-oriented I/O helpers
- provider-neutral typed tools, not Codex-specific shell wrappers
- common tools on every server:
toolbox_info,toolbox_self_test,toolbox_verify,toolbox_capabilities - common resources on every server:
opencrow://<server>/server,opencrow://<server>/capabilities, andopencrow://<server>/verify-guide - common resource template on every server:
opencrow://<server>/tools/{name} - shared response envelope with
ok,summary,toolbox,operation,inputs,artifacts,observations,command,stdout,stderr,exit_code, andnext_steps - optional
execution.transcript_pathsupport for long-running workflows that should append JSONL transcript artifacts
Architecture details and contract rules live in doc/MCP_ARCHITECTURE.md.
OpenCROW Constellation Details
OpenCROW Constellation is the multi-agent coordination runtime for topic-oriented CTF work.
Shipped surfaces:
opencrow-constellation-client: installable umbrella CLI withjoin,admin, andmcpsubcommandsopencrow-constellation-mcp: stdio MCP client for joining topics, receiving live notifications, sending chat/task/broadcast messages, syncing markdown corpus snapshots, and uploading immutable final artifactsopencrow-constellation-join: joins a topic from the current workspace, materializes a local private-or-public prompt into.opencrow-constellation/, starts a markdown watcher, and launches Codexopencrow-constellation-admin: consumes a UI-issued single-use password to upgrade the current workspace agent into a master-capable topic memberconstellation.backend: Tornado backend with MongoDB persistence, GridFS final artifact storage, and Mongo change-stream-backed broker notificationsconstellation.ui: Flask + Jinja UI for topic creation, metadata editing, chat/history, master messaging, admin-password generation, and destructive topic deletion
Private prompt model:
- the repo only ships a basic public Constellation prompt template under
constellation/prompts/constellation_public.md - the real private prompt should be provided outside git through
OPENCROW_CONSTELLATION_PRIVATE_PROMPTorOPENCROW_CONSTELLATION_PRIVATE_PROMPT_FILE - generated workspace prompt artifacts are written under
.opencrow-constellation/and ignored by git
Local orchestration:
docker compose -f docker-compose.constellation.yml up --build
Key runtime env vars:
OPENCROW_CONSTELLATION_SYSTEM_TOKENOPENCROW_CONSTELLATION_MONGO_URIOPENCROW_CONSTELLATION_PRIVATE_PROMPT_FILEOPENCROW_CONSTELLATION_UI_SECRET_KEYOPENCROW_CONSTELLATION_UI_SHARED_SECRETOPENCROW_CONSTELLATION_ALLOWED_WS_ORIGINS
Install
From the repo root:
bash ./scripts/install.sh
Common non-interactive examples:
bash ./scripts/install_headless.sh --dry-run
bash ./scripts/install_headless.sh --profile headless
bash ./scripts/install_headless.sh --toolbox opencrow-crypto-toolbox --toolbox opencrow-web-toolbox --profile headless
bash ./scripts/install_headless.sh --tool one_gadget --tool zsteg
bash ./scripts/install_headless.sh --toolbox opencrow-network-toolbox --replace-selection --profile headless
bash ./scripts/update_headless.sh --toolbox opencrow-web-toolbox --profile headless
python3 ./scripts/sync_codex_mcp_config.py
bash ./scripts/sync_gemini_mcp_config.sh
opencrow-autosetup
opencrow-autosetup is the reconnaissance orchestration entrypoint. It seeds a challenge workspace with reconnaissance artifacts and then launches a nested Codex pass dedicated to the recon phase.
Generated artifacts:
HANDOFF.mdSKILL.mdRECONNAISSANCE.mdHYPOTHESIS.mdAGENTS.mdselected and written by the reconnaissance agent at the end of the pass
Behavior:
- reads
DESCRIPTION.mdwhen present and uses it as the challenge description seed - defaults to
pwnwhen no stronger category signal is found - detects common remote connection strings such as
nc,ssh, andtelnet - if the challenge is a pure remote black-box target, it tells the agent to focus reconnaissance on that connection instead of unrelated local speculation
- writes artifacts in the current directory by default, or a custom path with
--output-dir - does not attempt exploitation, flag capture, or final solve validation
- writes the operational contract, TODOs, and unresolved questions to
HANDOFF.md - makes the recon agent choose the final challenge category and write the matching category-specific
AGENTS.mdat the end of the pass - runs the nested Codex agent with
danger-full-accessplus full inherited shell environment by default - supports
--interactiveto launch the recon pass as an interactive Codex session instead ofcodex exec - supports
--disable-sandboxto launch the nested Codex run without sandboxing
Examples:
opencrow-autosetup --dry-run
opencrow-autosetup --interactive
opencrow-autosetup --category web
opencrow-autosetup --output-dir ./artifacts
opencrow-autosetup --disable-sandbox
opencrow-autosetup --ack-missing-description
Shell completion:
- bash completion is installed at
~/.local/share/bash-completion/completions/opencrow-autosetup - for the current shell session you can load it with:
source ~/.local/share/bash-completion/completions/opencrow-autosetup
Run without sandboxing:
opencrow-autosetup --disable-sandbox --ack-missing-description
opencrow-exploit
opencrow-exploit is the solve-phase orchestration entrypoint. It reads the current workspace handoff artifacts, builds a prompt for the exploitation agent, and launches Codex in the current directory.
Behavior:
- reads the current workspace documents in this order when present:
AGENTS.md,HANDOFF.md,DESCRIPTION.md,SKILL.md,RECONNAISSANCE.md,HYPOTHESIS.md - treats
AGENTS.mdas the authoritative category-specific exploit contract when it exists - treats
HANDOFF.mdas the operational contract and exploit TODO list from reconnaissance - defaults to an interactive Codex session for the exploitation pass
- supports
--full-autoto run the solve pass throughcodex exec - runs with
danger-full-accessplus full inherited shell environment by default - supports
--disable-sandboxto launch the nested Codex run without sandboxing
Examples:
opencrow-exploit
opencrow-exploit --model gpt-5.4
opencrow-exploit --full-auto
opencrow-exploit --disable-sandbox
opencrow-constellation-join
opencrow-constellation-join is the distributed-agent entrypoint for Constellation. It attaches the current workspace to a Constellation topic, writes the generated prompt to .opencrow-constellation/generated-prompt.md, starts the markdown watcher, and launches a nested Codex session in the same directory.
Examples:
opencrow-constellation-join challenge-crypto-1
opencrow-constellation-join challenge-web-2 --agent-name my-laptop
opencrow-constellation-join challenge-pwn-3 --full-auto --no-watcher
opencrow-constellation-join challenge-misc-4 --dry-run
opencrow-constellation-admin
opencrow-constellation-admin <topic> <single-use-password> upgrades the current topic member into a master-capable agent after the password is generated in the Constellation UI.
Example:
opencrow-constellation-admin challenge-web-2 s8eZ8zKQf0ExampleToken
opencrow-constellation-client
opencrow-constellation-client is the installer-facing entry for the Constellation coordination bundle. It dispatches to the existing Constellation commands so the installer can expose one orchestration surface without hiding the lower-level entrypoints.
opencrow-constellation-client join challenge-crypto-1
opencrow-constellation-client admin challenge-web-2 s8eZ8zKQf0ExampleToken
opencrow-constellation-client mcp
Verify
Verify the saved install selection:
bash ./scripts/verify.sh
Verify all catalogued tools instead of just the saved selection:
bash ./scripts/verify.sh --all-tools
Verify a different conda environment explicitly:
bash ./scripts/verify.sh --env myctf
Skill Sync
Manual sync:
bash ./scripts/sync_skills.sh
Manual removal:
bash ./scripts/remove_skills.sh
The skill sync removes the retired ctf-tools directory before copying the current OpenCROW toolbox skills.
Uninstall
Remove the currently saved OpenCROW selection:
bash ./scripts/uninstall.sh
Useful options:
bash ./scripts/uninstall.sh --dry-run
bash ./scripts/uninstall.sh --purge-apt
bash ./scripts/uninstall.sh --remove-env
bash ./scripts/uninstall.sh --all-managed
Make Targets
make install ENV=ctf
make dry-run ENV=ctf
make verify ENV=ctf
make uninstall ENV=ctf
make sync-skills
make remove-skills
make smoke ENV=ctf
Notes
- The installer still checks
condaonPATHfirst, then common locations like~/miniconda3and~/anaconda3. minecraft-asyncstill relies onpython3-xlib, which remains a base system dependency.ghidrais downloaded under~/.local/opt/ghidra.pwndbgis installed with the upstream rootless installer.- The GitHub Actions workflow remains a smoke test around syntax and dry-run behavior; it does not install the full workstation in CI.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found