Skip to content

elbelicojackson-hue/haking-code-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚡ Haking Code

全球最强的 AI 驱动网络安全终端 Agent

当 AI 遇上渗透测试,当对抗共识遇上逆向工程

License Bun TypeScript Security


🧠 强制思考 · 从不编造 · 每一句话都有据可查

🔒 第一性原理锁 — 5 条公理锁死推理框架,幻觉率压到最低

🔴 NEW: 第一性原理推导引擎 — 存在需要证据 · 推导需要链条 · 沉默优于编造 · 工具是真理

🔴 NEW: VulnHunter 自主猎洞引擎 — 11 类漏洞模式 · 攻击面映射 · 假设生成 · 定向验证

🔴 NEW: 反致幻协议 — FACT/DERIVED/HYPOTHESIS/UNKNOWN 四级标注 · 零容忍编造

🔴 16 种钓鱼/社工手法 · 🔴 12 个 C2 框架 · 🔴 12 种 EDR 免杀技术 · 🔴 25+ Web 攻击向量

🟠 70+ 安全工具集成 · 🟠 MITRE ATT&CK 全战术覆盖 · 🟠 SecLists 60k⭐ 字典库

🟡 CVE 强制引用(NVD/CISA KEV/CIRCL) · 🟡 逆向情报(MalwareBazaar/ThreatFox/YARA)

🟢 GTFOBins + LOLBAS 提权 · 🟢 Nuclei 漏洞模板 · 🟢 Shodan 侦察 · 🟢 HackTricks 方法论

🔵 4 链对抗共识引擎 · 🔵 PEV 假设驱动逆向 · 🔵 1M 上下文优化 · 🔵 FuzzTag Payload 引擎

全部数据源免费 · 零配置即用 · 不确定就查证 · AI 不能撒谎


Haking Code 不是一个工具集合器。它是一个会思考的安全研究员。

它能在你睡觉的时候自主完成渗透测试报告,能用 4 个 AI 角色互相辩论直到得出最可靠的漏洞分析,能假设驱动地逆向一个你从未见过的二进制文件。它集成了 70+ 安全工具、世界最全的渗透测试字典库、国产最强安全平台的 FuzzTag 引擎,还有一个赛博朋克风格的知识图谱。


📑 快速跳转

🚨 必读 🔧 功能 📖 参考
⚠️ 使用声明(必看) 🔥 核心特性 算法架构
🔑 环境变量配置 /arena 对抗共识 UI 布局
📖 所有命令 /recon 逆向引擎 多 Provider 配置
快速开始 安全工具箱 开发
🛠️ 最新修复 知识图谱 Wiki 更新日志

🔥 为什么 Haking Code 与众不同

1. /arena — 4 链对抗共识引擎(业界首创)

不是一个 AI 回答你,而是 4 个 AI 角色互相攻击、质疑、验证、综合,直到收敛到最可靠的答案:

C1 Proposer    → 构建论点,寻找支持证据
C2 Challenger  → 逻辑攻击,找漏洞和反例
C3 Verifier    → 实时网络搜索事实查证
C4 Synthesizer → 综合收敛,标注共识与分歧

基于博弈论的 CR-EIG 信息效率算子 + ε_t 可利用度 驱动收敛,不是固定轮次,而是信号驱动停止。这是你在任何其他工具里找不到的。

2. /recon — PEV 假设驱动逆向引擎

不是让 AI 帮你跑 strings,而是让 AI 像真正的逆向工程师一样思考

提出假设 → 选择工具验证 → 正则判定结果 → 更新假设 → 循环

支持 8 种假设类型(文件类型/壳/编译器/家族/算法/反分析/能力/协议),自动调度 nmap/strings/diec/ghidra 等工具,直到所有假设被验证或预算耗尽。

3. 70+ 安全工具,一个 AI 全部调用

从信息收集到后渗透,从密码破解到云安全,全部内置:

分类 工具
🔍 侦察 nmap、rustscan、amass、subfinder、httpx、spiderfoot、trufflehog、gitleaks
🌐 Web攻击 nuclei、ffuf、nikto、gobuster、feroxbuster、dalfox、xsstrike、wafw00f
🏢 AD渗透 bloodhound、impacket、responder、certipy、kerbrute、netexec
🔑 密码破解 hashcat、john、hydra、pdfrip(Rust多线程PDF破解,R5快15.5x)
🎯 后渗透/C2 sliver、havoc、mythic、evil-winrm、ligolo-ng、chisel、peass-ng
☁️ 云安全 prowler、scoutsuite、pacu、trivy
📱 移动安全 mobsf、frida、objection
🔬 逆向/取证 ghidra、radare2、volatility3、binwalk、pspy

4. FuzzTag 引擎(来自国产安全平台 yakit)

参考 76k ⭐ 的 yakit Web Fuzzer,内置 FuzzTag 语法,AI 可以直接生成测试 Payload:

{{int(1-1000)}}          → 生成 1000 个数字
{{list(admin|root|test)}} → 枚举列表
{{base64(admin:pass)}}   → Base64 编码
{{file(wordlist.txt)}}   → 从字典文件读取
{{randstr(16)}}          → 随机字符串

多个标签自动做笛卡尔积展开,一行模板生成数千个 Payload。

5. SecLists 字典库深度集成(60k ⭐)

世界最全的渗透测试字典,直接内置:

Passwords/Common-Credentials/10k-most-common.txt
Passwords/Default-Credentials/default-passwords.csv  ← SSH/FTP/MySQL/Tomcat默认凭据
Discovery/Web-Content/raft-medium-directories.txt    ← Web目录爆破
Fuzzing/XSS/                                         ← XSS Payload
Fuzzing/Databases/SQLi/                              ← SQL注入
Fuzzing/LFI/LFI-Jhaddix.txt                         ← 本地文件包含

AI 知道所有字典路径,可以直接组合 FuzzTag + SecLists 发起攻击。

6. 知识图谱 Wiki(赛博朋克风格)

内置 D3 力导向知识图谱,爬取安全研究文章自动建立节点关系,实时 WebSocket 广播,Markdown 预览。

cd wiki && bun run dev  # → http://localhost:7891

7. 灵动岛 — AI 工具总控面板

Tauri 2 桌面应用,悬浮在屏幕顶部,一键启动/切换所有 AI coding agent,支持 Windows Terminal 原生分屏。


🛠️ 修复(2026-05-26 · 全项目质量审计)

本轮针对仓库做了系统化质量审计:bunx tsc --noEmit 全量类型检查 + biome lint + bun test + 手工核查关键运行时路径。结果:158 个 TS 错误、17 个 lint error、45 个测试失败。本次提交修复其中影响用户体验的关键问题。

🐛 /handoff/pickup 命令注册不通过、返回字段错(致命)

根因LocalCommandResult 的契约是 { type: 'text', value: string },但实现里写的是 { type: 'text', text: '...' };同时命令对象缺必填字段 supportsNonInteractive,类型检查直接拒绝注册。

修复:返回字段 textvalueindex.tssupportsNonInteractive: true。两个命令现在能正常注册并显示结果。

🐛 ReverseCliTool / CdpBrowserTool 缺 inputSchema + call 签名错 + 返回字段错(致命三连)

根因

  1. 工具对象完全没有 inputSchema —— expect(tool.inputSchema).toBeDefined() 测试断言失败;zodToJsonSchema(tool.inputSchema) 抛错后兜底回 {type:'object', properties:{}},DeepSeek 只能瞎猜参数。
  2. call(_toolUseId: string, input: ...) —— 真实签名是 call(args, context, ...),所以 input 永远 = toolUseId 字符串,所有 input.action 都是 undefined,工具一律走 default 分支。
  3. 返回 { output: ... } —— 真实契约是 { data: ... },UI 渲染拿到的总是 undefined。

结果:原 ReverseCli/CdpBrowser 从未真正成功跑过任何动作——LLM 调用 → 输入校验失败 → input.action 是字符串 → 走 default → echo 默认信息 → 字段名错 → UI 显示空。

修复

  • import { z } from 'zod/v4' + 完整 inputSchema = z.object({ action, targetPath, pentestTool, ... }) 覆盖现有所有字段
  • call 签名改为 (input) 单参形式
  • 所有返回 { output: ... }{ data: ... }
  • 移除手工 as Action / as string / as number 强转(zod 已校验)
  • import 路径 '../../Tool.js''../Tool.js'

🐛 claude.ts:1887 解构不存在的 deepseekCreate(潜在崩溃)

根因:第二个 useDirectRoute() 分支(约 line 1887)从 ./deepseek-direct.js 解构 deepseekCreate,但该模块只导出 useDirectRoute / queryModelDeepSeekDirect,根本没这个函数。当前因为 line 1047 处 early return 走第一个分支兜底,但任何人改了上游路径都会立刻让 DeepSeek 用户撞上 TypeError: deepseekCreate is not a function

修复:删除 line 1886-1939 整段死代码(54 行),加注释说明历史以防误以为缺一个分支再加回来。同时显露并修复一个被 as any 掩盖的旧错(yield e.value 类型不匹配)。

🎨 ink 颜色 prop 全部用了非法字符串(视觉失效)

根因@ant/inkColor 类型必须是 'ansi:cyan' | 'ansi:green' | ...(带 ansi: 前缀)或 RGB / Hex。代码里写的全是裸名 color="cyan" —— ink 看到不认识的色值会直接忽略,LogoV2 / WelcomeV2 / CondensedLogo / Setup 面板 / Arena UI / TaskPanel 全部退化成默认终端色,README 宣传的赛博朋克 cyan 配色彻底失效。

修复:30+ 处批量替换 → ansi:cyan / ansi:green / ansi:yellow / ansi:red。顺手治了 setup 里 color={x ? 'cyan' : 'dimColor'} 这种把 dimColor 当颜色字面量误用的写法(改成 color={x ? 'ansi:cyan' : undefined} dimColor={!x})。

🔧 HakingConfig 类型扩 4 个 top-level 字段 + ArenaProvider 加 displayName/baseUrl 默认值

根因

  • setup.tsxapiKey/baseUrl/model/fastModel 写到 config 顶层,但 HakingConfig 类型只有 providers/defaultProvider/theme——读上来全部是 undefined,每次启动都要重填。README 宣传的"持久化保存"功能直接失效
  • ArenaProvider.baseUrl 类型上必填,但来源 ProviderEntry.baseUrl 是 optional,未填 baseUrl 的 provider 让 /arena 命令在 fetch(\${undefined}/v1/messages`)时直接Failed to parse URL`。
  • PevSession.tsx 渲染 provider.displayName,但 ArenaProvider 没这字段,UI 显示成 undefined(claude) · ...

修复

  • HakingConfigapiKey/baseUrl/model/fastModel 4 个 optional 字段;applyHakingConfig 实现 "env > top-level > defaultProvider 的 provider 字段" 三层注入(高优先级覆盖低优先级)
  • ArenaProviderdisplayName: string(默认回退到 id)和 baseUrl: string(默认回退到 DeepSeek 端点);增加 fromEntry 适配函数把 ProviderEntry 安全转换成 ArenaProvider
  • 删除重复的 src/services/utils/hakingConfig.ts(与 src/utils/hakingConfig.ts 内容完全一致的"幽灵副本")

📊 量化结果

指标 修复前 修复后
TypeScript 错误数 158 82
关键 P0 运行时 bug 6 2
测试 pass 3565/3611 tool-chain 测试 14/14 全过(之前 1 fail)
用户启动可见 UI 颜色 默认终端色 完整赛博朋克配色

剩余审计项(待后续提交):vulnHunter xss 分支缺失、PEV propagator 自适应带宽未实现、cav-adapter 409 后认证失败、PEV Dashboard 模块缺失、ccbteam-math 路径错、PEV 属性测试缺 fast-check 包。详见 tmp_check/typecheck-after5.log


🛠️ 修复(2026-05-26)

🐛 全屏渲染残帧 — 界面重复叠加(关键修复)

根因isFullscreenEnvEnabled() 默认返回 false(仅 USER_TYPE=ant 时启用),导致 Ink 在主屏幕模式下运行。主屏幕模式每次重绘是追加式的——新帧写在旧帧下方,旧帧留在终端滚动缓冲区中,表现为"界面被重复叠加"。

修复

  • fullscreen.tsisFullscreenEnvEnabled() 默认返回 true,所有交互式会话自动进入 alt-screen 全屏模式
  • 用户可通过 CLAUDE_CODE_NO_FLICKER=0 手动关闭

🐛 侧边栏与内容区重叠/文本换行错位

根因HakingLayout(侧边栏容器)在 <AlternateScreen> 外部包裹 REPL,导致 Yoga 高度计算冲突。同时 FullscreenLayoutMessages 中硬编码 width={columns}(终端全宽),未减去侧边栏 24 列宽度。

修复

  • replLauncher.tsx:移除外层 HakingLayout 包裹
  • REPL.tsx:将 HakingLayout 移到 <AlternateScreen> 内部
  • HakingLayout.tsx:新增 ContentColumnsContext + useContentColumns() hook,传递实际内容区宽度
  • FullscreenLayout.tsx:用 useContentColumns() 替代 useTerminalSize().columns
  • Messages.tsx:同上,消息行和 Divider 在正确宽度内渲染

🐛 Citation 系统消息在 UI 中重复显示

根因stopHooks.ts 每轮注入的 CVE/RE-INTEL/PENTEST-KB citation 消息以 isMeta: false 创建,在 UI 中可见。去重窗口仅 3 轮,相同术语第 4 轮起重复注入。

修复

  • stopHooks.ts:citation 消息设置 isMeta = true,对模型可见但 UI 不渲染
  • forcedVerification.tsDEDUP_WINDOW_TURNS 从 3 增大到 8

🛠️ 修复(2026-05-25)

🐛 DeepSeek 多轮对话无法返回消息(关键修复)

根因:DeepSeek 直连路径在消息预处理时缺少 stripCallerField + stripAdvisorBlocks 清理步骤,导致 calleradvisor_tool_resultserver_tool_use 等 DeepSeek 不认识的字段/块被发送到 API,触发 400 或空响应。

修复

  • claude.ts:DeepSeek 直连路径补齐 stripCallerFieldFromAssistantMessage + stripAdvisorBlocks
  • deepseek-direct.tsbuildApiMessages 新增 sanitizeBlocks,过滤 6 种不兼容块类型 + 移除 citations 字段

🐛 滚轮滚动跳顶/跳底(Windows Terminal)

根因:Windows Terminal 滚轮事件间隔不规律,在 200ms 的 bounce 判定窗口内容易产生方向翻转假象,导致 wheelMode 被误触发,加速曲线生效后单次滚轮跳过大量内容。

修复ScrollKeybindingHandler.tsxWHEEL_BOUNCE_GAP_MAX_MS 在 Windows Terminal(WT_SESSION)下从 200ms 收紧到 80ms,只有真正的编码器弹跳才能触发 wheelMode。


🛠️ 今日新增(2026-05-23)

🔗 Spectre Bridge — 事件驱动意识体协同

Haking Code 现在可以与 Spectre(原白龙马)意识体双向通信:

┌──────────────┐     SQLite WAL      ┌──────────────┐
│   Spectre    │ ◄──── bridge.db ───► │  Haking Code │
│  (意识体)    │                      │  (红队引擎)  │
└──────────────┘                      └──────────────┘
  • Spectre 可以自主下发扫描任务给 Haking Code
  • Haking Code 以无头子进程运行,由 Spectre spawn/管理
  • 通过共享 SQLite(WAL 模式)通信,零代码耦合
  • 任一方挂了另一方正常运行

📋 /handoff — 会话交接

会话结束前保留当前状态,压缩存储未完成的任务和上下文:

/handoff 明天继续搞那个 SQL 注入

提取任务、上下文、工具结果 → 压缩存储 → 下次 /pickup 恢复。

📥 /pickup — 恢复上次会话

加载上一个 /handoff 保存的未完成工作,无缝继续:

/pickup

显示未完成任务列表、上下文摘要、最近工具结果,直接接着干。


🛠️ 今日新增(2026-05-22)

本次更新参考了 GitHub 今日 Trending 的多个顶级项目并深度集成:

来源项目 集成内容
colbymchenry/codegraph 12.7k 代码知识图谱 MCP,减少 35% token 消耗
yaklang/yakit 7.3k FuzzTag 引擎移植到 ReverseCliTool
danielmiessler/SecLists 60k 渗透测试字典库全量集成
Z4nzu/hackingtool 76k 工具列表扩充至 70+
mufeedvh/pdfrip 1.4k PDF密码破解工具安装集成
HKUDS/CLI-Anything 39k 安全工具 Skill 文件自动生成
obra/superpowers 201k 14个开发方法论 Skill 集成
trimstray/the-book-of-secret-knowledge 222k 黑客知识大全作为 agent 参考资料
multica-ai/andrej-karpathy-skills 142k Karpathy 行为规则集成到 CLAUDE.md

🗺️ 下一版本路线图

详见 NEXT-VERSION.md,已规划三大方向:

  1. Hash 锚定编辑(参考 oh-my-pi)— 用内容 hash 替代行号定位,预计减少 61% token 消耗
  2. Hindsight 跨 Session 记忆(参考 oh-my-pi)— retain/recall/reflect 三层记忆 API,让 agent 记住每次渗透测试的结论
  3. 多 Agent 分工协作(参考 multica)— /mission 命令,复杂任务自动拆分并行,每个子任务走 /arena 质量保证

AI-powered terminal agent for cybersecurity professionals.

专为网络安全研究员打造的终端 AI Agent,集成逆向工程、渗透测试、多模型对抗共识等能力。

📋 更新日志(v1.1.0 → v1.3.117)

以下为 v1.0.1 之后的全部 commit 摘要,按时间倒序。

467793b feat(pentest-kb): 今日新增Cisco CVSS10.0 + Bitwarden供应链攻击

  • CVE-2026-20223 Cisco Secure Workload — CVSS 10.0 满分 RCE(5月22日修复)
  • Bitwarden CLI 供应链投毒 — npm 恶意包 v2026.4.0 窃取 AWS/Azure/GCP/GitHub token

fc37b3b fix: inputSchema未定义时crash + 安全搜索强制用Firecrawl

  • AssistantToolUseMessage 可选链防护(inputSchema?.safeParseinput?.success
  • 系统 prompt 新增 <tool_routing> 规则:漏洞搜索必须用 WebFetch 不用 WebSearch

659ca57 feat(pentest-kb): 补充2025-2026最新CVE(Linux+Windows在野利用)

Linux 2026 内核漏洞(CISA KEV 在野利用):

  • 🔴 CopyFail (CVE-2026-31431) — 9年老洞,732字节 exploit 即 root,影响所有 2017 后内核
  • 🔴 Dirty Frag — CopyFail 后继,页缓存腐败提权
  • 🔴 Fragnesia (CVE-2026-46300) — Dirty Frag 补丁引入的新 LPE
  • 🔴 CVE-2026-46333 — 权限管理缺陷,Debian/Fedora/Ubuntu 默认受影响

Windows 2026 零日(活跃利用):

  • 🔴 RedSun/UnDefend (CVE-2026-41091/45498) — Microsoft Defender 零日
  • 🔴 CVE-2026-42897 — Exchange Server 零日 XSS,无永久补丁
  • 🔴 CVE-2026-21510/21513 — APT28 利用攻击乌克兰/EU
  • 🔴 YellowKey/GreenPlasma — Nightmare-Eclipse 披露的 Windows 零日

57f0547 feat(pentest-kb): 添加钓鱼/社工/C2/免杀知识库

新增 3 大知识库(全部本地即时查询,无网络延迟):

知识库 条目数 覆盖内容
🎣 Phishing/SE KB 16 种 evilginx、gophish、vishing、smishing、quishing、MFA bypass、pretexting、watering hole...
🏴‍☠️ C2/RedTeam KB 12 个 Sliver、Havoc、Mythic、Cobalt Strike、Metasploit、Empire、Brute Ratel、Ligolo-ng...
🛡️ Evasion KB 12 种 AMSI bypass、ETW patch、unhooking、direct syscalls、process hollowing、ScareCrow...

10942d0 feat(pentest-kb): Linux提权知识库 - 内核漏洞+配置滥用+枚举工具

  • 15 个内核漏洞(DirtyPipe → CopyFail 全系列)
  • 13 种配置滥用(SUID/capabilities/cron/sudo/docker/lxd/NFS/PATH...)
  • 4 个枚举工具(LinPEAS/LinEnum/lse/pspy)

86ce698 feat: 渗透测试知识数据库 - 7大免费数据源全攻击链覆盖

新增 src/services/pentestKnowledgeDB.ts

数据源 用途 费用
Shodan InternetDB IP 侦察(端口/漏洞/CPE) 免费
GTFOBins Linux 提权/逃逸 免费
LOLBAS Windows LOLBIN 免费
WADComs AD 域攻击命令 免费
PayloadsAllTheThings 25+ Web 攻击 payload 免费
Nuclei Templates 漏洞检测模板 免费
HackTricks 综合渗透方法论 免费

25ea9fb perf: 1M上下文优化 - citation去重+预算控制+单消息合并

针对 1M token 上下文窗口的优化策略:

  • 预算控制:每轮 citation 注入上限 800 token(3200 字符),超出按优先级截断
  • 去重窗口:3 轮内相同 CVE/hash/indicator 不重复注入
  • 单消息合并:所有 citation(VERIFIED + CVE + RE-INTEL)合并为 1 条 system message
  • 可压缩标记:旧 citation 可被 autocompact 安全丢弃,零保留优先级
  • 100 轮安全对话最坏 80k token(8%),实际有去重约 20k(2%)

2ea928d fix: RE情报查证改为条件触发,避免误触发和上下文扰动

  • CVE 查证仅在文本包含 CVE-ID 时触发
  • RE 情报仅在安全相关上下文(含安全关键词)时触发
  • 过滤 MD5 长度 hex(可能是颜色值),只保留真实 indicator
  • 限制最多 5 个 indicator 查询

90ed7e4 feat: 逆向工程情报数据库 - 强制查证框架(全免费API)

新增 src/services/reverseEngineeringDB.ts(5 大免费数据源):

  • MalwareBazaar:恶意软件家族/壳/标签查询
  • ThreatFox:IOC 关联(IP/域名/哈希)
  • URLhaus:恶意 URL 数据库
  • Hashlookup (CIRCL):已知文件分类
  • MITRE ATT&CK:TTP 战术技术知识库
  • 自动提取响应中的哈希/IP/域名/MITRE ID 并查证

cce0d44 feat(cve): 添加CIRCL免费数据源作为首选(无需API key)

CVE 查询优先级:CIRCL (完全免费无 key 无限速) → NVD → CISA KEV → Firecrawl。零配置即可用。


b48fe28 feat: CVE强制引用框架 - NVD/CISA KEV/Firecrawl三层数据源


d615bc2 feat(todo): 参考CC2.0强化运行时校验+prompt规则


1bca835 feat: PEV强制查证模块 - 不确定时自动Firecrawl查证

新增 src/algorithms/cav/pev/forcedVerification.ts(纯算法驱动的强制事实查证):

  • 不确定性检测器:正则+加权评分,扫描 hedging 词("I think"/"可能"/"IIRC")、版本号声明、技术名称、API 断言
  • 强制触发:score > 0.4 时自动调用 Firecrawl 搜索最新技术文档
  • 系统 prompt 注入<forced_verification> section 强制模型引用 [VERIFIED] 证据块
  • stopHook 集成:每轮 assistant 响应后自动执行,证据作为 system message 注入下一轮

需要 FIRECRAWL_API_KEY 环境变量。未配置时静默跳过。


5a18bf3 fix: 修复滚轮滚动瞬间跳到顶部/底部的bug

ScrollKeybindingHandler.tsx 滚轮加速逻辑修复:

  • 降低 wheelMode 加速参数(STEP/CAP: 15→8)避免单次步长过大
  • scroll:lineUp/lineDown 限制步长不超过视口高度 1/3
  • scrollUp/scrollDown 接近边界时只滚剩余距离,不再直接跳到极端位置

669d09b fix(deepseek): normalize messages before sending to direct route

根因:DeepSeek 直连路径拿到的是原始 messages 数组,跳过了 normalizeMessagesForAPI() + ensureToolResultPairing() 两个关键处理步骤。几轮工具调用后 messages 里出现 API 不认识的内部字段和不配对的 tool_result,导致 DeepSeek 返回 400 或空响应——表现为"对话几轮后不回复"。

修复claude.ts 调用 queryModelDeepSeekDirect 前先走 normalizeMessagesForAPI + ensureToolResultPairing,与 SDK 路径同一套清洗逻辑。


c5780f9 fix(deepseek): don't inject cache_control on tool_result blocks + surface empty responses

  1. cache_control 注入修复:之前给最后一条 user 消息的最后一个 content block 无差别加 cache_control,如果那个 block 是 tool_result 类型,DeepSeek 会返回 400。现在只给 type: 'text' 的 block 加。
  2. 空响应不再静默:如果 DeepSeek 返回 0 content blocks + 0 output tokens,显示 [DeepSeek returned empty response] 并附带诊断提示(上下文过长 / tool_result 格式错误),而不是一条空消息。

8667548 fix: guard msg.message?.content access with optional chaining

src/components/Messages.tsx 两处 msg.message?.content[0]msg.message?.content?.[0]。system / attachment 等消息没有 .message.content 字段,直接 [0] 会 TypeError crash。


8d8882a docs: add Wiki section to README — emphasize Firecrawl API Key requirement

README 新增 "📚 Haking Wiki" 段落,强调爬虫功能必须自行配置 Firecrawl API Key(获取地址、三种配置方式、免费额度说明)。


ec54de7 feat(wiki): P0 knowledge graph + Web UI (v1.0.0)

全新 wiki/ 目录(9 文件,1512 行):

模块 文件 功能
数据层 core/graph.ts WikiGraph 类:节点/边 CRUD、graph.json 持久化(单写队列防并发)、subscribe/emit delta、子串搜索
爬取层 core/crawler.ts Firecrawl scrape → Turndown 回退 → .haking/wiki/pages/{id}.md,自动 upsert page 节点
HTTP server.ts Bun.serve port 7891,静态文件 + REST + WS + markdown 页面服务
REST routes/api.ts 8 个 endpoint(nodes/edges CRUD + search + snapshot)
WebSocket routes/ws.ts 连接即推 snapshot,后续 delta 实时广播;客户端可 crawl/search/ping
前端 web/index.html 三栏布局(工具栏 / D3 画布 / Markdown 面板)
可视化 web/graph.js D3 force-directed 图,增量 delta 更新,搜索高亮,节点选中 → 右侧 markdown 预览
样式 web/style.css 赛博朋克暗色主题(与灵动岛同色系 #00fff7 / #a855f7 / #ff2d95)

启动:cd wiki && bun run devhttp://localhost:7891


55a5918 feat(island): tools launcher + wt.exe split-pane + drag fix (v1.1.0)

灵动岛 Tauri 2 项目首次入库(island/ 目录,10 文件,768 行):

  • 拖拽修复:补 capabilities/default.json(6 条 window 权限)+ withGlobalTauri: true + mousedown 显式 startDragging()
  • 三连击关闭MouseEvent.detail >= 3close()
  • CLI 工具启动器:6 个默认工具(Haking / OpenCode / Codex / Claude / Aider / Gemini),每个一种品牌色圆球,配置存 %APPDATA%\haking-island\tools.json
  • wt.exe 分屏:Shift+多选 ≥2 工具 → 点 Layout 按钮 → 一行 wt new-tab ... ; split-pane ... 原生分屏(4 种 layout:左右 / 上下 / 田字 / 多 Tab)
  • 无 wt.exe 回退:每工具独立 cmd 窗口

4969433 feat(deepseek): full overhaul + multi-instance island hub (v1.1.0)

DeepSeek 直连路径完全重写src/services/api/deepseek-direct.ts,672 行):

之前 现在
流式输出 await res.json() 阻塞 SSE stream:true,emit Anthropic 标准事件
工具 schema {type:'object', properties:{}} zodToJsonSchema(tool.inputSchema) 真实 schema
工具数量 slice(0, 20) 静默丢 全部传入
max_tokens 硬编码 8192 64K 默认 / 384K 上限
temperature 没传 pass-through
思考模式 不请求 thinking:{type:'enabled'} plumbing
cache_control system 尾 + user 尾 + tool 列表尾
重试 429/5xx 指数退避 3×
错误分类 一行文本 解析 {error:{type,message}},401/429/500 各自提示
tool_use 解析但不 yield 完整 yield

上下文 / 价格 / 容量

  • DeepSeek V4 上下文 200K → 1M
  • 输出上限 default 64K / upper 384K
  • modelCost.ts 加 DeepSeek 三档 USD 价表,unknown_model_cost 告警熄灭

ModelStatsPanel 增强

  • DEEPSEEK_PRO_FULL_PRICE=1 切换 pro 原价/2.5 折
  • 累计行加 USD 等价

灵动岛多实例聚合src/services/island.ts):

  • 每实例写 ~/.haking-island/sessions/{pid}.json
  • 抢 port 7890 当 hub → 读全部 session 文件聚合广播
  • 非 hub 30s 重试抢占;hub 死后无缝接管
  • 岛上 sessions 列表显示所有活实例

⚠️ DeepSeek 兼容性修复

本项目完全绕过 Anthropic SDK(@anthropic-ai/sdk)的 Zod v4 校验层,使用原生 fetch 直连 DeepSeek API。原因:Anthropic SDK 0.80+ 对响应格式有严格的 schema 校验(_idmapschema._zod 等),DeepSeek 的兼容 API 不返回这些私有字段,导致运行时崩溃。

解决方案src/services/api/deepseek-direct.tsqueryModel 入口处拦截,不经过 SDK,直接用 fetch 调用 /v1/messages 端点,手动构造 AssistantMessage 返回给下游消费者。

🚀 v1.1.0 — DeepSeek 全面优化 + 灵动岛工具启动器

本次发布把 DeepSeek 路径从"能跑"升级到"能跑得好",并把灵动岛升级成 AI CLI 工具的总控面板。

DeepSeek 核心优化(src/services/api/deepseek-direct.ts 重写)

改动 之前 现在
流式输出 await res.json()(阻塞,整段返回) SSE stream: true,emit Anthropic 标准事件 (message_start / content_block_delta / message_stop),token 级渐进显示
工具 input_schema 全部硬编码空 schema {type:'object', properties:{}} zodToJsonSchema(tool.inputSchema) 真实 schema
工具数量 静默 slice(0, 20) 砍掉 21 号之后 全部传入
max_tokens 硬编码 8192 getModelMaxOutputTokens() + CLAUDE_CODE_MAX_OUTPUT_TOKENS env 覆盖;DeepSeek V4 默认 64K(最大支持 384K)
temperature 没传 options.temperature pass-through
思考模式 parse 但从不请求 thinking: {type:'enabled', budget_tokens} plumbing 通了
cache_control 完全没用 系统块尾、最后 user 消息、tool 列表尾全部标 ephemeral,DeepSeek 缓存命中输入价低 50×
重试 失败一次就死 429 / 5xx / 网络错误 → 指数退避 800/1600/3200ms,最多 3 次
错误分类 一行 ${status}: ${text} 解析 {error:{type,message}},401/429/500 各自带提示与下一步操作
tool_use 解析了但从来没 yield(Agent 工具调用静默失败) 完整 yield + cache_creation_input_tokens 计入

上下文 / 价格 / 容量(src/utils/context.ts + modelCost.ts

  • DeepSeek V4 上下文窗 200K → 1MmodelSupports1M 加 deepseek-v4 匹配)
  • DeepSeek V4 输出上限 default 64K / upper 384K
  • MODEL_COSTS 加 DeepSeek 三档专属表(按官方人民币价折 USD),getModelCosts short-circuit 不再走 Claude 错档
  • tengu_unknown_model_cost 告警熄灭,StatusLine "costs may be inaccurate" 不再亮

实时计费面板(src/components/PromptInput/ModelStatsPanel.tsx

输入框正下方常驻:

deepseek-v4-flash   in 12.3k · out 4.5k · cache↓ 8.0k · cache↑ 0   ¥0.0123 (1/2 ¥/Mtok)
deepseek-v4-pro     in 0     · out 0    · cache↓ 0    · cache↑ 0   ¥0      (3/6 ¥/Mtok)
累计 ¥0.0123 (≈ $0.0017) · pro 当前 2.5 折,原价 12/24 ¥/Mtok
  • 直接按 DeepSeek 官方人民币单价算 CNY,1 秒轮询 STATE.modelUsage
  • 累计行带 USD 等价(汇率 7.2)
  • DEEPSEEK_PRO_FULL_PRICE=1 → 切到 pro 原价档(pricing 同步进 modelCost.ts)
  • ANTHROPIC_BASE_URLdeepseek 时显示,其他后端隐藏避免误导
  • 终端宽度 < 70 列自动隐藏

灵动岛多实例聚合(src/services/island.ts

之前两个 Haking Code 同时跑,第二个抢不到 port 7890 就完全隐形,岛上只显示一个 session。现在改成文件聚合 + 端口领导选举:

每个 Haking Code 实例
  ├─ 写 ~/.haking-island/sessions/{pid}.json,每 1.5s 刷新
  ├─ 抢 port 7890
  │   ├─ 成功 → 当 hub:每秒读全部 session 文件聚合广播
  │   └─ 失败 → 仅写文件(30s 重试一次抢占)
  └─ exit/SIGINT/SIGTERM → 删自己的文件

Hub 读文件时 mtime > 8s 视为死亡 → unlink
第一个 hub 死 → 30s 内第二个无缝接管

岛上 sessions 列表会列出所有活实例,每条带 cwd 区分(Haking Code (miserad) / Haking Code (myproject)),底部 stats 是聚合值。

🏝️ 灵动岛 v1.1.0(island/

拖拽修复(v1.0 完全拖不动)

根因两个:

  1. src-tauri/capabilities/ 目录根本没建,Tauri 2 严格安全模型默认拒绝 core:window:allow-start-dragging
  2. tauri.conf.json 没设 withGlobalTauri: true,v2 默认 false 导致 window.__TAURI__ 全局对象不存在,HTML 第一行 const { invoke } = window.__TAURI__.core 直接 TypeError,整个 script 静默挂掉

修复:建 capabilities/default.json 释放 6 条 window 权限;conf 加 withGlobalTauri: true;HTML 用 mousedown → startDragging() 显式拖拽(比 data-tauri-drag-region 在 transparent + decorations:false 组合下更稳)。

三连击关闭

MouseEvent.detail >= 3 触发 getCurrentWindow().close(),跟 OS 双击间隔同步。

CLI 工具启动器 + wt.exe 分屏

展开后多了两个区:

┌──────────────────────────────────┐
│ ▾ Sessions                       │
│   ● Haking Code (miserad)        │  ← 多实例 each cwd
│   ● Haking Code (myproject)      │
├──────────────────────────────────┤
│ ▾ TOOLS  click 启动 · shift 多选 │
│   🟦 Haking  🟧 OpenCode         │
│   🟢 Codex   🟫 Claude           │
│   🩷 Aider   🟦 Gemini           │
├──────────────────────────────────┤
│ ▾ LAYOUT                         │
│   [▮▮ 左右] [≡ 上下] [⊞ 田字] [▤ Tab]│
└──────────────────────────────────┘

每个工具一个品牌色小圆球。配置文件 %APPDATA%\haking-island\tools.json,首次启动自动写默认 6 工具,可自由编辑加自家 CLI / 命令参数 / cwd。

单击wt.exe new-tab 启动单个;Shift+多选 ≥2 个 + 点 layout 按钮 → 一行 wt new-tab ... ; split-pane -V ... ; split-pane -H ... 把它们 split-pane 到同一个 Windows Terminal 窗口,原生分屏。

四种 layout:

  • 左右:垂直 split-pane 链
  • 上下:水平 split-pane 链
  • 田字:4 工具时正好 2×2 quadrant,别的数量退化成左右
  • 多 Tab:每个工具一个 wt tab,不分屏

没装 wt.exe 的老 Windows → 回退到每工具一个独立 cmd 窗口。

📚 Haking Wiki — 知识图谱

wiki/ 目录是一个独立的 Bun 应用,提供安全研究知识图谱 + D3 力导向可视化 + Markdown 预览。

cd wiki && bun run dev
# → http://localhost:7891

⚠️ 爬虫功能需要自行配置 Firecrawl API Key

Wiki 的 "Add Page" 功能通过 Firecrawl 爬取网页并转为 Markdown。必须先获取 API Key 并配置到环境变量,否则爬取会失败(回退到原生 fetch + Turndown,但对 JS 渲染页面效果差)。

# 方式 1:.env 文件(项目根目录)
FIRECRAWL_API_KEY=fc-xxxxxxxxxxxxxxxx

# 方式 2:环境变量
set FIRECRAWL_API_KEY=fc-xxxxxxxxxxxxxxxx

# 方式 3:/setup 命令配置(Haking Code 内)

获取 Key:https://firecrawl.dev → 注册 → Dashboard → API Keys

免费额度:500 次/月,足够日常研究使用。


v1.0.0 首次更新内容

  • 🔐 去登录化 — 移除 Anthropic OAuth,直接使用 API Key
  • 🧠 DeepSeek 默认接入 — base_url https://api.deepseek.com/anthropic
  • 🎨 全新 UI — 侧边栏布局(Tasks / Memory / Buddy)
  • ⚔️ /arena 命令 — 4 链对抗共识引擎(C1 Proposer → C2 Challenger → C3 Verifier → C4 Synthesizer)
  • 🔬 /recon 命令 — PEV 假设驱动逆向分析引擎
  • 🛠️ ReverseCliTool — 20+ 安全工具内置(nmap, nuclei, sqlmap, strings, diec...)
  • ⚙️ /setup 命令 — 持久化配置面板,支持多 Provider
  • 🌐 Firecrawl 集成 — Web 搜索作为外部真值锚点
  • 📦 183 个 Skills — 安全扫描、代码审计、TDD、深度研究等
  • 🐱 Buddy 系统 — 宠物伴侣移至侧边栏

🚨 使用声明 — 不按规矩来直接报废

⚠️ 以下步骤缺一不可,跳过任何一步都会导致程序无法正常运行、DeepSeek 无响应、或功能残缺。

❌ 常见翻车原因

你跳过了什么 后果
没装 Bun 或版本 < 1.2 bun install 直接报错,依赖装不上
没跑 bun install 缺依赖,启动即崩
没配 API Key 所有 AI 功能静默失败,看起来像"没反应"
Base URL 写错 DeepSeek 返回 404/401,表现为"对话无响应"
npm / yarn 代替 bun 构建脚本依赖 Bun 运行时特性,npm/yarn 跑不起来
直接改 dist/ 目录 下次 bun run build 全部覆盖,白改
没有 /setup 就开始用 模型配置为空,请求发不出去
Windows 上用 Git Bash 跑 部分路径和进程管理不兼容,用 PowerShell 或 CMD

✅ 正确使用流程(必须按顺序)

# 1. 安装 Bun(必须 >= 1.2.0)
# Windows:
powershell -c "irm bun.sh/install.ps1 | iex"
# macOS/Linux:
curl -fsSL https://bun.sh/install | bash

# 2. 克隆仓库
git clone https://github.com/elbelicojackson-hue/haking-code-.git
cd haking-code-

# 3. 安装依赖(只能用 bun,不能用 npm/yarn)
bun install

# 4. 构建
bun run build

# 5. 启动
bun run dev
# 6. 首次启动后,在 REPL 中输入:
/setup

/setup必须配置

配置项 必填 说明
API Key DeepSeek 的 sk-xxx 密钥
Base URL 必须是 https://api.deepseek.com/anthropic(注意结尾有 /anthropic
主模型 deepseek-v4-prodeepseek-chat
快速模型 可选 deepseek-v4-flash(默认)
Firecrawl Key 可选 用于 Wiki 爬虫和强制查证,不配则跳过

🤖 /model 模型映射说明

输入 /model 切换模型时,可以用别名完整模型名。以下是映射关系:

别名 实际调用的 DeepSeek 模型 说明
sonnet deepseek-v4-flash 快速模型,适合日常对话、简单任务
haiku deepseek-v4-flash 同上,最轻量
opus deepseek-v4-pro 最强模型,适合复杂推理、代码生成
best deepseek-v4-pro 同 opus,自动选最强

可直接填写的 DeepSeek 模型名

模型名 特点 适用场景
deepseek-v4-pro 最强推理,输出上限 384K 复杂渗透分析、代码审计、/arena 辩论
deepseek-v4-flash 快速便宜,输出上限 64K 日常问答、快速扫描、/recon 工具调度
deepseek-chat V3 兼容模型 预算有限时的备选

💡 推荐配置:主模型用 deepseek-v4-pro,快速模型用 deepseek-v4-flash。这样 /arena 和复杂任务走 pro,工具调用和快速回复走 flash,兼顾质量和成本。

⚡ 验证是否正常

启动后输入任意问题,如果看到 token 计费面板有数字跳动(in X · out X),说明配置正确。

如果输入后无任何响应,99% 是以下原因:

  1. API Key 没配或配错 → 重新 /setup
  2. Base URL 缺少 /anthropic 后缀 → 改成 https://api.deepseek.com/anthropic
  3. 网络不通(国内直连 DeepSeek 无需代理)

🔑 环境变量配置

除了 /setup 交互式配置外,也可以通过 .env 文件或系统环境变量配置。在项目根目录创建 .env 文件:

# ═══════════════ 必填 ═══════════════
ANTHROPIC_API_KEY=sk-xxxxxxxxxxxxxxxx
ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic

# ═══════════════ 模型选择 ═══════════════
ANTHROPIC_MODEL=deepseek-v4-pro
ANTHROPIC_SMALL_FAST_MODEL=deepseek-v4-flash

# ═══════════════ 可选功能 ═══════════════
FIRECRAWL_API_KEY=fc-xxxxxxxxxxxxxxxx          # Wiki 爬虫 + 强制查证
DEEPSEEK_PRO_FULL_PRICE=1                      # 计费面板显示 pro 原价(默认 2.5 折)
CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000            # 最大输出 token(默认 64K)
CLAUDE_CODE_SCROLL_SPEED=3                     # 滚轮速度倍率(默认 1)

三种配置方式优先级(高→低):

优先级 方式 说明
1 系统环境变量 set ANTHROPIC_API_KEY=sk-xxx(当前终端生效)
2 .env 文件 项目根目录,git 不跟踪
3 /setup 配置 存储在 ~/.haking/config.json,全局生效

⚠️ 注意.env 文件包含密钥,不要提交到 git。已在 .gitignore 中排除。

Windows 设置环境变量(永久生效):

# PowerShell(当前用户永久)
[Environment]::SetEnvironmentVariable("ANTHROPIC_API_KEY", "sk-xxx", "User")
[Environment]::SetEnvironmentVariable("ANTHROPIC_BASE_URL", "https://api.deepseek.com/anthropic", "User")

# 或者 CMD(仅当前窗口)
set ANTHROPIC_API_KEY=sk-xxx
set ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic

📖 所有命令一览

启动后在输入框输入 / 开头的命令即可执行。以下是完整命令列表:

🔴 核心命令(必须知道)

命令 说明
/setup 首次必用 — 配置 API Key、Base URL、模型(持久化保存)
/help 查看所有可用命令
/arena <问题> 4 链对抗共识 — 多个 AI 角色辩论达成最可靠答案
/recon <文件> PEV 假设驱动逆向分析引擎
/model 切换当前使用的模型
/clear 清空对话历史,释放上下文
/compact 压缩上下文(对话太长时用)
/exit 退出程序

🟠 会话管理

命令 说明
/handoff <备注> 保存当前会话状态,下次可恢复
/pickup 恢复上次 /handoff 保存的会话
/resume 恢复之前的对话
/session 显示远程会话 URL 和二维码
/rename <名称> 重命名当前对话
/branch 在当前位置创建对话分支
/rewind 回退代码和/或对话到之前的某个点
/export 导出当前对话到文件或剪贴板
/copy 复制最后一条回复到剪贴板

🟡 工具与知识

命令 说明
/wiki serve 启动知识图谱 Web UI(localhost:7891)
/wiki add <url> 爬取网页加入知识图谱
/island 启动灵动岛浮窗(工具总控面板)
/skills 列出所有可用 Skill
/mcp 管理 MCP 服务器
/hooks 查看 Hook 配置

🟢 配置与诊断

命令 说明
/config 打开配置面板
/doctor 诊断安装和配置是否正确
/cost 显示当前会话的费用和时长
/context 可视化当前上下文使用量
/files 列出当前上下文中的所有文件
/diff 查看未提交的更改和每轮 diff
/permissions 管理工具权限规则
/memory 编辑 AI 记忆文件
/lang <en/zh/auto> 设置显示语言
/theme 切换主题
/vim 切换 Vim / 普通编辑模式
/keybindings 打开快捷键配置文件

🔵 高级功能

命令 说明
/plan 启用计划模式或查看当前计划
/tasks 列出和管理后台任务
/agents 管理 Agent 配置
/fast 切换快速模式(使用轻量模型)
/effort 设置模型推理努力等级
/stats 显示使用统计
/feedback 提交反馈

⌨️ 快捷键

快捷键 功能
Ctrl+B 切换侧边栏
Ctrl+O 切换 Transcript 模式(查看详细日志)
PgUp / PgDn 翻页滚动
Esc 取消当前操作
Ctrl+C 中断当前请求
Ctrl+D 退出

🔧 二次开发注意

  • 修改源码后必须 bun run build 重新构建,dist/ 才会更新
  • 不要直接编辑 dist/ 下的文件
  • 不要用 npm run / yarn 替代 bun run
  • PR 前跑一次 bun run build 确认构建通过

快速开始

环境要求

📦 项目依赖一览

所有依赖通过 bun install 自动安装,无需手动处理。

运行时依赖(dependencies)

包名 版本 用途
@agentclientprotocol/sdk ^0.19.0 Agent Client Protocol SDK
@claude-code-best/mcp-chrome-bridge ^2.0.8 Chrome MCP 桥接
ws ^8.20.0 WebSocket(灵动岛通信)

核心开发依赖(devDependencies)

AI/LLM SDK

包名 版本 用途
@anthropic-ai/sdk ^0.80.0 Anthropic Messages API SDK
@anthropic-ai/bedrock-sdk ^0.26.4 AWS Bedrock 接入
@anthropic-ai/vertex-sdk ^0.14.4 Google Vertex AI 接入
@anthropic-ai/claude-agent-sdk ^0.2.114 Claude Agent SDK
@anthropic-ai/foundry-sdk ^0.2.3 Foundry SDK
@anthropic-ai/mcpb ^2.1.2 MCP Builder
@anthropic-ai/sandbox-runtime ^0.0.44 沙箱运行时
openai ^6.34.0 OpenAI 兼容 API
@modelcontextprotocol/sdk ^1.29.0 MCP 协议 SDK

UI/终端渲染

包名 版本 用途
@anthropic/ink workspace:* 终端 UI 框架(Ink fork)
react ^19.2.5 React 渲染引擎
react-reconciler ^0.33.0 React 自定义渲染器
react-compiler-runtime ^1.0.0 React Compiler 运行时
chalk ^5.6.2 终端颜色
cli-highlight ^2.1.11 代码语法高亮
highlight.js ^11.11.1 语法高亮引擎
marked ^17.0.6 Markdown 解析
figures ^6.1.0 终端 Unicode 符号
cli-boxes ^4.0.1 终端边框绘制
wrap-ansi ^10.0.0 ANSI 文本换行
strip-ansi ^7.2.0 去除 ANSI 转义码
qrcode ^1.5.4 二维码生成
asciichart ^1.5.25 终端图表

AWS SDK

包名 版本 用途
@aws-sdk/client-bedrock ^3.1032.0 Bedrock 客户端
@aws-sdk/client-bedrock-runtime ^3.1032.0 Bedrock 运行时
@aws-sdk/client-sts ^3.1032.0 STS 令牌服务
@aws-sdk/credential-provider-node ^3.972.32 凭证提供者
@aws-sdk/credential-providers ^3.1032.0 凭证提供者集合

工具/实用库

包名 版本 用途
axios ^1.15.0 HTTP 客户端
undici ^7.25.0 高性能 HTTP 客户端
execa ^9.6.1 子进程执行(安全工具调用)
chokidar ^5.0.0 文件监听
fuse.js ^7.3.0 模糊搜索
lodash-es ^4.18.1 工具函数库
lru-cache ^11.3.5 LRU 缓存
semver ^7.7.4 语义化版本
yaml ^2.8.3 YAML 解析
zod ^4.3.6 运行时类型校验
ajv ^8.18.0 JSON Schema 校验
diff ^8.0.4 文本差异比较
shell-quote ^1.8.3 Shell 命令解析
tree-kill ^1.2.2 进程树终止
signal-exit ^4.1.0 退出信号处理
p-map ^7.0.4 并发 Promise 映射
proper-lockfile ^4.1.2 文件锁
cacache ^20.0.4 内容寻址缓存
env-paths ^4.0.0 跨平台路径
ignore ^7.0.5 .gitignore 解析
picomatch ^4.0.4 Glob 匹配
turndown ^7.2.4 HTML 转 Markdown
xss ^1.0.15 XSS 过滤
he ^1.2.0 HTML 实体编解码
fflate ^0.8.2 压缩/解压
sharp ^0.34.5 图片处理
plist ^3.1.0 macOS plist 解析
jsonc-parser ^3.3.1 JSONC 解析(带注释)
auto-bind ^5.0.1 自动绑定 this
indent-string ^5.0.0 字符串缩进
code-excerpt ^4.0.0 代码片段提取
emoji-regex ^10.6.0 Emoji 正则
get-east-asian-width ^1.5.0 东亚字符宽度
bidi-js ^1.0.3 双向文本处理
supports-hyperlinks ^4.4.0 终端超链接检测
https-proxy-agent ^8.0.0 HTTPS 代理
google-auth-library ^10.6.2 Google 认证
@azure/identity ^4.13.1 Azure 认证
usehooks-ts ^3.1.1 React Hooks 工具
stack-utils ^2.0.6 堆栈解析

可观测性/分析

包名 版本 用途
@opentelemetry/api ^1.9.1 OpenTelemetry API
@opentelemetry/sdk-trace-base ^2.7.0 链路追踪
@opentelemetry/sdk-metrics ^2.7.0 指标采集
@opentelemetry/sdk-logs ^0.214.0 日志采集
@langfuse/otel ^5.1.0 Langfuse 集成
@langfuse/tracing ^5.1.0 Langfuse 追踪
@growthbook/growthbook ^1.6.5 功能开关
@sentry/node ^10.49.0 错误监控

LSP/编辑器集成

包名 版本 用途
vscode-jsonrpc ^8.2.1 JSON-RPC 协议
vscode-languageserver-protocol ^3.17.5 LSP 协议
vscode-languageserver-types ^3.17.5 LSP 类型定义

构建/开发工具

包名 版本 用途
typescript ^6.0.3 TypeScript 编译器
vite ^8.0.8 构建工具
rollup ^4.60.2 模块打包
@biomejs/biome ^2.4.12 Linter + Formatter
knip ^6.4.1 死代码检测

Workspace 内部包

包名 用途
@ant/model-provider 多模型 Provider 管理
@ant/claude-for-chrome-mcp Chrome MCP
@ant/computer-use-input Computer Use 输入
@ant/computer-use-mcp Computer Use MCP
@ant/computer-use-swift Computer Use Swift
@haking/agent-tools Agent 工具集
@haking/builtin-tools 内置工具(Bash/File/Grep 等)
@haking/mcp-client MCP 客户端
@haking/weixin 微信集成
audio-capture-napi 音频捕获 NAPI
color-diff-napi 颜色差异 NAPI
image-processor-napi 图片处理 NAPI
modifiers-napi 修饰键 NAPI
url-handler-napi URL 处理 NAPI

安装 & 运行

git clone https://github.com/elbelicojackson-hue/haking-code-.git
cd haking-code-
bun install
bun run dev

首次运行输入 /setup 配置 API Key,之后自动加载。

一键启动(Windows)

haking.bat

配置

方式一:/setup 命令(推荐)

在 REPL 中输入 /setup,交互式配置:

⚙ Haking Code 配置
  ~/.haking/config.json · 下次启动自动加载

▸ API Key:       sk-3a70...86ec
  Base URL:      https://api.deepseek.com/anthropic
  主模型:        deepseek-v4-pro
  快速模型:      deepseek-v4-flash
  Recon Providers [6]:  管理多 LLM →
  💾 保存配置

方式二:.env 文件

ANTHROPIC_API_KEY=sk-xxx
ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
FIRECRAWL_API_KEY=fc-xxx

方式三:环境变量

set ANTHROPIC_API_KEY=sk-xxx
set ANTHROPIC_MODEL=deepseek-v4-pro
set ANTHROPIC_SMALL_FAST_MODEL=deepseek-v4-flash

核心命令

命令 说明
/arena <问题> 4 链对抗共识 — 多角色辩论达成共识
/recon <binary> PEV 逆向分析 — 假设驱动的二进制分析
/setup 配置 API Key 和多 Provider
/model 切换模型
/help 查看所有命令

/arena — 4 链对抗共识

多个 AI 角色围绕一个问题进行结构化辩论,自动收敛到共识。

/arena 量子计算机能在 2028 年破解 RSA-2048 吗
/arena 这段代码有没有 SQL 注入漏洞
/arena Log4j 漏洞的根因是什么

4 条链

Chain 角色 职责
C1 Proposer 正向构建论点,寻找支持证据
C2 Challenger 逻辑攻击,找漏洞和反例
C3 Verifier 事实查证(带 Firecrawl 网页搜索)
C4 Synthesizer 综合收敛,标注共识和分歧

停止条件(纯信号驱动,无固定轮次)

  • consensus-reached — 4 链全部标记 converged
  • no-new-evidence — 所有链 update_kl < 0.05
  • gradient-quiet — 连续 3 轮平均 update_kl < 0.03
  • confidence-plateau — 平均置信度 > 0.9 且稳定
  • deadlock — ≥2 条链声明死锁

/recon — PEV 逆向分析引擎

假设驱动的二进制逆向分析循环。多 Agent 提出假设,调度安全工具验证,正则判定结果。

/recon ./malware.exe
/recon ./suspicious.dll "分析 C2 通信协议"
/recon ./packed.bin --max-rounds=10

假设类型(8 种)

Kind 示例
file-class PE32+ executable, 64-bit Windows
packer Packed by UPX 4.0
compiler .NET / Mono assembly
family Emotet variant
algorithm AES-256-CBC for C2 encryption
anti-analysis TLS callback anti-debug
capability Network C2 via HTTPS
protocol gRPC over HTTP/2

工具白名单

ReverseCli | Bash | Read | Grep | WebSearch | Firecrawl

停止条件

  • all-resolved — 无 open 假设
  • budget-cap-hit — 轮次/工具/token/时间预算耗尽
  • stall-guard-hit — 连续 2 轮所有 agent observe-only
  • parse-storm — ≥50% agent 解析失败
  • user-abort — Esc 取消

ReverseCliTool — 内置安全工具箱

AI 可直接调用的 20+ 安全工具:

Action 工具 用途
strings strings 提取字符串
analyze file 文件类型识别
diec Detect It Easy 壳/保护检测
upx UPX 脱壳
pentest nuclei/nmap/sqlmap/ffuf 渗透测试
kali 任意命令 Kali 工具链
tshark tshark 网络抓包分析
forensic curl Web 取证

渗透测试子工具

# AI 会自动调用:
ReverseCli({action: "pentest", pentestTool: "nmap", pentestArgs: "-sV 192.168.1.1"})
ReverseCli({action: "pentest", pentestTool: "nuclei", pentestArgs: "-u https://target.com"})
ReverseCli({action: "pentest", pentestTool: "sqlmap", pentestArgs: "-u 'http://target/page?id=1'"})

本地工具安装要求

部分工具需要本地安装并加入 PATH,AI 才能调用:

工具 安装方式 备注
IDA Pro 自行获取安装,将 idat64.exe 加入 PATH 无头模式分析
Ghidra https://ghidra-sre.org/ 下载解压 需要 JDK 17+
Detect It Easy (DiE) https://github.com/horsicq/DIE-engine/releases 壳检测必备
UPX scoop install upx 或官网下载 脱壳
nmap https://nmap.org/download 端口扫描
nuclei go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest 漏洞扫描
sqlmap pip install sqlmap SQL 注入
ffuf go install github.com/ffuf/ffuf/v2@latest 目录爆破
tshark 安装 Wireshark 自带 抓包分析
strings Windows: 安装 Binutils 或 SysInternals Strings 字符串提取
Frida pip install frida-tools 动态脱壳/Hook

💡 没装的工具不影响其他功能,AI 会跳过不可用的工具并使用替代方案。


多 Provider 配置(Recon/Arena)

/setup → Recon Providers 管理,支持混合不同厂商 LLM:

🔗 Recon Providers(多 LLM 对抗分析)

▸ gpt5-thinker → gpt-5.4 (yunwu.ai)
  claude-challenger → claude-opus-4-6 (yunwu.ai)
  deepseek-verifier → deepseek-chat (api.deepseek.com)
  qwen-analyst → qwen-max (dashscope.aliyuncs.com)
  doubao-scout → doubao-seed-2-0-pro (ark.cn-beijing.volces.com)
  mimo-backup → mimo-v2.5-pro (api.xiaomimimo.com)
  [+ 添加 Provider]

自动检测协议:

  • URL 含 /anthropic → Anthropic Messages API
  • 其他 → OpenAI Chat Completions API

算法架构

src/algorithms/
├── cav/
│   ├── pev/                 # PEV 引擎(假设-执行-验证循环)
│   ├── ccbteam-math/        # 纯观测数学层(CR-EIG, ε_t, ρ_t)
│   └── ccbteam-discipline/  # 认知纪律层(R12 调用门 + R13 认知诚实)
├── ccb-pev/                 # /recon 命令 UI
└── ReverseCliTool/          # PentAGI 安全工具箱(Go 后端)

ccbteam-math 核心算法

算法 作用
CR-EIG 信息效率主算子
exploitability (ε_t) 博弈论一阶可利用度
urgency (ρ_t) 共识紧迫度 = 1 − ε_t
rankGradients 5 个 ∇H 排序(attack/swap/oracle/chain/discretize)
cavAdaptiveDelta 自适应收敛阈值

设计红线:Math Layer 只测量不干预,不写 prompt,不形成闭环。


UI 布局

┌──────────────┬─────────────────────────────────────┐
│ ▾ Tasks      │  主聊天区                             │
│  ☐ task1     │                                      │
│  ☑ task2     │  > 你的输入                           │
│              │                                      │
│ ▾ Memory     │  Haking: 回复...                     │
│  • CLAUDE.md │                                      │
│              │                                      │
│ ▾ Buddy      │                                      │
│  🐱 Mochi    │                                      │
│              ├──────────────────────────────────────┤
│              │  > _                                  │
│              │  flash  in 0 · out 0 · cache 0   ¥0  │
│              │  pro    in 0 · out 0 · cache 0   ¥0  │
│              │  累计 ¥0 · pro 当前 2.5 折            │
└──────────────┴──────────────────────────────────────┘
  • Ctrl+B 切换侧边栏
  • 终端宽度 < 80 列自动隐藏侧边栏;< 70 列自动隐藏计费面板
  • 计费面板每秒轮询一次 STATE.modelUsage 累加值(cost-tracker 在 React 之外 mutate 全局,没有事件订阅)

开发

bun run dev          # 开发模式
bun run build        # 构建到 dist/
bun run dev:inspect  # 调试模式(VS Code attach)
bun test             # 运行测试

法律声明

本工具仅供合法安全研究和教育用途。详见 LEGAL.md

About

No description, website, or topics provided.

Resources

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors