复制安装命令
用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。
复制前请先查看来源、License 和安全提示。
AI-driven single-binary pentest agent with a built-in multi-engine arsenal, ready to go
用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。
复制前请先查看来源、License 和安全提示。
来源文件:README.md
AI-driven single-binary pentest agent with a built-in multi-engine arsenal, ready to go
aiscan combines LLM agents with traditional security scanning engines. Three modes: Scan (deterministic pipeline, optional AI assist), Agent (natural-language autonomous assessment), IOA (multi-agent distributed collaboration).
Use only on explicitly authorized targets. Unauthorized use is illegal.
# No LLM needed — one-line scan
aiscan scan -i 192.168.1.0/24
# With LLM — one-line agent
aiscan agent --base-url "https://api.deepseek.com" --api-key "sk-..." --model deepseek-chat \
-p "scan targets and check for high-risk vulnerabilities" -i 192.168.1.0/24
From GitHub Releases:
| Edition | Description |
|---|---|
| aiscan | Standard — scan/agent/gogo/spray/zombie/neutron/proton/arsenal |
| aiscan-full | Full — adds Web, playwright, passive recon, and katana |
| OS | Arch | Standard | Full |
|---|---|---|---|
| Linux | amd64 / arm64 | aiscan_linux_<arch>.zip | aiscan-full_linux_<arch>.zip |
| macOS | Intel / Apple Silicon | aiscan_darwin_<arch>.zip | aiscan-full_darwin_<arch>.zip |
| Windows | amd64 / arm64 | aiscan_windows_<arch>.zip | aiscan-full_windows_amd64.zip |
# Linux
curl -LO https://github.com/chainreactors/aiscan/releases/latest/download/aiscan_linux_amd64.zip
unzip aiscan_linux_amd64.zip
chmod +x aiscan && sudo mv aiscan /usr/local/bin/
# macOS Apple Silicon
curl -LO https://github.com/chainreactors/aiscan/releases/latest/download/aiscan_darwin_arm64.zip
unzip aiscan_darwin_arm64.zip
chmod +x aiscan && sudo mv aiscan /usr/local/bin/
# Windows (PowerShell)
Invoke-WebRequest "https://github.com/chainreactors/aiscan/releases/latest/download/aiscan_windows_amd64.zip" -OutFile aiscan.zip
Expand-Archive .\aiscan.zip -DestinationPath .
.\aiscan.exe --version
The Web console is included in aiscan-full. It starts the browser UI and an
embedded local agent by default. Open http://127.0.0.1:8080 and enter the
access key printed at startup:
aiscan-full web
To listen on the network with a fixed access key:
aiscan-full web --addr 0.0.0.0:8080 --token change-me
Run the Web console as a hub without an embedded agent, then connect agents from this or other hosts:
# Hub
aiscan-full web --addr 0.0.0.0:8080 --token change-me --no-agent
# Remote node
aiscan agent --server-url http://change-me@server.example:8080 --node-name worker-01
The Web console stores sessions, scans, assets, findings, and configuration in
aiscan-web.db by default. Use --db <path> to select another SQLite file.
git clone https://github.com/chainreactors/aiscan.git && cd aiscan
make # standard edition
make runner # tag-free remote tool runner
make full # frontend + full edition
The standalone agent executable is no longer a maintained build or release
target. Reference wiring remains in examples/agent and can be run manually
with go run ./examples/agent --help. make full requires Node.js/npm and a
working CGO toolchain; it builds the frontend first so the latest web/static
assets are embedded into the binary. The native record tool is not included
in the default full build; SDK and tool developers can build it explicitly with
make record, as described in docs/record.md.
make web WEB_ADDR=127.0.0.1:18081 WEB_TOKEN=local-dev # full build + Web UI
On Windows amd64, make and make full use the bundled static RE2 backend
and statically link the MinGW runtime, producing a single executable without
RE2, Abseil, libstdc++, libgcc, or winpthread DLLs.
Scanners
Browser & Recon (full edition)
Optional SDK tools
Utilities
aiscan scan -i 192.168.1.0/24 # quick scan
aiscan scan -i 192.168.1.0/24 --mode full # full scan
aiscan scan -i http://target.example --verify=high --sniper # AI-enhanced
aiscan scan -i http://target.example --mode full --deep --report # full + deep + report
# One-shot task
aiscan agent -p "scan and find web vulnerabilities" -i 192.168.1.0/24
# With goal evaluation
aiscan agent -p "full scan" -i http://target.example -e "find all open ports with service fingerprints"
# Interactive REPL
aiscan agent
# Start IOA server
aiscan ioa serve --ioa-url http://0.0.0.0:8765
# Start IOA worker
aiscan agent --ioa-url http://127.0.0.1:8765 --space pentest-project \
-p "scan assigned targets and report findings"
# Environment variable
export OPENAI_API_KEY="sk-..."
# CLI arguments
aiscan agent --provider openai --base-url https://api.deepseek.com/v1 --api-key sk-... --model deepseek-chat
Config file aiscan.yaml:
llm:
provider: openai
api_key: sk-...
model: gpt-4o
context_window: 128000 # Set explicitly for custom model IDs
max_tokens: 16384 # Maximum output per response
context_window is a literal token count: use 128000, not 128K. Values below 8192 are accepted, but the Web UI warns that they may be too small. The request output limit is dynamically clamped to the remaining context: min(max_tokens, context_window - current_context - 4096). If no output space remains, AIScan returns a clear error instead of sending a one-token request. Automatic compaction starts as the context approaches the configured window.
| Doc | Description |
|---|---|
| Scan Mode | Pipeline, AI enhancements, output formats |
| Agent Mode | Toolset, Goal Evaluation, REPL |
| IOA | Multi-agent architecture, Space/Node/Message model |
| Record Tool | Desktop/window capture, platform support, native builds |
| Reference | Configuration, providers, flags, scanner usage, FAQ |
| v1.0.0 Guide | Stable API baseline, removed pre-v1 interfaces, release profiles |
| Changelog | Version history |
git checkout -b feature/xxx)git commit -m 'feat: add xxx')git push origin feature/xxx)This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
name: ioa
description: Use this skill when coordinating with other agents through IOA shared message spaces — the ioa pseudo-command (space/send/read subcommands), message envelope, and protocol skills (checkpoint, handoff, swarm, team).
internal: trueIOA provides shared message spaces for agent coordination through a single pseudo-command: ioa with space, send, and read subcommands.
Each aiscan instance binds to one space. After joining, all send/read operations automatically target that space — no space ID needed.
The wire protocol (message envelope, typed content formats) is defined by the chainreactors/ioa module. Its protocol skills are loaded as internal skills — read them for exact message formats:
ioa://skills/checkpoint/SKILL.md — human-in-the-loop review (content_type: "checkpoint")ioa://skills/handoff/SKILL.md — fire-and-forget delegation (content_type: "handoff")ioa://skills/swarm/SKILL.md — commander/node self-organization (content_type: "swarm")ioa://skills/team/SKILL.md — named-group broadcast (content_type: "team")The command surface is the ioa module's CLI (github.com/chainreactors/ioa/client go-flags commands), with the current space auto-injected as --space on send/read.
Join or create a space, and inspect spaces:
ioa space "case-target" "Your role" [--tag recon] Join or create a space (sets it as current)
ioa space list List available spaces
ioa space nodes Show nodes in current space
ioa space topics Show root messages (conversation starters)
After joining, the response includes member nodes (ID, name, description) and existing root messages.
Send a message to the current space:
ioa send --content '{"content": "recon complete, 3 hosts found"}' Broadcast to all
ioa send --ref-nodes <node_id> --content '{"content": "scan 10.0.0.1 for web vulns"}' Send to a specific node
ioa send --ref-messages <message_id> --content '{"content": "confirmed, SQLi"}' Reply to a message
ioa send checkpoint --kind verify --title "SQLi" --content "..." --target <url> --status confirmed
CRITICAL: The --content value must be a JSON object with a "content" key containing the message text. The swarm protocol parses "content" to route messages — any other key name (e.g. "message", "text") will be silently dropped. Additional fields ("kind", "targets", etc.) are optional metadata.
Typed protocol sends (ioa send <protocol> [flags]) are registered by the ioa module — checkpoint supports --kind, --title, --content, --target, --status. Raw sends accept --content-type, --meta, and --content-schema.
Read messages from the current space:
ioa read Messages addressed to this node
ioa read --all --limit 50 All messages in the space
ioa read --message <message_id> Context (ancestors + descendants) of a message
ioa read --message <id> --direction upstream|downstream Thread traversal
ioa read --after <message_id> Messages after a cursor (pagination)
ioa read --listen Stream new messages (SSE)
Without --all, only messages explicitly directed at your node are returned.
Loop workers do not receive peer messages automatically unless heartbeat is enabled. For situational awareness, poll intentionally with ioa read --all --limit <N> before and after long work, or use ioa read --listen for a live stream. If the worker was started with --heartbeat, the runtime periodically loads recent IOA messages into the heartbeat prompt.
The envelope carries content_type (raw text when unset, or a protocol type like checkpoint/handoff/swarm/team) plus a JSON content body. Every content body must have a "content" key with the text body — except typed protocol bodies, which follow their own schema (see the protocol skills above; each also has ioa://skills/<name>/schema.json).
reply --to <msg_id>: reference a prior message (reply, follow-up)to --node <node_id>: address a specific node. Omit to broadcast to all space members.ioa read all before starting work. A peer may have already claimed your target.When coordinating workers from a heartbeat/coordinator role:
ioa send/ioa read; react to results and dispatch follow-ups.For the full commander/node self-organization protocol (objective broadcast, squad formation, convergence), read ioa://skills/swarm/SKILL.md.
评论 (0)
暂无评论,成为第一个评论者吧!