Sycun 8e00147d06 增加手机端使用ui的体验和整体优化 (#344)
* feat: integrate the mobile UI runtime layer from the migration package

迁移包给出的移动端改造是「运行时注入」架构:mobile.css 只写 767.98px 以下的
规则,mobile-ui.js 在末位加载并包装 switchPage、注入抽屉/底部标签栏/更多面板。
模板侧只有 4 处接线(viewport-fit + interactive-widget、样式层链接、ELK/SheetJS
移动端延迟加载、交互层末位脚本),其余保持上游原样,桌面端零影响。

* feat: 移动端注入层接入 i18n,并把触控下限统一到 44px

迁移包的交互层把标签栏、抽屉、更多面板的文案全写死成中文,en-US/ru-RU 下会中英
混杂;现在所有注入节点统一挂 data-i18n,交给 i18n.js 的 applyTranslations 在语言
切换时自动重译,本层只保留中文兜底。语言项改为按桌面端下拉里真实存在的语言循环
(原来只在 zh/en 之间来回,俄语用户点不到),面板里的 API 文档/GitHub 不再抄一份
URL,改为触发桌面端既有控件;iOS 上没有全屏 API 时给出提示而不是静默无反应;
不在四个标签里的页面点亮"更多",否则三分之一的页面底部栏无任何高亮。

同时补齐 PWA manifest、api-docs 页移动端样式层,并把通知铃铛与头像按钮从 38px
提到本层自己的 --m-touch(44px) 口径。配 web/static/js/mobile-ui-i18n.test.cjs:
键集三方一致、引用键必须三语都有译文、helper 区之外不许出现裸写文案的 API。

* style: 移动端外壳改 iOS 观感,并修掉抽屉页脚错位

观感:顶栏/底栏改透出材质+发丝分隔线,图标按钮一律正圆去底框,文字按钮一律胶囊,
卡片 18、面板顶角 22,按压给 scale 反馈并在 prefers-reduced-motion 下关掉;焦点环
从 2px 硬描边换成 3px 柔光环(forced-colors 下把硬描边还回去)。材质一律用
color-mix 从主题自己的 --bg-primary/--border-color 派生,浅色暗色都跟随。

两处不是"不好看"而是真错:
- 抽屉页脚被 insertBefore 插到菜单上面,"返回顶部"出现在列表上方;
- 顶栏材质在暗色下被 style.css 的 html[data-theme="dark"] header 不透明渐变压住,
  只写 header 选择器不生效,改成同特异性后暗色才真正透出。
圆角与胶囊走 --m-r-icon/--m-r-btn 令牌(24 节那批 !important 规则读的就是它们),
不再往下补选择器与 !important 对轰。

配 scripts/mobile-shot.mjs:手机视口下抓外壳图,--why 用 CDP 匹配样式表回答
"规则写了没生效是没命中还是被谁压住",--eval 量真实计算值。

* fix: 抽屉页脚与底部固定件被 Safari 工具栏压在后面

iOS 的 100dvh 是「工具栏收起时」的最大视口高度,工具栏展开时可见高度只有
innerHeight。两个全屏抽屉写死 height:100dvh,于是页脚那一截正好落在 Safari
底栏后面;bottom:0 的底栏与贴底面板同理。现在抽屉改用 mobile-ui.js 每次 resize
重写的 --m-app-height,贴底固定件按 max(0px, 100dvh - 可见高度) 抬升;不支持 dvh
或桌面端抬升量恒为 0,实测默认态底栏/抽屉位置零位移。

* fix: 去掉底部标签栏里重复的「更多」入口

顶栏的 ··· 与标签栏的「更多」打开的是同一个面板。按一个入口一份实现收掉底部那枚,
标签栏只留四个页面跳转;随之清掉 more2 图标、mobile.tabMore 键与门禁里的点击断言。
落点在四个标签之外的页面不再高亮任何标签——没有「更多」可点了。

* fix: 清掉另外两处重复入口,并把同类视口缺陷扫干净

顺着「底部更多与顶栏 ··· 重复」这条线扫了一遍,还有两处同类:
- 面板里的「退出登录」与头像菜单里的退出是同一个动作两个入口,头像菜单是桌面端
  一贯的位置,去掉面板那枚;连带删掉只有它能触发的 m-danger 样式与 logout 图标。
- 抽屉页脚的「返回顶部」与面板里的返回顶部是同一个动作两个入口,且抽屉是导航容器,
  动作按钮不该住在里面;去掉整个页脚(那句"移动端导航"文案也没有信息量)。

同类视口缺陷两处:
- #m-toast 的 bottom 只算到 tabbar-h + safe,底栏按 --m-bar-bottom 抬升时提示条不抬,
  工具栏展开时会压在底栏上;实测补前后间距 16px -> 16px。
- api-docs 页容器写 min-height:100dvh,恒定比可见区高出一截,最后一行落在 Safari
  底栏后面;改成 100svh(最小视口)。

i18n 契约测试同步:header.logout / mobile.navFooter 不再被引用,mobile 命名空间 18 键。

* style: 手机端对齐 new-api 的卡片密度与 iOS 的填充式表单

仪表盘那排 KPI 在 ≤480px 被桌面样式拍成一列 116px 高的长条,手机上要滚两屏才看完
四个数字。收成两列紧凑网格(奇数张末卡通栏不留空洞),数字 26px/600 + tabular-nums
做主角,标签 12px 弱化,图标块 28px。卡片表面统一成发丝边 + 16 圆角 + 几乎看不见的
投影——桌面的双层阴影在小屏上一屏四张会散。表单改 iOS 填充式(靠底色区分字段),
聚焦只留一圈柔光环(登录框实测叠过两圈),登录卡 20 圆角 + 满宽胶囊主按钮。

KPI 按 nth-child 分的淡彩渐变是产品自己的身份,这一节不跟它抢。

* fix: 补生产侧俄语、修掉白底白字的提示条,并把逐按钮门禁跑到 PASS

用户报的两件事:
- 面板里「切换语言」只在中英之间跳 —— 不是逻辑问题,是 ~/csai-生产版 缺俄语资产
  (模板没有 ru-RU 选项、i18n/ 只有两个 json、i18n.js 是不认 ru 的旧版)。补齐后
  真手指连点验通 中→英→俄→中,且该行文字自身跟着换。
- 点面板按钮时屏幕中间冒出一块白的 —— 是我自己造成的:25.6 把提示条改成浅色材质,
  字色还是基底的 #fff,等于白底白字。回到深色 HUD 胶囊,只留一层投影。

逐按钮门禁(需要登录态,本轮首次跑通全量 34 个界面 = 31 页 + 抽屉/面板/会话抽屉展开态):
- 硬缺陷 covered/offscreen/zero/pointer-events 全 0;11 条外壳真手指点击全过;
- 小于 44px 从 79 降到 3,残留是桌面密集表格里的控件,钉进基线只降不升;
- 修掉的真缺陷:子菜单项 42px(本层自己漏的下限)、.ai-channel-manager 的
  overflow:hidden 把 4 个通道选择按钮裁到滚不进来、会话抽屉里搜索框 42/分组按钮 24 宽/
  项目行 38/折叠头 30、工具条里 <a onclick> 只有 21px 高(这些链接既没 href 也没
  onclick 属性可依赖,判据要放宽到 <a>);复选框口径统一到 24.11 一处并放大到 30px。
- 门禁自己的两个错也修了:scrollIntoView 在「外层 hidden + 内层 auto」的嵌套里根本不滚,
   造成 59 个 offscreen 假红,改成逐层滚可滚祖先模拟手指;touch+mouse 双发会让一次点击
   变成两次(抽屉开了又关),只发 touch。
- 退出码口径写死:够不到/遮挡/零尺寸/pointer-events 与自家外壳必须 0,桌面遗留小命中区
   走基线;基线被压低时注入探针验红(RATCHET FAIL ×2)后撤销复验绿。

* style: 手机端玻璃质感升级,并补上对话上传的安卓适配

观感目标从"iOS 化的平面灰底"升到玻璃质感。平底上做半透明无物可透,玻璃读不出来,
所以先造画布再上材质(mobile.css 第 28 节):
- .container 铺环境光(浅色=近白底+右上 accent/左下紫柔光,暗色=深底+更亮柔光),
  .content-area / .chat-messages 交出实心底色,半透明表面从此有色可透;
- 模糊只给小面积/瞬时件:顶栏、底栏、底部面板、抽屉、登录卡、弹窗;常驻卡片
  只做半透明+发丝边+顶缘高光,不挂模糊——固定在滚动内容上的大面积模糊是掉帧主因
  (25 节实测口径不变);浅深色全用 color-mix 从主题令牌派生,只有顶缘高光按主题
  换向;prefers-reduced-transparency 与不支持模糊的环境退回实心。
- index.html 的 mobile.css 版本号递增,防 iPhone Safari 吃旧缓存。

安卓适配:对话上传的 accept="*" 不是合法 MIME 通配(各浏览器/WebView 解析不一致),
改为 "*/*";mobile-tap-audit.mjs 新增 --ua=iphone|android,同一套门禁可换安卓 UA 复跑
(壳层按视口宽度判定、与 UA 无关,换 UA 是给"安卓浏览器下同样合格"留可复现证据)。

验证(都在生产版文件夹跑):iPhone/Android 双 UA 端到端上传(按钮 44px → 触达
选择器 → POST /api/chat-uploads 200 落盘 → 附件条渲染)PASS;双 UA 全量门禁各 34 页
PASS(硬缺陷 0、点击失败 0、44px 基线无回潮)。
2026-10-08 10:44:42 +08:00
2026-07-06 16:20:29 +08:00
2025-12-20 18:13:32 +08:00
2026-03-27 19:39:49 +08:00
2026-07-16 13:42:50 +08:00
2026-04-24 19:56:09 +08:00
2026-07-29 11:43:53 +08:00
2026-08-18 20:52:02 +08:00
2026-10-05 15:11:57 +08:00
2026-08-18 20:41:19 +08:00
2026-03-13 00:11:48 +08:00
2026-07-16 13:01:04 +08:00
2026-07-07 14:06:29 +08:00
2026-07-21 16:50:51 +08:00

CyberStrikeAI Logo

CyberStrikeAI

中文 | English

The system of action for AI-native cybersecurity—where intent becomes governed execution, evidence becomes operational memory, and every operation improves the next.

CyberStrikeAI connects planning, execution, human oversight, evidence, and replay in one auditable workspace. Built in Go, it combines Eino-powered agents, MCP-native tools, RAG knowledge, visual workflows, and attack-chain modeling and analysis for authorized security operations.

Start here: Quick start · Documentation · Security hardening

Important

Use CyberStrikeAI only on systems you own or are explicitly authorized to test. For shared or production environments, review the security model and hardening guide before enabling high-risk tools, WebShell, or C2 capabilities.

Interface & Integration Preview

System Dashboard Overview

Light Mode
System Dashboard (Light)
Dark Mode
System Dashboard (Dark)

The dashboard provides a comprehensive overview of system runtime status, security vulnerabilities, tool usage, and knowledge base, helping users quickly understand the platform's core features and current state.

More interface screenshots

Core Features Overview

Web Console
Web Console
Task Management
Task Management
Vulnerability Management
Vulnerability Management
WebShell Management
WebShell Management
MCP Management
MCP management
Knowledge Base
Knowledge Base
Skills Management
Skills Management
Agent Management
Agent Management
Role Management
Role Management
System Settings
System settings
MCP stdio Mode
MCP stdio mode
Burp Suite Plugin
Burp Suite plugin

Highlights

Agents and orchestration

  • 🤖 Agentic execution translates natural-language intent into governed, auditable security actions.
  • 🧩 Eino orchestration supports single-agent execution plus Deep, Plan-Execute, and Supervisor multi-agent modes.
  • 🔀 Graph workflows combine Agents, tools, conditions, approvals, and outputs into reusable flows.
  • 🎭 Role-based testing provides focused prompts and tool policies for common security scenarios.

Tools and knowledge

  • 🧰 Security tools include 100+ curated YAML recipes with custom extensions and role-scoped access.
  • 🔌 MCP integration supports HTTP, stdio, SSE, external federation, and dynamic tool discovery.
  • ⏱️ Resilient tool execution runs blocking MCP/tool calls in workers with bounded agent waits, resumable execution_id polling, cancellation, per-server circuit breakers, concurrency limits, and unified output caps.
  • 🎯 Agent Skills follow the standard Skill layout and support progressive, on-demand loading.
  • 📚 Knowledge base combines query rewriting, vector retrieval, reranking, and result post-processing.
  • 🖼️ Vision analysis uses a separate vision model for screenshots, captchas, and UI while retaining text summaries only.

Governance and audit

  • 🧑‍⚖️ Human in the loop provides approval modes, tool allowlists, audit-agent review, and traceable decisions.
  • 🛡️ Call blocking under Security adds configurable regex checks before MCP execution, reminder templates, and dry runs, with government-domain protection enabled by default. See Tool call blocking.
  • 🔐 Platform RBAC supports multiple users, system and custom roles, scoped permissions, ownership, and explicit assignments.
  • 🔒 Security and audit provide authenticated access, audit logs, SQLite persistence, and operational evidence retention.
  • 📄 Result governance stores the same capped tool result seen by the agent, protects resume paths from oversized historical output, and adds UI safeguards for large detail views. See Tool Execution Governance.

Security operations

  • 📁 Conversation management provides pinning, renaming, and batch organization.
  • 📂 Projects and attack chains connect cross-session facts, risk scoring, graph views, and step-by-step replay.
  • 🗂️ Asset management normalizes and deduplicates domains, IP addresses, ports, and services; supports XLSX/CSV import and export, advanced filters and saved views, ownership and business metadata, cross-page bulk maintenance, and duplicate merging; and tracks scan coverage, linked vulnerabilities, and risk state. See the Asset Management guide.
  • 🛡️ Vulnerability management provides severity classification, lifecycle tracking, filtering, and statistics.
  • 📋 Batch tasks provide queued execution, editing, status tracking, and retained results.
  • 📱 Chatbots connect Personal WeChat, WeCom, DingTalk, Lark, Telegram, Slack, Discord, and QQ Bot.

Authorized security operations

  • 🐚 WebShell management provides connection management, a virtual terminal, file operations, and AI-assisted workflows.
  • 📡 Built-in C2 provides listeners, encrypted beacons, sessions, task queues, payload helpers, and live events.

WebShell, C2, and other high-risk capabilities are for systems you own or are explicitly authorized to test. See the security model and hardening guide.

Plugins

CyberStrikeAI includes optional integrations under plugins/.

  • Burp Suite extension: plugins/burp-suite/cyberstrikeai-burp-extension/
    Build output: plugins/burp-suite/cyberstrikeai-burp-extension/dist/cyberstrikeai-burp-extension.jar
    Docs: plugins/burp-suite/cyberstrikeai-burp-extension/README.md
  • Browser extension (Chrome / Edge): plugins/browser-extension/cyberstrikeai-browser-extension/
    Capture Network traffic in DevTools and send it to CyberStrikeAI for AI-assisted security testing—aligned with the Burp plugin.
    Install: chrome://extensions/ → Load unpacked → F12 → CyberStrikeAI tab
    Package output: plugins/browser-extension/cyberstrikeai-browser-extension/dist/cyberstrikeai-browser-extension.zip
    Docs: plugins/browser-extension/cyberstrikeai-browser-extension/README.md / README.zh-CN.md

Tool Overview

CyberStrikeAI ships with 100+ curated tools covering the whole kill chain:

View the complete tool categories
  • Network Scanners – nmap, masscan, rustscan, arp-scan, nbtscan
  • Web & App Scanners – sqlmap, nikto, dirb, gobuster, feroxbuster, ffuf, httpx
  • Vulnerability Scanners – nuclei, wpscan, wafw00f, dalfox, xsser
  • Subdomain Enumeration – subfinder, amass, findomain, dnsenum, fierce
  • Network Space Search Engines – fofa_search, zoomeye_search, quake_search, shodan_search
  • API Security – graphql-scanner, arjun, api-fuzzer, api-schema-analyzer
  • Container Security – trivy, clair, docker-bench-security, kube-bench, kube-hunter
  • Cloud Security – prowler, scout-suite, cloudmapper, pacu, terrascan, checkov
  • Binary Analysis – gdb, radare2, ghidra, objdump, strings, binwalk
  • Exploitation – metasploit, msfvenom, pwntools, ropper, ropgadget
  • Password Cracking – hashcat, john, hashpump
  • Forensics – volatility, volatility3, foremost, steghide, exiftool
  • Post-Exploitation – linpeas, winpeas, mimikatz, bloodhound, impacket, responder
  • CTF Utilities – stegsolve, zsteg, hash-identifier, fcrackzip, pdfcrack, cyberchef
  • System Helpers – exec, create-file, delete-file, list-files, modify-file

See tools/README_EN.md for tool definitions, customization, and usage notes.

Basic Usage

Quick Start (One-Command Deployment)

Prerequisites:

One-Command Deployment:

git clone https://github.com/Ed1s0nZ/CyberStrikeAI.git
cd CyberStrikeAI
chmod +x run.sh && ./run.sh

The run.sh script will automatically:

  • ✅ Check and validate Go & Python environments
  • ✅ Create Python virtual environment
  • ✅ Install Python dependencies
  • ✅ Download Go dependencies
  • ✅ Build the project
  • ✅ Start the server

Verify the startup:

  1. Confirm the terminal displays ● ONLINE followed by the actual Web UI URL.
  2. Open that URL; the default HTTPS mode uses a local self-signed certificate, so accept the browser warning once.
  3. On a new installation, store the one-time admin password shown under ADMIN SETUP REQUIRED, sign in, and change it immediately.

Networking defaults: run.sh starts the server with --https and the repo config.yaml (local self-signed TLS; better for many concurrent streams). Use ./run.sh --http for plain HTTP. In production, set server.tls_cert_path / server.tls_key_path in config.yaml (see comments there). For manual runs, add --https or CYBERSTRIKE_HTTPS=1; if -config is wrong, the binary prints a short usage hint on stderr.

First-Time Configuration:

  1. Configure AI channels (required before first use)

    • After launch, open https://127.0.0.1:8080/ (or https://localhost:8080/; replace 8080 with server.port in config.yaml) and accept the self-signed certificate warning once. If you used ./run.sh --http, use http:// instead.
    • Go to System Settings → Basic Settings → AI Channel Configuration, add or edit a channel, then fill in provider, Base URL, API key, model, and token limits. Click Save changes. The left channel list supports setting a default, copy, delete, and bulk probe.
      ai:
        default_channel: openai-main
        channels:
          openai-main:
            name: OpenAI Main
            provider: openai_compatible
            api_key: "${OPENAI_API_KEY}"
            base_url: "https://api.openai.com/v1"  # or https://api.deepseek.com/v1
            model: "gpt-4o"  # or deepseek-chat, qwen3-max, etc.
            max_total_tokens: 120000
            max_completion_tokens: 16384
      
    • Or edit config.yaml directly before launching. ai.default_channel is used for new conversations and tasks that do not explicitly select a channel; the chat page can also select any saved channel per session.
  2. Login - On first startup the console prints an auto-generated initial admin password; create accounts from Platform permissions → User management

  3. Install security tools (optional) - Install tools from tools/ as needed; missing tools are skipped or substituted at runtime. Common examples:

    macOS (Homebrew):

    brew install nmap masscan sqlmap nikto gobuster ffuf hydra hashcat nuclei subfinder
    

    Linux (Kali / Debian / Ubuntu):

    sudo apt update
    sudo apt install -y nmap masscan sqlmap nikto gobuster hydra hashcat john binwalk
    # On some distros, install ffuf/nuclei/subfinder via go install or upstream docs
    

    See the tools/ directory for the full list; refer to each tool's official docs for install details.

Alternative Launch Methods:

# Direct Go run (set up env yourself); add --https to match run.sh defaults
go run cmd/server/main.go --https

# Manual build
go build -o cyberstrike-ai cmd/server/main.go
./cyberstrike-ai --https

If server logs show client sent an HTTP request to an HTTPS server, a client is still using http:// on a TLS-only port—switch the URL to https://.

Note: The Python virtual environment (venv/) is automatically created and managed by run.sh. Tools that require Python (like api-fuzzer, http-framework-test, etc.) will automatically use this environment.

Upgrade and Compatibility

CyberStrikeAI one-click upgrade:

  1. (First time) enable the script: chmod +x upgrade.sh
  2. Upgrade with: ./upgrade.sh (optional flags: --tag vX.Y.Z, --no-venv, --yes). Local tools/, roles/, and skills/ are always preserved.
  3. The script will back up your config.yaml and data/, upgrade the code from GitHub Release, update config.yaml's version, then restart the server.

Recommended one-liner: chmod +x upgrade.sh && ./upgrade.sh --yes

If something goes wrong, you can restore from .upgrade-backup/ (or manually copy /data and config.yaml back) and run ./run.sh again.

Requirements / tips:

  • You need curl or wget for downloading Release packages.
  • rsync is recommended/required for the safe code sync.
  • If GitHub API rate-limits you, set export GITHUB_TOKEN="..." before running ./upgrade.sh.

⚠️ Before upgrading: review the target release notes for configuration, database, and API changes. Backups are required even for patch upgrades; a version number alone is not a compatibility guarantee.

Configuration

Use config.example.yaml as the authoritative configuration template and copy only the values required for your environment. At minimum, configure the server and one AI channel:

server:
  host: "127.0.0.1"
  port: 8080
ai:
  default_channel: openai-main
  channels:
    openai-main:
      provider: openai_compatible
      api_key: "${OPENAI_API_KEY}"
      base_url: "https://api.openai.com/v1"
      model: "your-model"

openai is a backward-compatible runtime field; maintain new model settings in ai.channels. Do not commit real credentials. Review the configuration reference, recommended profiles, and security hardening guide before exposing the service beyond localhost.

Project Layout

CyberStrikeAI/
├── cmd/                 # Server, MCP stdio entrypoints, tooling
├── internal/            # Agent, MCP core, handlers, C2 (`internal/c2`), security executor
├── web/                 # Static SPA + templates
├── tools/               # YAML tool recipes (100+ examples provided)
├── roles/               # Role configurations (12+ predefined security testing roles)
├── skills/              # Agent Skills dirs (SKILL.md + optional files; demo: cyberstrike-eino-demo)
├── agents/              # Multi-agent Markdown (orchestrator.md + sub-agent *.md)
├── docs/                # Topic docs (deployment, config, security, API, knowledge base, C2, WebShell, etc.)
├── images/              # Docs screenshots & diagrams
├── config.yaml          # Runtime configuration
├── run.sh               # Convenience launcher
└── README*.md

Basic Usage Examples

Scan open ports on 192.168.1.1
Perform a comprehensive port scan on 192.168.1.1 focusing on 80,443,22
Check if https://example.com/page?id=1 is vulnerable to SQL injection
Scan https://example.com for hidden directories and outdated software
Enumerate subdomains for example.com, then run nuclei against the results

Advanced Playbooks

Load the recon-engagement template, run amass/subfinder, then brute-force dirs on every live host.
Use external Burp-based MCP server for authenticated traffic replay, then pass findings back for graphing.
Compress the 5 MB nuclei report, summarize critical CVEs, and attach the artifact to the conversation.
Build an attack chain for the latest engagement and export the node list with severity >= high.

CyberStrikeAI has joined 404Starlink

TCH Top-Ranked Intelligent Pentest Project


Community and Support

WeCom group CyberStrikeAI WeCom group QR code

License

CyberStrikeAI is licensed under the Apache License 2.0.
See the LICENSE file for details.


⚠️ Disclaimer

This tool is for educational and authorized testing purposes only!

CyberStrikeAI is a professional security testing platform designed to assist security researchers, penetration testers, and IT professionals in conducting security assessments and vulnerability research with explicit authorization.

By using this tool, you agree to:

  • Use this tool only on systems where you have clear written authorization
  • Comply with all applicable laws, regulations, and ethical standards
  • Take full responsibility for any unauthorized use or misuse
  • Not use this tool for any illegal or malicious purposes

The developers are not responsible for any misuse! Please ensure your usage complies with local laws and regulations, and that you have obtained explicit authorization from the target system owner.

For vulnerability reporting and deployment hardening guidance, see SECURITY.md.


Need help or want to contribute? Open an issue or PR—community tooling additions are welcome!

Languages
Go 46%
JavaScript 33.7%
CSS 12.3%
HTML 6.3%
Java 0.8%
Other 0.9%