[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-jehna--humanify":3,"tool-jehna--humanify":64},[4,17,25,39,48,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[13,14,15],"开发框架","Agent","语言模型","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":10,"last_commit_at":23,"category_tags":24,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,15],{"id":26,"name":27,"github_repo":28,"description_zh":29,"stars":30,"difficulty_score":10,"last_commit_at":31,"category_tags":32,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[33,34,35,36,14,37,15,13,38],"图像","数据工具","视频","插件","其他","音频",{"id":40,"name":41,"github_repo":42,"description_zh":43,"stars":44,"difficulty_score":45,"last_commit_at":46,"category_tags":47,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,3,"2026-04-04T04:44:48",[14,33,13,15,37],{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":45,"last_commit_at":54,"category_tags":55,"status":16},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",74939,"2026-04-05T23:16:38",[15,33,13,37],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":45,"last_commit_at":62,"category_tags":63,"status":16},2181,"OpenHands","OpenHands\u002FOpenHands","OpenHands 是一个专注于 AI 驱动开发的开源平台，旨在让智能体（Agent）像人类开发者一样理解、编写和调试代码。它解决了传统编程中重复性劳动多、环境配置复杂以及人机协作效率低等痛点，通过自动化流程显著提升开发速度。\n\n无论是希望提升编码效率的软件工程师、探索智能体技术的研究人员，还是需要快速原型验证的技术团队，都能从中受益。OpenHands 提供了灵活多样的使用方式：既可以通过命令行（CLI）或本地图形界面在个人电脑上轻松上手，体验类似 Devin 的流畅交互；也能利用其强大的 Python SDK 自定义智能体逻辑，甚至在云端大规模部署上千个智能体并行工作。\n\n其核心技术亮点在于模块化的软件智能体 SDK，这不仅构成了平台的引擎，还支持高度可组合的开发模式。此外，OpenHands 在 SWE-bench 基准测试中取得了 77.6% 的优异成绩，证明了其解决真实世界软件工程问题的能力。平台还具备完善的企业级功能，支持与 Slack、Jira 等工具集成，并提供细粒度的权限管理，适合从个人开发者到大型企业的各类用户场景。",70626,"2026-04-05T22:51:36",[15,14,13,36],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":81,"owner_email":79,"owner_twitter":82,"owner_website":79,"owner_url":83,"languages":84,"stars":93,"forks":94,"last_commit_at":95,"license":96,"difficulty_score":10,"env_os":97,"env_gpu":98,"env_ram":97,"env_deps":99,"category_tags":106,"github_topics":79,"view_count":10,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":107,"updated_at":108,"faqs":109,"releases":137},4057,"jehna\u002Fhumanify","humanify","Deobfuscate Javascript code using ChatGPT","humanify 是一款利用大语言模型（如 ChatGPT、Gemini 或本地模型）自动还原混淆 JavaScript 代码的开源工具。它主要解决开发者在面对经过压缩、混淆或打包的代码时，难以阅读和理解逻辑的痛点，能将晦涩的变量名和函数名转换为语义清晰的自然语言标识，同时确保代码功能与原始版本完全一致。\n\n这款工具特别适合前端开发者、安全研究人员以及需要维护或分析第三方库的技术人员。无论是调试生产环境的压缩文件，还是进行代码审计，humanify 都能显著提升工作效率。\n\n其核心技术亮点在于“智能提示 + 精准重构”的双重机制：大模型仅负责分析代码逻辑并提供重命名建议，而实际的代码结构变换则由 Babel 在抽象语法树（AST）层面执行。这种设计既发挥了 AI 的理解能力，又避免了模型直接生成代码可能引发的结构错误，保证了输出代码的 1:1 等价性。此外，humanify v2 版本已全面转向 Node.js 环境，无需安装 Python，并提供了灵活的运行模式：用户可选择高精度的云端 API 模式（OpenAI\u002FGemini），也可下载模型使用免费的本地离线模式，兼顾了准确性、成本","humanify 是一款利用大语言模型（如 ChatGPT、Gemini 或本地模型）自动还原混淆 JavaScript 代码的开源工具。它主要解决开发者在面对经过压缩、混淆或打包的代码时，难以阅读和理解逻辑的痛点，能将晦涩的变量名和函数名转换为语义清晰的自然语言标识，同时确保代码功能与原始版本完全一致。\n\n这款工具特别适合前端开发者、安全研究人员以及需要维护或分析第三方库的技术人员。无论是调试生产环境的压缩文件，还是进行代码审计，humanify 都能显著提升工作效率。\n\n其核心技术亮点在于“智能提示 + 精准重构”的双重机制：大模型仅负责分析代码逻辑并提供重命名建议，而实际的代码结构变换则由 Babel 在抽象语法树（AST）层面执行。这种设计既发挥了 AI 的理解能力，又避免了模型直接生成代码可能引发的结构错误，保证了输出代码的 1:1 等价性。此外，humanify v2 版本已全面转向 Node.js 环境，无需安装 Python，并提供了灵活的运行模式：用户可选择高精度的云端 API 模式（OpenAI\u002FGemini），也可下载模型使用免费的本地离线模式，兼顾了准确性、成本与数据隐私需求。","# HumanifyJS\n> Deobfuscate Javascript code using LLMs (\"AI\")\n\nThis tool uses large language modeles (like ChatGPT & llama) and other tools to\ndeobfuscate, unminify, transpile, decompile and unpack Javascript code. Note\nthat LLMs don't perform any structural changes – they only provide hints to\nrename variables and functions. The heavy lifting is done by Babel on AST level\nto ensure code stays 1-1 equivalent.\n\n### Version 2 is out! 🎉\n\nv2 highlights compared to v1:\n* Python not required anymore!\n* A lot of tests, the codebase is actually maintanable now\n* Renewed CLI tool `humanify` installable via npm\n\n### ➡️ Check out the [introduction blog post][blogpost] for in-depth explanation!\n\n[blogpost]: https:\u002F\u002Fthejunkland.com\u002Fblog\u002Fusing-llms-to-reverse-javascript-minification\n\n## Example\n\nGiven the following minified code:\n\n```javascript\nfunction a(e,t){var n=[];var r=e.length;var i=0;for(;i\u003Cr;i+=t){if(i+t\u003Cr){n.push(e.substring(i,i+t))}else{n.push(e.substring(i,r))}}return n}\n```\n\nThe tool will output a human-readable version:\n\n```javascript\nfunction splitString(inputString, chunkSize) {\n  var chunks = [];\n  var stringLength = inputString.length;\n  var startIndex = 0;\n  for (; startIndex \u003C stringLength; startIndex += chunkSize) {\n    if (startIndex + chunkSize \u003C stringLength) {\n      chunks.push(inputString.substring(startIndex, startIndex + chunkSize));\n    } else {\n      chunks.push(inputString.substring(startIndex, stringLength));\n    }\n  }\n  return chunks;\n}\n```\n\n🚨 **NOTE:** 🚨\n\nLarge files may take some time to process and use a lot of tokens if you use\nChatGPT. For a rough estimate, the tool takes about 2 tokens per character to\nprocess a file:\n\n```shell\necho \"$((2 * $(wc -c \u003C yourscript.min.js)))\"\n```\n\nSo for refrence: a minified `bootstrap.min.js` would take about $0.5 to\nun-minify using ChatGPT.\n\nUsing `humanify local` is of course free, but may take more time, be less\naccurate and not possible with your existing hardware.\n\n## Getting started\n\n### Installation\n\nPrerequisites:\n* Node.js >=20\n\nThe preferred whay to install the tool is via npm:\n\n```shell\nnpm install -g humanifyjs\n```\n\nThis installs the tool to your machine globally. After the installation is done,\nyou should be able to run the tool via:\n\n```shell\nhumanify\n```\n\nIf you want to try it out before installing, you can run it using `npx`:\n\n```\nnpx humanifyjs\n```\n\nThis will download the tool and run it locally. Note that all examples here\nexpect the tool to be installed globally, but they should work by replacing\n`humanify` with `npx humanifyjs` as well.\n\n### Usage\n\nNext you'll need to decide whether to use `openai`, `gemini` or `local` mode. In a\nnutshell:\n\n* `openai` or `gemini` mode\n  * Runs on someone else's computer that's specifically optimized for this kind\n    of things\n  * Costs money depending on the length of your code\n  * Is more accurate\n* `local` mode\n  * Runs locally\n  * Is free\n  * Is less accurate\n  * Runs as fast as your GPU does (it also runs on CPU, but may be very slow)\n\nSee instructions below for each option:\n\n### OpenAI mode\n\nYou'll need a ChatGPT API key. You can get one by signing up at\nhttps:\u002F\u002Fopenai.com\u002F.\n\nThere are several ways to provide the API key to the tool:\n```shell\nhumanify openai --apiKey=\"your-token\" obfuscated-file.js\n```\n\nAlternatively you can also use an environment variable `OPENAI_API_KEY`. Use\n`humanify --help` to see all available options.\n\n### Gemini mode\n\nYou'll need a Google AI Studio key. You can get one by signing up at\nhttps:\u002F\u002Faistudio.google.com\u002F.\n\nYou need to provice the API key to the tool:\n\n```shell\nhumanify gemini --apiKey=\"your-token\" obfuscated-file.js\n```\n\nAlternatively you can also use an environment variable `GEMINI_API_KEY`. Use\n`humanify --help` to see all available options.\n\n### Local mode\n\nThe local mode uses a pre-trained language model to deobfuscate the code. The\nmodel is not included in the repository due to its size, but you can download it\nusing the following command:\n\n```shell\nhumanify download 2b\n```\n\nThis downloads the `2b` model to your local machine. This is only needed to do\nonce. You can also choose to download other models depending on your local\nresources. List the available models using `humanify download`.\n\nAfter downloading the model, you can run the tool with:\n\n```shell\nhumanify local obfuscated-file.js\n```\n\nThis uses your local GPU to deobfuscate the code. If you don't have a GPU, the\ntool will automatically fall back to CPU mode. Note that using a GPU speeds up\nthe process significantly.\n\nHumanify has native support for Apple's M-series chips, and can fully utilize\nthe GPU capabilities of your Mac.\n\n## Features\n\nThe main features of the tool are:\n* Uses ChatGPT functions\u002Flocal models to get smart suggestions to rename\n  variable and function names\n* Uses custom and off-the-shelf Babel plugins to perform AST-level unmanging\n* Uses Webcrack to unbundle Webpack bundles\n\n## Contributing\n\nIf you'd like to contribute, please fork the repository and use a feature\nbranch. Pull requests are warmly welcome.\n\n## Licensing\n\nThe code in this project is licensed under MIT license.\n","# HumanifyJS\n> 使用大型语言模型（“AI”）对 JavaScript 代码进行去混淆\n\n该工具利用大型语言模型（如 ChatGPT 和 Llama）以及其他工具，来对 JavaScript 代码进行去混淆、去压缩、转译、反编译和解包。请注意，大型语言模型并不会对代码结构做出任何更改——它们仅提供重命名变量和函数的提示。真正的核心工作由 Babel 在 AST 层面完成，以确保代码保持一一对应的等价性。\n\n### 版本 2 已发布！🎉\n\n与 v1 相比，v2 的亮点包括：\n* 不再需要 Python！\n* 增加了大量测试，代码库现在真正可维护了。\n* 重新设计的 CLI 工具 `humanify` 可通过 npm 安装。\n\n### ➡️ 请查看[介绍博客文章][blogpost]以获取更详细的说明！\n\n[blogpost]: https:\u002F\u002Fthejunkland.com\u002Fblog\u002Fusing-llms-to-reverse-javascript-minification\n\n## 示例\n\n给定以下经过压缩的代码：\n\n```javascript\nfunction a(e,t){var n=[];var r=e.length;var i=0;for(;i\u003Cr;i+=t){if(i+t\u003Cr){n.push(e.substring(i,i+t))}else{n.push(e.substring(i,r))}}return n}\n```\n\n该工具将输出一个易于阅读的版本：\n\n```javascript\nfunction splitString(inputString, chunkSize) {\n  var chunks = [];\n  var stringLength = inputString.length;\n  var startIndex = 0;\n  for (; startIndex \u003C stringLength; startIndex += chunkSize) {\n    if (startIndex + chunkSize \u003C stringLength) {\n      chunks.push(inputString.substring(startIndex, startIndex + chunkSize));\n    } else {\n      chunks.push(inputString.substring(startIndex, stringLength));\n    }\n  }\n  return chunks;\n}\n```\n\n🚨 **注意：** 🚨\n\n处理大文件可能需要较长时间，并且如果使用 ChatGPT，会消耗大量 token。粗略估计，该工具处理每个字符大约需要 2 个 token：\n\n```shell\necho \"$((2 * $(wc -c \u003C yourscript.min.js)))\"\n```\n\n因此，作为参考：使用 ChatGPT 对一个经过压缩的 `bootstrap.min.js` 文件进行去压缩，大约需要花费 0.5 美元。\n\n当然，使用 `humanify local` 是免费的，但可能耗时更长、准确性较低，而且可能无法在您现有的硬件上运行。\n\n## 开始使用\n\n### 安装\n\n先决条件：\n* Node.js ≥20\n\n推荐通过 npm 安装该工具：\n\n```shell\nnpm install -g humanifyjs\n```\n\n这会将工具全局安装到您的机器上。安装完成后，您应该能够通过以下命令运行该工具：\n\n```shell\nhumanify\n```\n\n如果您想在安装前试用，可以使用 `npx` 来运行：\n\n```\nnpx humanifyjs\n```\n\n这会下载工具并在本地运行。请注意，此处的所有示例都假定工具已全局安装，但您也可以将 `humanify` 替换为 `npx humanifyjs` 来实现相同的效果。\n\n### 使用\n\n接下来，您需要决定是使用 `openai`、`gemini` 还是 `local` 模式。简而言之：\n\n* `openai` 或 `gemini` 模式\n  * 在专门为此类任务优化的他人服务器上运行\n  * 费用取决于代码长度\n  * 准确性更高\n* `local` 模式\n  * 在本地运行\n  * 免费\n  * 准确性较低\n  * 运行速度取决于您的 GPU 性能（也可以在 CPU 上运行，但可能会非常慢）\n\n有关每种选项的详细说明，请参见下文：\n\n### OpenAI 模式\n\n您需要一个 ChatGPT API 密钥。可以通过访问 https:\u002F\u002Fopenai.com\u002F 注册获取。\n\n有几种方式可以将 API 密钥提供给工具：\n```shell\nhumanify openai --apiKey=\"your-token\" obfuscated-file.js\n```\n\n或者，您也可以使用环境变量 `OPENAI_API_KEY`。运行 `humanify --help` 查看所有可用选项。\n\n### Gemini 模式\n\n您需要一个 Google AI Studio 密钥。可以通过访问 https:\u002F\u002Faistudio.google.com\u002F 注册获取。\n\n您需要将 API 密钥提供给工具：\n\n```shell\nhumanify gemini --apiKey=\"your-token\" obfuscated-file.js\n```\n\n或者，您也可以使用环境变量 `GEMINI_API_KEY`。运行 `humanify --help` 查看所有可用选项。\n\n### Local 模式\n\nLocal 模式使用预训练的语言模型来对代码进行去混淆。由于模型体积较大，未包含在仓库中，但您可以使用以下命令下载它：\n\n```shell\nhumanify download 2b\n```\n\n这会将 `2b` 模型下载到您的本地机器上。只需执行一次即可。您也可以根据本地资源选择下载其他模型。使用 `humanify download` 列出可用的模型。\n\n下载模型后，您可以运行以下命令：\n\n```shell\nhumanify local obfuscated-file.js\n```\n\n这将使用您本地的 GPU 对代码进行去混淆。如果您没有 GPU，工具会自动回退到 CPU 模式。请注意，使用 GPU 可显著加快处理速度。\n\nHumanify 原生支持 Apple 的 M 系列芯片，并能充分利用 Mac 的 GPU 性能。\n\n## 功能\n\n该工具的主要功能包括：\n* 使用 ChatGPT 功能或本地模型，智能建议重命名变量和函数名称\n* 使用自定义和现成的 Babel 插件，在 AST 层面进行去混淆\n* 使用 Webcrack 解包 Webpack 打包文件\n\n## 贡献\n\n如果您希望贡献代码，请 fork 该仓库并使用特性分支。欢迎提交 Pull Request。\n\n## 许可证\n\n该项目中的代码采用 MIT 许可证授权。","# HumanifyJS 快速上手指南\n\nHumanifyJS 是一款利用大语言模型（LLM）智能反混淆、还原压缩 JavaScript 代码的开源工具。它通过 AI 提供变量和函数重命名建议，并结合 Babel 在抽象语法树（AST）层面进行安全转换，确保代码逻辑 1:1 等价。\n\n## 环境准备\n\n*   **操作系统**：Windows \u002F macOS \u002F Linux\n*   **运行时依赖**：Node.js >= 20\n    *   请确保已安装 Node.js，可通过 `node -v` 验证版本。\n*   **硬件要求（仅限本地模式）**：\n    *   若使用 `local` 模式，建议配备独立 GPU 以获得最佳速度。\n    *   支持 Apple M 系列芯片，可充分利用其 GPU 性能。\n    *   无 GPU 时会自动降级为 CPU 模式（速度较慢）。\n\n## 安装步骤\n\n推荐使用 npm 全局安装：\n\n```shell\nnpm install -g humanifyjs\n```\n\n安装完成后，即可在终端直接使用 `humanify` 命令。\n\n> **提示**：若不想全局安装，可使用 `npx humanifyjs` 直接运行，但后续示例均假设已全局安装。\n\n## 基本使用\n\n使用前需选择运行模式：**OpenAI**、**Gemini** 或 **Local**。\n\n### 1. OpenAI 模式（高精度，收费）\n适用于需要最高还原准确率的场景。需准备 OpenAI API Key。\n\n```shell\nhumanify openai --apiKey=\"your-openai-api-key\" obfuscated-file.js\n```\n\n*也可设置环境变量 `OPENAI_API_KEY` 避免每次输入密钥。*\n\n### 2. Gemini 模式（高精度，收费\u002F免费额度）\n使用 Google AI 模型。需准备 Google AI Studio API Key。\n\n```shell\nhumanify gemini --apiKey=\"your-gemini-api-key\" obfuscated-file.js\n```\n\n*也可设置环境变量 `GEMINI_API_KEY`。*\n\n### 3. Local 模式（免费，依赖本地算力）\n完全本地运行，免费但速度取决于硬件性能。首次使用需下载模型。\n\n**第一步：下载模型**\n```shell\nhumanify download 2b\n```\n*(注：`2b` 为模型代号，可通过 `humanify download` 查看其他可用模型)*\n\n**第二步：执行反混淆**\n```shell\nhumanify local obfuscated-file.js\n```\n\n### 使用示例对比\n\n**输入（压缩代码）：**\n```javascript\nfunction a(e,t){var n=[];var r=e.length;var i=0;for(;i\u003Cr;i+=t){if(i+t\u003Cr){n.push(e.substring(i,i+t))}else{n.push(e.substring(i,r))}}return n}\n```\n\n**输出（Humanify 还原后）：**\n```javascript\nfunction splitString(inputString, chunkSize) {\n  var chunks = [];\n  var stringLength = inputString.length;\n  var startIndex = 0;\n  for (; startIndex \u003C stringLength; startIndex += chunkSize) {\n    if (startIndex + chunkSize \u003C stringLength) {\n      chunks.push(inputString.substring(startIndex, startIndex + chunkSize));\n    } else {\n      chunks.push(inputString.substring(startIndex, stringLength));\n    }\n  }\n  return chunks;\n}\n```\n\n> **注意**：处理大型文件时，OpenAI\u002FGemini 模式会消耗较多 Token；Local 模式则耗时较长。","某安全研究员在分析一个涉嫌窃取用户数据的恶意网站时，获取了其经过高度混淆和压缩的 JavaScript 核心代码，急需还原逻辑以撰写分析报告。\n\n### 没有 humanify 时\n- 变量名全是单字符（如 `a`, `b`, `x1`），完全无法直观判断数据流向和功能意图。\n- 人工逐行反推逻辑耗时极长，面对数千行压缩代码，排查关键恶意函数如同大海捞针。\n- 传统格式化工具仅能调整缩进，无法恢复语义，仍需依赖研究员的经验进行大量猜测性重命名。\n- 在高压应急响应场景下，漫长的分析过程导致威胁情报输出滞后，延误了防御时机。\n\n### 使用 humanify 后\n- 利用 LLM 智能推断，将无意义的单字符变量自动重命名为 `userInput`、`exfilData` 等具象名称，代码意图一目了然。\n- 原本需要数小时的人工逆向工作缩短至几分钟，研究员可快速定位到发送数据的核心函数块。\n- 基于 Babel AST 技术确保重构后的代码与原始逻辑 100% 等价，避免了人工修改可能引入的错误或逻辑偏差。\n- 支持调用本地模型免费运行，既保护了敏感样本不上传云端，又大幅降低了分析成本和时间门槛。\n\nhumanify 通过将 AI 的语义理解能力与编译器的结构严谨性结合，把不可读的机器码瞬间转化为人类可维护的逻辑文档，极大提升了代码审计与逆向工程的效率。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjehna_humanify_fad53a68.png","jehna","Jesse Luoto","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fjehna_f01ce489.png",null,"Reaktor","Finland","luotojesse","https:\u002F\u002Fgithub.com\u002Fjehna",[85,89],{"name":86,"color":87,"percentage":88},"TypeScript","#3178c6",98.1,{"name":90,"color":91,"percentage":92},"JavaScript","#f1e05a",1.9,3149,198,"2026-04-05T11:56:59","MIT","未说明","非必需。支持本地 GPU 加速（特别提及原生支持 Apple M 系列芯片），无 GPU 时自动回退至 CPU 模式（速度较慢）。未指定具体显卡型号、显存大小或 CUDA 版本。",{"notes":100,"python":101,"dependencies":102},"该工具主要通过 npm 安装，不再需要 Python 环境。本地模式需手动下载预训练模型（如 2b 模型），模型文件较大且未包含在仓库中。使用 OpenAI 或 Gemini 云端模式会产生按字符数计算的 Token 费用。","不需要 (v2 版本已移除 Python 依赖)",[103,104,105],"Node.js >=20","Babel","Webcrack",[15,36],"2026-03-27T02:49:30.150509","2026-04-06T09:06:54.965152",[110,115,119,124,129,133],{"id":111,"question_zh":112,"answer_zh":113,"source_url":114},18472,"处理大型文件（如超过 10 万行）时速度非常慢，且终端关闭会导致进程重置，有什么解决办法？","处理速度慢通常与文件总体大小和 LLM（大语言模型）的调用次数有关，而不仅仅是代码效率问题。为了防止终端关闭导致进程重置，建议：\n1. 确保终端屏幕保持开启状态。\n2. 使用 `screen` 或 `tmux` 等工具在后台 shell 中运行命令，这样即使断开连接或关闭终端，进程也会继续运行。\n此外，最近的 PR #146 可能在 AST 解析和重命名方面略微提升了速度。","https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fissues\u002F117",{"id":116,"question_zh":117,"answer_zh":118,"source_url":114},18473,"遇到 'SyntaxError: Unexpected token' 或 Babel 语法错误，特别是变量名中出现 '_static' 前缀时，是什么原因？","这通常是因为 LLM 在尝试重命名变量时生成了无效的变量名。具体来说，LLM 可能会错误地给变量添加 `_static` 前缀（例如将参数命名为 `_static calculateQualityParameter`），导致生成的代码不符合 JavaScript 语法规范。这不是代码中缺少逗号的问题，而是重命名逻辑导致的。如果遇到此问题，可能需要检查 LLM 的提示词或等待修复该重命名逻辑的更新。",{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},18474,"遇到 'Error: Failed to stringify code' 错误，特别是在处理大文件（如 7MB）时，如何定位具体是哪个文件出错？","该错误通常发生在 `webcrack` 提取文件后的 `unminify` 阶段。由于默认日志不输出正在处理的具体文件名，调试较为困难。\n定位方法：\n1. 观察错误日志中提到的文件索引（例如 'file 18'）。\n2. 注意日志中的索引通常是 `i + 1` 的形式，因此实际数组索引需要减 1（例如 'file 18' 对应数组索引 17）。\n3. 可以通过调试器运行程序，查看 `extractedFiles` 数组中对应索引的文件内容，从而确定是哪个具体文件导致了字符串化失败。\n已有相关的 Bug 修复 PR（#133, #134）针对此类问题进行了改进。","https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fissues\u002F111",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},18475,"运行时出现 'TypeError: Duplicate declaration'（重复声明）错误，这是什么原因造成的？","这个错误通常发生在变量重命名过程中。原因可能是：\n1. 一个变量被重命名后，新名字与作用域中已存在的另一个变量名冲突。\n2. 代码被分割处理时，并非所有引用都被正确重命名，导致作用域内出现重复声明。\n建议使用 Babel 感知作用域的重命名功能来处理这些冲突，或者检查是否有变量被错误地赋予了相同的名称。这是一个已知的边界情况，通常需要工具内部逻辑来避免命名碰撞。","https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fissues\u002F67",{"id":130,"question_zh":131,"answer_zh":132,"source_url":128},18476,"可以同时运行多个 humanify 实例来处理多个文件以加快速度吗？","不建议同时运行多个实例。测试表明，并发运行会导致 API 请求过快，从而触发 '429 Too Many Requests' 错误，最终导致应用程序崩溃。为了稳定运行，请串行处理文件或控制并发数量以避免触发布局限制。",{"id":134,"question_zh":135,"answer_zh":136,"source_url":114},18477,"为什么重命名后的变量名有时看起来不合理或包含奇怪的前缀？","这是因为重命名过程依赖于 LLM（大语言模型）的生成结果。如果源代码中包含误导性的模式（例如大量的 `static` 关键字或特定的命名习惯），LLM 可能会被混淆，从而生成带有不必要前缀（如 `_static`）或不符合预期的变量名。这属于 LLM 推断的局限性，通常需要通过优化输入上下文或后续的手动清理来解决。",[138,143,148,153,158,163,168],{"id":139,"version":140,"summary_zh":141,"released_at":142},109028,"v2.2.2","\u003C!-- 发布说明由 .github\u002Frelease.yml 中的配置在 v2.2.2 版本时生成 -->\n\n## 变更内容\n### 修复了 bug 🐛\n* 修复严格模式下因 `arguments` 赋值而导致的崩溃，由 @jehna 在 https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fpull\u002F252 中完成\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fcompare\u002Fv2.2.1...v2.2.2","2024-12-16T19:11:48",{"id":144,"version":145,"summary_zh":146,"released_at":147},109029,"v2.2.1","\u003C!-- 发布说明由 .github\u002Frelease.yml 中的配置在 v2.2.1 版本时生成 -->\n\n## 变更内容\n### 修复了 bug 🐛\n* fix(cli): 将 `contextSize` 解析为数字而非布尔值，由 @breadgrocery 在 https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fpull\u002F205 中完成\n\n## 新贡献者\n* @breadgrocery 在 https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fpull\u002F205 中完成了他们的首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fcompare\u002Fv2.2.0...v2.2.1","2024-11-07T04:57:27",{"id":149,"version":150,"summary_zh":151,"released_at":152},109030,"v2.2.0","\u003C!-- 发布说明由 .github\u002Frelease.yml 中的配置在 v2.2.0 版本生成 -->\n\n## 变更内容\n### 令人兴奋的新功能 🎉\n* 允许设置非默认的 OpenAI 基础 URL，由 @Manouchehri 在 https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fpull\u002F70 中实现\n* 添加可配置的上下文窗口大小，由 @jehna 在 https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fpull\u002F165 中实现\n### 错误修复 🐛\n* 修复“重复声明”导致的崩溃，由 @jehna 在 https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fpull\u002F164 中完成\n* 修复模型下载速度过慢的问题，由 @jehna 在 https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fpull\u002F166 中完成\n\n## 新贡献者\n* @Manouchehri 在 https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fpull\u002F70 中完成了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fcompare\u002Fv2.1.3...v2.2.0","2024-10-18T21:15:34",{"id":154,"version":155,"summary_zh":156,"released_at":157},109031,"v2.1.3","\u003C!-- 发布说明由 .github\u002Frelease.yml 中的配置在 v2.1.3 版本生成 -->\n\n## 变更内容\n### 令人兴奋的新特性 🎉\n* 修复重命名操作的时间复杂度，由 n² 优化为 n，由 @jehna 在 https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fpull\u002F146 中完成\n### 修复了若干 bug 🐛\n* 修复：无效标识符问题，由 @j4k0xb 在 https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fpull\u002F133 中完成\n* 修复：空代码错误，由 @j4k0xb 在 https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fpull\u002F134 中完成\n\n## 新贡献者\n* @j4k0xb 在 https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fpull\u002F133 中完成了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fcompare\u002Fv2.1.2...v2.1.3","2024-10-06T21:26:27",{"id":159,"version":160,"summary_zh":161,"released_at":162},109032,"v2.1.2","\u003C!-- 发布说明由 .github\u002Frelease.yml 中的配置在 v2.1.2 版本生成 -->\n\n* 添加了多文件处理的反馈\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fcompare\u002Fv2.1.1...v2.1.2","2024-09-10T19:37:23",{"id":164,"version":165,"summary_zh":166,"released_at":167},109033,"v2.1.1","\u003C!-- 发布说明由 .github\u002Frelease.yml 中的配置在 v2.1.1 版本生成 -->\n\n## 变更内容\n### 令人兴奋的新功能 🎉\n* 新增 Google Gemini\u002FAIStudio 插件，由 @jehna 在 https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fpull\u002F66 中实现。\n### 修复的 bug 🐛\n* 修复禁用 GPU 使用的问题，由 @jehna 在 https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fpull\u002F56 中完成。\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fcompare\u002Fv2.1.0...v2.1.1","2024-08-28T15:18:19",{"id":169,"version":170,"summary_zh":171,"released_at":172},109034,"v2.1.0","\u003C!-- 发布说明由 .github\u002Frelease.yml 中的配置在 v2.1.0 版本时生成 -->\n\n## 变更内容\n### 重大变更 🛠\n* 将 2gb 更改为 2b，由 @jehna 在 https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fpull\u002F40 中完成\n### 令人兴奋的新功能 🎉\n* 添加 8b 模型，由 @jehna 在 https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fpull\u002F39 中完成\n### 已修复的 bug 🐛\n* 修复下载进度条的显示问题，由 @jehna 在 https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fpull\u002F41 中完成\n### 其他变更\n* 添加自动生成的发布说明，由 @jehna 在 https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fpull\u002F42 中完成\n\n## 新贡献者\n* @jehna 在 https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fpull\u002F39 中完成了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fjehna\u002Fhumanify\u002Fcompare\u002Fv2.0.3...v2.1.0","2024-08-15T20:20:53"]