{"id":35207648,"url":"https://github.com/adnaan-worker/adnify","last_synced_at":"2026-05-04T20:02:01.757Z","repository":{"id":330975479,"uuid":"1124639648","full_name":"adnaan-worker/Adnify","owner":"adnaan-worker","description":"Adnify—— 轻量级、高定制化 AI Agent 编辑器，碾压主流 AI 编程工具的极致体验！轻量化架构秒启不卡顿，支持 AI Agent 全流程定制（逻辑编排 / 工具审批 / 智能交互），深度集成 XTerminal（WebGL 加速 + 自定义快捷键），搭配 Markdown 多模式编辑、主题自定义、Git 一体化管理，告别臃肿模板，让 AI 开发完全贴合你的习惯。","archived":false,"fork":false,"pushed_at":"2026-04-02T15:32:54.000Z","size":16166,"stargazers_count":179,"open_issues_count":4,"forks_count":30,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-04-03T05:36:06.414Z","etag":null,"topics":["ai-agent","ai-ide","anthropic","api","claude-code","cursor","free","gemini","kiro","openai","opencode","windsurf"],"latest_commit_sha":null,"homepage":"https://adnify.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adnaan-worker.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-29T11:04:52.000Z","updated_at":"2026-04-02T15:33:01.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/adnaan-worker/Adnify","commit_stats":null,"previous_names":["adnaan-worker/adnify"],"tags_count":83,"template":false,"template_full_name":null,"purl":"pkg:github/adnaan-worker/Adnify","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adnaan-worker%2FAdnify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adnaan-worker%2FAdnify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adnaan-worker%2FAdnify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adnaan-worker%2FAdnify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adnaan-worker","download_url":"https://codeload.github.com/adnaan-worker/Adnify/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adnaan-worker%2FAdnify/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31441057,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T15:22:31.103Z","status":"ssl_error","status_checked_at":"2026-04-05T15:22:00.205Z","response_time":75,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agent","ai-ide","anthropic","api","claude-code","cursor","free","gemini","kiro","openai","opencode","windsurf"],"created_at":"2025-12-29T15:30:08.384Z","updated_at":"2026-05-04T20:02:01.746Z","avatar_url":"https://github.com/adnaan-worker.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"public/brand/logos/app-light.png\" /\u003e\n  \u003cimg src=\"public/brand/logos/app.png\" alt=\"Adnify Logo\" width=\"156\" /\u003e\n\u003c/picture\u003e\n\n  \u003ch1\u003eAdnify\u003c/h1\u003e\n\n  \u003cp\u003e\u003ca href=\"README_CN.md\"\u003e中文\u003c/a\u003e | \u003cstrong\u003eEnglish\u003c/strong\u003e\u003c/p\u003e\n\n  \u003cp\u003e\u003cstrong\u003eConnect AI to Your Code.\u003c/strong\u003e\u003c/p\u003e\n  \u003cp\u003eA next-generation code editor with stunning visual experience and deeply integrated AI Agent.\u003c/p\u003e\n\n  \u003cp\u003e\n    \u003ca href=\"https://deepwiki.com/adnaan-worker/Adnify\"\u003e\u003cimg src=\"https://deepwiki.com/badge.svg\" alt=\"Ask DeepWiki\" /\u003e\u003c/a\u003e\n    \u003cimg src=\"https://img.shields.io/badge/license-Custom%20License-blue.svg\" alt=\"License\" /\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Electron-39.0-blueviolet\" alt=\"Electron 39.0\" /\u003e\n    \u003cimg src=\"https://img.shields.io/badge/React-18-blue\" alt=\"React 18\" /\u003e\n    \u003cimg src=\"https://img.shields.io/badge/TypeScript-5.0-blue\" alt=\"TypeScript 5.0\" /\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\nAdnify is more than just an editor—it's your **intelligent programming companion**. It replicates and surpasses traditional IDE experiences, blending Cyberpunk glassmorphism design with a powerful built-in AI Agent that supports full-process automation from code generation to file operations.\n\n\u003c!-- Main Interface Demo --\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"images/main.gif\" alt=\"Adnify Main Interface Demo\" width=\"820\" /\u003e\n\u003c/div\u003e\n\n---\n\n\n### 🏆 Hall of Fame: Supporters Wall\n\n\u003e \"Behind every line of code in Adnify, there's a spark of energy from our community!\" ⚡️\n\nA huge thank you to our generous supporters. Your coffee, milk tea, and energy drinks are what keep Adnify evolving!\n\n| Supporter | Method | Honorary Title | Date | Message |\n| :--- | :--- | :--- | :--- | :--- |\n| okay. | 🧋 Milk Tea | **Joy Source Injector** | 2026-03-07 | A cup of joy for bug-free code! ✨ |\n| Mr. Tang | ☕ Coffee | **Focus Fuel Sponsor** | 2026-04-17 | A fresh cup for the next build. |\n\n---\n\n## Contact \u0026 Community\n\nJoin our community to discuss Adnify usage and development!\n\n| WeChat Group | QQ Group | Author WeChat |\n|:---:|:---:|:---:|\n| \u003cimg src=\"images/wechat-group.png\" width=\"200\" height=\"200\" alt=\"WeChat Group QR\" /\u003e | \u003cimg src=\"images/qq-group.png\" width=\"200\" height=\"200\" alt=\"QQ Group QR\" /\u003e | \u003cimg src=\"images/wechat-author.png\" width=\"200\" height=\"200\" alt=\"Author WeChat\" /\u003e |\n| Scan to join WeChat group | QQ Group: `1076926858` | WeChat ID: `adnaan_worker` |\n\n\u003e 💡 For issues or suggestions, submit them on [Gitee Issues](https://gitee.com/adnaan/adnify/issues) or [Github Issues](https://github.com/adnaan-worker/adnify/issues)\n\n---\n\n📋 **[View Full Changelog →](CHANGELOG.md)**\n\n---\n\n## Table of Contents\n\n- [Architecture Design](#-architecture-design)\n- [Core Features](#-core-features)\n- [Unique Advantages](#-unique-advantages-vs-cursorwindsurfclaude-code)\n- [Quick Start](#-quick-start)\n- [Brand Assets](#-brand-assets)\n- [Feature Details](#-feature-details)\n- [Keyboard Shortcuts](#-keyboard-shortcuts)\n- [Project Structure](#-project-structure)\n- [Contributing](#-contributing--feedback)\n\n---\n\n## 🏗 Architecture Design\n\nAdnify adopts Electron multi-process architecture combined with Web Workers and Node.js Worker Threads for high-performance concurrent processing.\n\n\u003cdiv align=\"center\"\u003e\n\n\u003c!-- Architecture Diagram - Rendered by Mermaid.ink --\u003e\n[![Adnify Architecture Diagram](https://mermaid.ink/img/pako:eNqVWFtvG0UU_iur5QVEEtlxYsd-QEqc0BrFjdVNKWLTh8nueL10vWvtJYqJKhVKES1UqkTLAxelrUCKQBQVEFQEKX-m9tJ_wZnbenY9S4kfds7M983MmTNnzjnykW4FNtZbuhOi0UDb3djzNfhFyT4b2NPTByfTz_5MH37x8rsnk2cfa1c62jYa43BPZ1Tyu9IxL2NkxVo7GI4CH_txdG2GdgMfWYHJGm3LduMglOD3dnE4NOlXIx_XR54EtwcohvVJo_WQjwWGfXvPn9N2-vzX6fGX_5x9k558rl0GDg5xqPXCwMJRJKsszVnvaOsO6KxNHz2fnN2SWeRHsXYQYpOxiHgtT9k6AGAjiUwqaCAVCLtB4F3GjhvF4dgkHU30FMStQ2wlYKOIMbOuRKWHFx3lodK7f0xvfpQ-fZze_1R5IiOeHYnKxTPRe2IsJitpVzqMAm5RhF-t5OTOvfSnX6bf3pvcfVxUkrhC1wlN4RJaF_nIwWFh_22j1_ZcOIQJksbEAuVqEF6PRsjCZLmsU7Ie8WAPx27gGweWOetpBg4PXOt852PWnfx8P_3tND09Lh6xHfgxPoxN3v6HRiF4LyhhSnIJu4uHAfgYaxRKk5_BV-NtCWtrGJCDm7zVjHEU4-G5zn8V71Pr4zDS0r_O4E1Onz2at8JwlMSY8Uze49O0HryA4glpHOHLiqiyjXwnAXOI7YrPyuDL745H2LBCdxRzZoH4jrFziVOJqCa1DbEcSGrKxd3uNucQcZ6UGU8dxzq9tvby5tcvzh6TmEt6G6FrO1g2HozS8ywaqI8p5yLybW92evXSL56f8vjYRa7_itg4eXpncvsEdCjemgFBKXTjsSkEuBc78YpO9Lbr4asotgZgCCJrvFOgrScQYbYDx6SCBpKjtlapq7HYrQ4lEBnI0ycBQv1oOpAnDsl7p4LrOyVPotumC0FTFo22u2DPw7EJgkal8wXt359M_n5YEiwGic8eiI1FZ-7F7mMbMp4phAL-LrYgRG9umK_Dc7Hw5sYb59LuEuy89EEknubuIMTIjop6UhNy16cyUMu9v3Qzclnpg2PIYXOJwSCXk3vLhXP2xqHrDGKzN44HgV8ALwQjLzIvBIXhnRi8EjY1q5U3s2hyvpRL3EKtMiA8SRGOMkkBsJ7EA3OHfInrHLjzFwgkdnaoNA5jHNK0CCvywf8fXibff_Xy1gl7LVq2FHf63JXujLC_3jFZI5dlHkpsqB_8eBAGI9eSoAsYErYLJg6cXDzYxHhkYHzdFIKE7XgeGiKTNfPhC6qLxcW3pMKFDfPgTyCpXJnDchmDoazcJCCvM9gwKzZne7Wz5dg3G2RTpaqO4fJIRskKONUaPPerIFFVctV4kcAmZWWAaiJL_irEkCfJdhJZmurMs1sZPsuRZYwsQZYRZulRVqV4xKwqEPCs-CmhSGemrqC6ydyVUAKkTgZlxWR-mLtIflCuKvNIroTMQ-xLUjW7DZY62WiWSAnEUpYCEKlKAUm5VoGKFKtShOW1_JhIZTk-33ymiWx8aYDdD0tSalCkKIaKHoVEmpJ3Zvbg7snC3RzAw_7cOI34c6Mi4OfeQjuDs5CtQkiMzsYlj5nF55zu3JJsWxpIFQALqAqAhVMFIMKoahcaR2UlRBW_uDS9dTs9_XH6yXF6_MNS_nnwPBGPoVCbBY6-63mt1-r1BsZIZmTuxQiN-so-WpYJmbswQr_SrPX3ZQK_Dgav9JHVxzlYHIkTarjZyM3nt8KXR41KM6egcCRBwLi6UpEJwigc79f3m7aM5yIMZ6E1bOftkA9vYi-7jmtzxsitZFXtvrWiL-gOlPZ6Kw4TvKAPIdYg0tWPyOw9Hdx0CGV_C0SPujck5xswaYT894NgKOaFQeIM9FYfeRH0kpGNYrzpIkj4Mwr9O6QdJH6st5prdAm9daQf6q1FMMzqUnV5rbFWrdYb1dXqyoI-JuPVylKlsVxrNpYb9bV6bbVxY0H_kO67vFRbra2sVlZrdQCb0C7omGbhLvtLyQr8vuvoN_4Fg7nCFQ?type=png)](https://mermaid.live/edit#pako:eNqVWFtvG0UU_iur5QVEEtlxYsd-QEqc0BrFjdVNKWLTh8nueL10vWvtJYqJKhVKES1UqkTLAxelrUCKQBQVEFQEKX-m9tJ_wZnbenY9S4kfds7M983MmTNnzjnykW4FNtZbuhOi0UDb3djzNfhFyT4b2NPTByfTz_5MH37x8rsnk2cfa1c62jYa43BPZ1Tyu9IxL2NkxVo7GI4CH_txdG2GdgMfWYHJGm3LduMglOD3dnE4NOlXIx_XR54EtwcohvVJo_WQjwWGfXvPn9N2-vzX6fGX_5x9k558rl0GDg5xqPXCwMJRJKsszVnvaOsO6KxNHz2fnN2SWeRHsXYQYpOxiHgtT9k6AGAjiUwqaCAVCLtB4F3GjhvF4dgkHU30FMStQ2wlYKOIMbOuRKWHFx3lodK7f0xvfpQ-fZze_1R5IiOeHYnKxTPRe2IsJitpVzqMAm5RhF-t5OTOvfSnX6bf3pvcfVxUkrhC1wlN4RJaF_nIwWFh_22j1_ZcOIQJksbEAuVqEF6PRsjCZLmsU7Ie8WAPx27gGweWOetpBg4PXOt852PWnfx8P_3tND09Lh6xHfgxPoxN3v6HRiF4LyhhSnIJu4uHAfgYaxRKk5_BV-NtCWtrGJCDm7zVjHEU4-G5zn8V71Pr4zDS0r_O4E1Onz2at8JwlMSY8Uze49O0HryA4glpHOHLiqiyjXwnAXOI7YrPyuDL745H2LBCdxRzZoH4jrFziVOJqCa1DbEcSGrKxd3uNucQcZ6UGU8dxzq9tvby5tcvzh6TmEt6G6FrO1g2HozS8ywaqI8p5yLybW92evXSL56f8vjYRa7_itg4eXpncvsEdCjemgFBKXTjsSkEuBc78YpO9Lbr4asotgZgCCJrvFOgrScQYbYDx6SCBpKjtlapq7HYrQ4lEBnI0ycBQv1oOpAnDsl7p4LrOyVPotumC0FTFo22u2DPw7EJgkal8wXt359M_n5YEiwGic8eiI1FZ-7F7mMbMp4phAL-LrYgRG9umK_Dc7Hw5sYb59LuEuy89EEknubuIMTIjop6UhNy16cyUMu9v3Qzclnpg2PIYXOJwSCXk3vLhXP2xqHrDGKzN44HgV8ALwQjLzIvBIXhnRi8EjY1q5U3s2hyvpRL3EKtMiA8SRGOMkkBsJ7EA3OHfInrHLjzFwgkdnaoNA5jHNK0CCvywf8fXibff_Xy1gl7LVq2FHf63JXujLC_3jFZI5dlHkpsqB_8eBAGI9eSoAsYErYLJg6cXDzYxHhkYHzdFIKE7XgeGiKTNfPhC6qLxcW3pMKFDfPgTyCpXJnDchmDoazcJCCvM9gwKzZne7Wz5dg3G2RTpaqO4fJIRskKONUaPPerIFFVctV4kcAmZWWAaiJL_irEkCfJdhJZmurMs1sZPsuRZYwsQZYRZulRVqV4xKwqEPCs-CmhSGemrqC6ydyVUAKkTgZlxWR-mLtIflCuKvNIroTMQ-xLUjW7DZY62WiWSAnEUpYCEKlKAUm5VoGKFKtShOW1_JhIZTk-33ymiWx8aYDdD0tSalCkKIaKHoVEmpJ3Zvbg7snC3RzAw_7cOI34c6Mi4OfeQjuDs5CtQkiMzsYlj5nF55zu3JJsWxpIFQALqAqAhVMFIMKoahcaR2UlRBW_uDS9dTs9_XH6yXF6_MNS_nnwPBGPoVCbBY6-63mt1-r1BsZIZmTuxQiN-so-WpYJmbswQr_SrPX3ZQK_Dgav9JHVxzlYHIkTarjZyM3nt8KXR41KM6egcCRBwLi6UpEJwigc79f3m7aM5yIMZ6E1bOftkA9vYi-7jmtzxsitZFXtvrWiL-gOlPZ6Kw4TvKAPIdYg0tWPyOw9Hdx0CGV_C0SPujck5xswaYT894NgKOaFQeIM9FYfeRH0kpGNYrzpIkj4Mwr9O6QdJH6st5prdAm9daQf6q1FMMzqUnV5rbFWrdYb1dXqyoI-JuPVylKlsVxrNpYb9bV6bbVxY0H_kO67vFRbra2sVlZrdQCb0C7omGbhLvtLyQr8vuvoN_4Fg7nCFQ?type=png)\n\n\u003cp\u003e\u003cem\u003eMulti-process + multi-thread architecture, fully utilizing multi-core CPUs for smooth UI responsiveness\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e💡 \u003cstrong\u003eClick image to view and edit complete architecture diagram in Mermaid Live Editor\u003c/strong\u003e\u003c/p\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e📊 Click to view Mermaid source code (editable at \u003ca href=\"https://mermaid.live/\"\u003eMermaid Live\u003c/a\u003e)\u003c/summary\u003e\n\n```mermaid\ngraph TB\n    subgraph \"User Interface Layer\"\n        UI[React Components]\n        Monaco[Monaco Editor]\n        XTerm[XTerm Terminal]\n        ChatUI[Chat Panel]\n    end\n\n    subgraph \"Renderer Process\"\n        subgraph \"AI Agent Core\"\n            AgentCore[Agent Core]\n            EventBus[Event Bus]\n            ToolRegistry[Tool Registry]\n            ToolExecutors[Tool Executors]\n        end\n        \n        subgraph \"State Management\"\n            AgentStore[Agent Store]\n            EditorStore[Editor Store]\n            UIStore[UI Store]\n        end\n        \n        subgraph \"Frontend Services\"\n            TermMgr[Terminal Manager]\n            LSPClient[LSP Client]\n            WorkspaceMgr[Workspace Manager]\n            CompletionSvc[Completion Service]\n        end\n        \n        subgraph \"Agent Subsystems\"\n            Context[Context Manager]\n            Compression[Compression Manager]\n            Memory[Memory Service]\n            Session[Session Service]\n            Emotion[Emotion System]\n        end\n        \n        subgraph \"Web Workers Thread Pool\"\n            ComputeWorker[Compute Worker Pool]\n            MonacoWorkers[Monaco Language Workers]\n            TSWorker[TypeScript Worker]\n            JSONWorker[JSON Worker]\n            CSSWorker[CSS Worker]\n            HTMLWorker[HTML Worker]\n        end\n    end\n\n    subgraph \"IPC Communication Layer\"\n        IPC[Type-Safe IPC Handlers]\n    end\n\n    subgraph \"Main Process\"\n        subgraph \"Security Layer\"\n            Security[Security Module]\n            FileWatcher[File Watcher]\n            AuditLog[Audit Logger]\n        end\n        \n        subgraph \"Core Services\"\n            LSPMgr[LSP Manager]\n            IndexSvc[Indexing Service]\n            MCPMgr[MCP Manager]\n            LLMProxy[LLM Proxy]\n        end\n        \n        subgraph \"Indexing System\"\n            Chunker[Code Chunker]\n            Embedder[Embedder]\n            VectorDB[(LanceDB)]\n        end\n        \n        subgraph \"Node.js Worker Threads\"\n            IndexWorker[Indexer Worker]\n        end\n        \n        subgraph \"LSP Ecosystem\"\n            TSServer[TypeScript]\n            Pyright[Python]\n            Gopls[Go]\n            OtherLSP[10+ Languages]\n        end\n        \n        subgraph \"MCP Ecosystem\"\n            MCPClient[MCP Client]\n            MCPAuth[OAuth Provider]\n            MCPServers[External MCP Servers]\n        end\n    end\n\n    subgraph \"External Services\"\n        OpenAI[OpenAI]\n        Claude[Anthropic]\n        Gemini[Google]\n        DeepSeek[DeepSeek]\n        Ollama[Ollama]\n    end\n\n    UI --\u003e AgentStore\n    Monaco --\u003e EditorStore\n    Monaco --\u003e MonacoWorkers\n    XTerm --\u003e TermMgr\n    ChatUI --\u003e AgentCore\n    \n    AgentCore --\u003e ToolRegistry\n    ToolRegistry --\u003e ToolExecutors\n    AgentCore --\u003e Context\n    AgentCore --\u003e EventBus\n    Context --\u003e Compression\n    AgentCore --\u003e Memory\n    AgentCore --\u003e Session\n    \n    MonacoWorkers --\u003e TSWorker\n    MonacoWorkers --\u003e JSONWorker\n    MonacoWorkers --\u003e CSSWorker\n    MonacoWorkers --\u003e HTMLWorker\n    \n    Context --\u003e ComputeWorker\n    Compression --\u003e ComputeWorker\n    \n    AgentStore --\u003e AgentCore\n    ToolExecutors --\u003e IPC\n    LSPClient --\u003e IPC\n    TermMgr --\u003e IPC\n    WorkspaceMgr --\u003e IPC\n    CompletionSvc --\u003e IPC\n    \n    IPC --\u003e Security\n    Security --\u003e LSPMgr\n    Security --\u003e IndexSvc\n    Security --\u003e FileWatcher\n    Security --\u003e AuditLog\n    \n    IPC --\u003e MCPMgr\n    IPC --\u003e LLMProxy\n    \n    IndexSvc --\u003e IndexWorker\n    IndexWorker --\u003e Chunker\n    IndexWorker --\u003e Embedder\n    Embedder --\u003e VectorDB\n    \n    LSPMgr --\u003e TSServer\n    LSPMgr --\u003e Pyright\n    LSPMgr --\u003e Gopls\n    LSPMgr --\u003e OtherLSP\n    \n    MCPMgr --\u003e MCPClient\n    MCPMgr --\u003e MCPAuth\n    MCPClient --\u003e MCPServers\n    \n    LLMProxy --\u003e OpenAI\n    LLMProxy --\u003e Claude\n    LLMProxy --\u003e Gemini\n    LLMProxy --\u003e DeepSeek\n    LLMProxy --\u003e Ollama\n    \n    Emotion -.emotion awareness.-\u003e AgentCore\n\n    style AgentCore fill:#667eea\n    style Security fill:#764ba2\n    style IndexSvc fill:#f093fb\n    style LSPMgr fill:#4facfe\n    style LLMProxy fill:#43e97b\n    style MCPMgr fill:#fa709a\n    style VectorDB fill:#fee140\n    style Emotion fill:#ff6b9d\n    style ComputeWorker fill:#a8edea\n    style MonacoWorkers fill:#fed6e3\n    style IndexWorker fill:#c1dfc4\n```\n\n\u003c/details\u003e\n\n\u003c/div\u003e\n\n### Core Module Overview\n\n**Renderer Process (Frontend)**\n- **Agent Core**: AI agent core, coordinates message flow, tool execution, and context management\n- **Tool Registry**: Tool registry, manages 23+ built-in tools' definitions, validation, and execution\n- **Context Manager**: Context manager, supports 4-level compression and Handoff document generation\n- **Event Bus**: Event bus, decouples inter-module communication\n- **Emotion System**: Emotion system, real-time user state awareness with intelligent suggestions\n- **Agent Store**: Zustand state management, persists conversation history, branches, and checkpoints\n- **Frontend Services**: Terminal management, LSP client, workspace management, code completion\n\n**Web Workers (Renderer Process Thread Pool)**\n- **Compute Worker Pool**: Handles CPU-intensive tasks like Diff computation and text search\n- **Monaco Language Workers**: Monaco editor's language service workers\n  - TypeScript/JavaScript Worker: Syntax highlighting, code completion\n  - JSON Worker: JSON formatting, validation\n  - CSS Worker: CSS syntax analysis\n  - HTML Worker: HTML syntax analysis\n\n**Main Process (Backend)**\n- **Security Module**: Security module with workspace isolation, path validation, command whitelist, and audit logging\n- **LSP Manager**: Language server management, intelligent project root detection, supports 10+ languages\n- **Indexing Service**: Codebase indexing with Tree-sitter parsing, semantic chunking, and vector storage\n- **MCP Manager**: MCP protocol management, supports external tools, OAuth authentication, and config hot-reload\n- **LLM Proxy**: LLM proxy layer, unified interface for multiple AI service providers with streaming response handling\n\n**Node.js Worker Threads (Main Process Thread Pool)**\n- **Indexer Worker**: Dedicated thread for code indexing, prevents blocking main process\n  - Code chunking\n  - Embedding generation\n  - Vector store updates\n\n**Communication Layer**\n- **IPC Bridge**: Type-safe inter-process communication, all main process features exposed via IPC\n\n**External Integration**\n- **Multi-LLM Support**: OpenAI, Claude, Gemini, DeepSeek, Ollama, and custom APIs\n- **MCP Ecosystem**: Extensible external tools and services, supports community plugins\n\n### Concurrency Advantages\n\n**Multi-Process Isolation**\n- Renderer process crashes don't affect main process\n- Main process handles heavy tasks: file system, LSP, indexing\n- Secure inter-process communication via IPC\n\n**Multi-Thread Parallelism**\n- Web Workers handle frontend compute-intensive tasks (Diff, search)\n- Monaco Workers independently handle language services without blocking UI\n- Node.js Worker Threads handle code indexing, supporting large projects\n\n**Performance Optimization**\n- UI thread always remains responsive\n- Fully utilizes multi-core CPUs\n- Large file operations without freezing\n\n---\n\n## ✨ Core Features\n\n### 🎨 Stunning Visual Experience\n\n- **Multi-Theme Support**: 4 carefully designed built-in themes\n  - `Adnify Dark` - Default dark theme, soft and eye-friendly\n  - `Midnight` - Deep midnight blue, focused coding\n  - `Cyberpunk` - Neon cyberpunk style\n  - `Dawn` - Bright daytime theme\n\n- **Glassmorphism Design**: Global frosted glass style with subtle glowing borders and dynamic shadows\n- **Immersive Layout**: Frameless window, Chrome-style tabs, breadcrumb navigation\n\n![alt text](images/theme1.png)\n![alt text](images/theme2.png)\n![alt text](images/theme3.png)\n![alt text](images/theme4.png)\n\n### 🤖 Deep AI Agent Integration\n\n- **Three Core Working Modes**:\n  - **Chat Mode** 💬: Pure conversation mode for quick Q\u0026A and code discussions, direct responses without active tool calls\n  - **Agent Mode** 🤖: Intelligent agent mode with single-thread task focus, full file system read/write and terminal execution permissions, ideal for clear development tasks\n  - **Plan Mode** 🧠: **[NEW]** Task orchestration mode supporting multi-turn interactive requirement gathering, automatically creates deep step-by-step execution plans, decomposes complex tasks into multiple sub-tasks with parallel/serial execution, supports task dependency management and progress tracking\n\n- **24+ Built-in Native Core Tools**: Building a universal foundation allowing AI to fully take over projects\n  - 📂 **File System Management**: `read_file` (supports single/batch file reading), `list_directory` (supports recursive traversal)\n  - ✍️ **Smart Code Editing**: `edit_file` (9-strategy intelligent matching), `write_file`, `create_file_or_folder`, `delete_file_or_folder`\n  - 🔎 **Full-scale Search Engine**: `search_files` (ultra-fast regex scan, supports | pattern combination), `codebase_search` (LanceDB vector semantic insight)\n  - 🧠 **Language Service (LSP)**: `find_references`, `go_to_definition`, `get_hover_info`, `get_document_symbols`, `get_lint_errors` (supports force refresh)\n  - 💻 **Sandbox Terminal Control**: `run_command` (supports background execution), `read_terminal_output`, `send_terminal_input` (supports Ctrl key combinations), `stop_terminal`\n  - 🌐 **Knowledge Networking**: `web_search` (multi-strategy fusion), `read_url` (Jina deep parsing)\n  - 🤝 **Human-like Interaction**: `ask_user` (supports manual approval and confirmation)\n  - ✨ **Task Planning System**: `create_task_plan`, `update_task_plan`, `start_task_execution` (supports task dependencies and parallel execution)\n  - 🎨 **UI/UX Design Search**: `uiux_search` (global design aesthetics knowledge base and industry best practices)\n  - 💾 **Project Memory Management**: `read_memory`, `write_memory` (supports manual approval mechanism)\n\n- **Smart Context References**:\n  - `@filename` - Reference file context with fuzzy matching support\n  - `@codebase` - Semantic codebase search based on AI Embedding\n  - `@git` - Reference Git changes, auto-fetch diff info\n  - `@terminal` - Reference terminal output for quick error analysis\n  - `@symbols` - Reference current file symbols, quick navigation to functions/classes\n  - `@web` - Web search for latest technical documentation\n  - Drag \u0026 drop files/folders to chat for batch context addition\n\n- **Seamless Multi-LLM Switching**: \n  - Supports OpenAI (GPT-4, GPT-4o, o1 series)\n  - Anthropic Claude (Claude 3.5 Sonnet, Claude 3.7)\n  - Google Gemini (Gemini 2.0, Gemini 1.5 Pro)\n  - DeepSeek (DeepSeek-V3, DeepSeek-R1 with thinking process visualization)\n  - Ollama (local models)\n  - Custom API (OpenAI-compatible format)\n  \n- **Quick Model Switching**: Dropdown selector at bottom of chat panel, grouped by provider, one-click model switching with custom model parameters\n\n- **⚡ Skills System**: \n  - Plugin-based system based on agentskills.io standard\n  - Search and install community skill packages from skills.sh marketplace\n  - Direct installation from GitHub repositories\n  - Supports project-level and global-level skills, project-level overrides global\n  - Supports Auto mode (AI auto-determines loading) and Manual mode (requires @skill-name reference)\n  - Skill packages support YAML frontmatter metadata configuration\n\n- **🔌 Deep MCP Protocol Integration**: \n  - Full implementation of Model Context Protocol standard\n  - Supports external tools, resources, and prompt extensions\n  - Built-in OAuth 2.0 authentication flow for third-party service authorization\n  - Config hot-reload without restart for MCP server updates\n  - Supports multi-workspace config merging with priority management\n  - Built-in MCP Registry search for one-click official plugin installation\n\n- **💾 AI Memory \u0026 Approval**: \n  - Project-level memory storage supporting long-term and short-term memory\n  - Manual approval mechanism for AI-written memories to prevent misinformation\n  - Automatic memory categorization and indexing with semantic search\n  - Supports memory export/import for team knowledge sharing\n\n- **🎨 Enhanced Response Preview**: \n  - Tool execution results support rich rendering: Markdown, code highlighting, images, tables\n  - Fluid typewriter animation with real-time AI content generation\n  - Supports collapse/expand for long content, optimized reading experience\n  - Thinking process visualization (DeepSeek-R1, Claude 3.7 reasoning models)\n\n- **🪵 Eye Style Log System**: \n  - Redesigned color-highlighted log system\n  - Separate Main/Renderer process logs for clear debugging\n  - Supports log level filtering (Debug, Info, Warn, Error)\n  - Real-time log streaming without refresh\n\n- **🎭 Emotion Awareness System**: \n  - Real-time detection of user coding state (focused, confused, fatigued, etc.)\n  - Multi-dimensional analysis based on keyboard/mouse behavior and code context\n  - Intelligent suggestions for break times and task switching\n  - Personalized baseline learning adapting to different developer habits\n\n![alt text](images/tool.png)\n\n### 🚀 Unique Advantages (vs Cursor/Windsurf/Claude Code)\n\nAdnify builds upon mainstream AI editors with multiple innovative features:\n\n- **🔄 9-Strategy Smart Replace**: When AI edits code, 9 fault-tolerant matching strategies (exact match, whitespace normalization, flexible indentation, etc.) ensure successful modifications even with slight format differences, dramatically improving edit success rate\n\n- **⚡ Smart Parallel Tool Execution**: Dependency-aware parallel execution - independent reads run in parallel, writes on different files can parallelize, 2-5x speed improvement for multi-file operations\n\n- **🧠 4-Level Context Compression**: Progressive compression (remove redundancy → compress old messages → generate summary → Handoff document), supports truly long conversations without context overflow interruption\n\n- **📸 Checkpoint System**: Auto-creates snapshots before AI modifications, rollback by message granularity, more fine-grained version control than Git\n\n- **🌿 Conversation Branching**: Create branches from any message to explore different solutions, visual management, like Git branches but for AI conversations\n\n- **🔁 Smart Loop Detection**: Multi-dimensional detection of AI repetitive operations, auto-interrupt with suggestions, avoids token waste\n\n- **🩺 Auto Error Fix**: After Agent execution, automatically calls LSP to detect code errors, immediately fixes issues found\n\n- **💾 AI Memory System**: Project-level memory storage, lets AI remember project-specific conventions and preferences\n\n- **🎬 Streaming Edit Preview**: Real-time Diff display as AI generates code, preview changes as they're generated\n\n- **🎭 Role-based Tools**: Different roles have exclusive toolsets, frontend and backend developers can have different tool capabilities\n\n### 📝 Professional Code Editing\n\n- **Monaco Editor**: Same editor core as VS Code with complete editing features\n- **Multi-Language LSP Support**: TypeScript/JavaScript, Python, Go, Rust, C/C++, HTML/CSS/JSON, Vue, Zig, C#, and 10+ languages\n- **Complete LSP Features**: Intelligent completion, go to definition, find references, hover info, code diagnostics, formatting, rename, etc.\n- **Smart Root Detection**: Auto-detect monorepo sub-projects, start independent LSP for each\n- **AI Code Completion**: Context-based intelligent code suggestions (Ghost Text) with real-time AI suggestions\n- **Inline Edit (Ctrl+K)**: Let AI modify selected code directly without switching to chat panel\n- **Diff Preview**: Show diff comparison before AI modifies code, support accept/reject for each change\n- **🎼 Composer Mode (Ctrl+Shift+I)**: \n  - Multi-file editing mode similar to Cursor Composer\n  - Edit multiple files simultaneously with unified preview of all changes\n  - Changes grouped by directory, one-click accept/reject all modifications\n  - Deep integration with Agent, AI-generated multi-file changes automatically enter Composer\n- **🐛 Built-in Debugger**: \n  - VSCode-like debugging experience supporting Node.js and browser debugging\n  - Breakpoint management, variable inspection, call stack, console output\n  - Supports DAP (Debug Adapter Protocol)\n  - Visual debugging interface without leaving the editor\n\n![text](images/editor.png)\n\n### 🔍 Powerful Search \u0026 Tools\n\n- **Quick Open (Ctrl+P)**: Fuzzy search to quickly locate files with path matching support\n- **Global Search (Ctrl+Shift+F)**: Support regex, case-sensitive, whole word match with real-time results\n- **Semantic Search**: AI Embedding-based codebase semantic search understanding code meaning\n- **Hybrid Search**: Combines semantic and keyword search, uses RRF algorithm to merge results\n- **Integrated Terminal**: \n  - Based on xterm.js + node-pty, supports multiple shells (PowerShell, CMD, Bash, Zsh)\n  - Supports split view, multiple tabs, terminal reuse\n  - AI error analysis and fix suggestions\n  - 🌐 **Remote SSH Terminal**: Built-in native SSH client for direct remote server connection with key authentication support\n  - Smart terminal output recognition (error highlighting, clickable links)\n- **Git Version Control**: \n  - Complete Git operation interface with change management, commit history, diff view\n  - Visual branch management and conflict resolution\n  - Supports Git subcommand whitelist for secure control\n- **File Management**: \n  - Virtualized rendering supports 10k+ files for smooth large project browsing\n  - Real-time Markdown preview, image preview\n  - File tree drag \u0026 drop, context menu\n- **Code Outline**: Show file symbol structure (functions, classes, variables) for quick navigation\n- **Problems Panel**: Real-time diagnostics showing errors and warnings with one-click jump\n\n![text](images/terminal.png)\n\n### 🔐 Security \u0026 Other Features\n\n**Security Features**\n- Workspace isolation, sensitive path protection (.ssh, .aws, .gnupg, etc.)\n- Command whitelist, Shell injection detection\n- Git subcommand whitelist, permission confirmation\n- Customizable security policies, audit logging\n\n**Multi-Window \u0026 Workspace**\n- Supports multiple windows for different projects simultaneously\n- Multi-workspace management with quick workspace switching\n- Automatic workspace state save and restore\n- Supports monorepo multi-root workspaces\n\n**Other Features**\n- Command Palette (Ctrl+Shift+P) for quick access to all features\n- Session management with persistent conversation history\n- Token statistics with real-time consumption display\n- Complete Chinese and English support with automatic system language detection\n- Custom shortcuts supporting VSCode-style keybindings\n- Onboarding wizard for beginner-friendly experience\n- Tree-sitter parsing for 20+ languages with precise code analysis\n- Auto-update with silent download of new versions\n\n---\n\n## 🚀 Quick Start\n\n### Requirements\n\n- Node.js \u003e= 18\n- Git\n- Python (optional, for compiling certain npm packages)\n\n### Development Environment\n\n```bash\n# 1. Clone project\ngit clone https://gitee.com/adnaan/adnify.git\ncd adnify\n\n# 2. Install dependencies\nnpm install\n\n# 3. Start dev server\nnpm run dev\n```\n\n### Build \u0026 Package\n\n```bash\n# 1. Replace brand assets\n# Put them under public/brand/:\n# icons/ app icons, logos/ in-app logos, ip/ character assets, welcome/ splash/welcome assets\n\n# 2. Build installer\nnpm run dist\n\n# Generated files in release/ directory\n```\n\n---\n\n## 🎭 Brand Assets\n\nAdnify keeps its brand resources in `public/brand/`. The README hero, welcome screens, app icons, and assistant IP assets all reference this folder, so future brand replacements stay in one predictable place.\n\n\u003cdiv align=\"center\"\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" width=\"33%\"\u003e\n        \u003cimg src=\"public/brand/logos/app.png\" alt=\"Adnify dark logo\" width=\"120\" /\u003e\n        \u003cbr /\u003e\n        \u003cstrong\u003eDark Logo\u003c/strong\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" width=\"33%\"\u003e\n        \u003cimg src=\"public/brand/logos/app-light.png\" alt=\"Adnify light logo\" width=\"120\" /\u003e\n        \u003cbr /\u003e\n        \u003cstrong\u003eLight Logo\u003c/strong\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" width=\"33%\"\u003e\n        \u003cimg src=\"public/brand/icons/sizes/app/128.png\" alt=\"Adnify app icon\" width=\"96\" /\u003e\n        \u003cbr /\u003e\n        \u003cstrong\u003eApp Icon\u003c/strong\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"public/brand/ip/1.png\" alt=\"Adnify IP asset 1\" width=\"120\" /\u003e\n  \u003cimg src=\"public/brand/ip/2.png\" alt=\"Adnify IP asset 2\" width=\"120\" /\u003e\n  \u003cimg src=\"public/brand/ip/3.png\" alt=\"Adnify IP asset 3\" width=\"120\" /\u003e\n  \u003cimg src=\"public/brand/ip/4.png\" alt=\"Adnify IP asset 4\" width=\"120\" /\u003e\n  \u003cimg src=\"public/brand/ip/5.png\" alt=\"Adnify IP asset 5\" width=\"120\" /\u003e\n  \u003cimg src=\"public/brand/ip/6.png\" alt=\"Adnify IP asset 6\" width=\"120\" /\u003e\n\u003c/div\u003e\n\n| Folder | Purpose | Notes |\n|:---|:---|:---|\n| `public/brand/logos/` | In-app logos | `app.png` for dark surfaces, `app-light.png` for light surfaces |\n| `public/brand/icons/` | System and platform icons | Windows `.ico`, macOS `.icns`, Linux `.png`, and generated multi-size PNG outputs |\n| `public/brand/ip/` | AI assistant and IP assets | Static IP images plus `ai-avatar.gif` for README, welcome screens, and assistant identity |\n| `public/brand/welcome/` | Welcome visuals | `dark.webp` and `light.webp` for dark/light theme presentation |\n\nIcons are generated from `public/brand/logos/*.png`. After replacing the logo source files, run:\n\n```bash\nnpm run assets:icons\n```\n\nSee [public/brand/README.md](public/brand/README.md) for more details.\n\n---\n\n## 📖 Feature Details\n\n### Configure AI Model\n\n1. Click settings icon in bottom-left or press `Ctrl+,`\n2. Select AI provider in Provider tab and enter API Key\n3. Select model and save\n\nSupports OpenAI, Anthropic, Google, DeepSeek, Ollama, and custom APIs\n\n### Collaborate with AI\n\n**Context References**: Type `@` to select files, or use `@codebase`, `@git`, `@terminal`, `@symbols`, `@web` for special references\n\n**Slash Commands**: `/file`, `/clear`, `/chat`, `/agent` and other quick commands\n\n**Code Modification**: Switch to Agent Mode, enter instruction, AI generates Diff preview then accept or reject\n\n**Inline Edit**: Select code and press `Ctrl+K`, enter modification instruction\n\n### Codebase Indexing\n\nOpen Settings → Index tab, select Embedding provider (recommend Jina AI), configure API Key and start indexing. After completion, AI can use semantic search.\n\n### Using Plan Mode\n\nSwitch to Plan Mode and engage in multi-turn conversations with the AI to clarify requirements. The AI will automatically create an in-depth step-by-step execution plan, decomposing complex tasks into multiple sub-tasks and managing dependencies and execution order.\n\n![Plan Mode](images/orchestrator.png)\n\n### ⚡ Skills System Usage\n\nSkills are instruction packages that give AI specialized capabilities (e.g., optimization for specific frameworks, complex test writing).\n\n1. **Browse \u0026 Install**:\n   - Open Settings → **Skills** tab.\n   - **Search Market**: Click \"Search Market\" to find community-contributed skills on `skills.sh`.\n   - **GitHub Install**: Enter a GitHub repo URL containing a `SKILL.md` file to clone it directly.\n   - **Create Manually**: Create an exclusive skill for the current project and edit the generated `SKILL.md` template.\n2. **How it Works**:\n   - Enabled skills are automatically injected into the AI's System Prompt.\n   - When a task touches on the skill's domain, the AI will automatically follow the expert instructions in the skill package.\n3. **Management**:\n   - You can enable/disable specific skills in settings at any time, or click the \"Folder\" icon to edit the skill's source code directly.\n\n---\n\n## ⌨️ Keyboard Shortcuts\n\n| Category | Shortcut | Function |\n|:---|:---|:---|\n| **General** | `Ctrl + P` | Quick open file |\n| | `Ctrl + Shift + P` | Command palette |\n| | `Ctrl + ,` | Open settings |\n| | `Ctrl + B` | Toggle sidebar |\n| **Editor** | `Ctrl + S` | Save file |\n| | `Ctrl + K` | Inline AI edit |\n| | `Ctrl + Shift + I` | Open Composer multi-file edit |\n| | `F12` | Go to definition |\n| | `Shift + F12` | Find references |\n| **Search** | `Ctrl + F` | In-file search |\n| | `Ctrl + Shift + F` | Global search |\n| **AI Chat** | `Enter` | Send message |\n| | `Shift + Enter` | New line |\n| | `@` | Reference context |\n| | `/` | Slash commands |\n| **Other** | `Escape` | Close panel/dialog |\n| | `F5` | Start debugging |\n\n**Work Modes**: Chat 💬 (pure conversation) / Agent 🤖 (single task agent) / Plan 🧠 (task orchestration)\n\n---\n\n## 📂 Project Structure\n\n```\nadnify/\n├── resources/           # Icon resources\n├── scripts/             # Build scripts\n├── src/\n│   ├── main/            # Electron main process\n│   │   ├── ipc/         # IPC unified security intercept layer\n│   │   ├── lsp/         # LSP service gateway and lifecycle governance\n│   │   ├── memory/      # AI memory pool and multi-level caching engine\n│   │   ├── security/    # Sandbox isolation and terminal whitelist defense net\n│   │   ├── indexing/    # Global codebase parsing chain (Chunker, Embedding, LanceDB)\n│   │   └── services/    # Core main stack subsystems\n│   │       ├── agent/   # Agent log analysis and auto-correction\n│   │       ├── debugger/# Node/VSCode protocol deep debugging core\n│   │       ├── llm/     # LLM dynamic distribution gateway (routing, proxies)\n│   │       ├── mcp/     # Model Context Protocol backend registry and auth\n│   │       └── updater/ # Highly controllable silent updater module\n│   ├── renderer/        # Frontend render process\n│   │   ├── agent/       # Client AI brain core (engine queue, tools, instruction flow)\n│   │   ├── components/  # Fully decoupled, modular UI component blocks\n│   │   │   ├── editor/  # Editor components\n│   │   │   ├── sidebar/ # Sidebar components\n│   │   │   ├── panels/  # Bottom panels\n│   │   │   ├── dialogs/ # Dialogs\n│   │   │   └── settings/# Settings components\n│   │   ├── modes/       # Multi-mode state machines (Chat, Agent, Plan)\n│   │   ├── services/    # Frontend services\n│   │   │   └── TerminalManager.ts # Terminal manager\n│   │   ├── store/       # Zustand state management\n│   │   └── i18n/        # Internationalization\n│   └── shared/          # Shared code\n│       ├── config/      # Configuration definitions\n│       │   ├── providers.ts # LLM provider configs\n│       │   └── tools.ts     # Unified tool configs\n│       ├── constants/   # Constants\n│       └── types/       # Type definitions\n└── package.json\n```\n\n---\n\n## 🛠 Tech Stack\n\n- **Framework**: Electron 39 + React 18 + TypeScript 5\n- **Build**: Vite 6 + electron-builder\n- **Editor**: Monaco Editor\n- **Terminal**: xterm.js + node-pty + WebGL Addon\n- **State Management**: Zustand\n- **Styling**: Tailwind CSS\n- **LSP**: typescript-language-server\n- **Git**: dugite\n- **Vector Storage**: LanceDB (high-performance vector database)\n- **Code Parsing**: tree-sitter\n- **Validation**: Zod\n\n---\n\n## 👥 Contributors\n\nMany thanks to all the developers who have contributed to Adnify! You guys are the best 🎉\n\n\u003ca href=\"https://github.com/adnaan-worker\"\u003e\u003cimg src=\"https://github.com/adnaan-worker.png\" width=\"50\" height=\"50\" style=\"border-radius:50%\" alt=\"adnaan\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/kerwin2046\"\u003e\u003cimg src=\"https://github.com/kerwin2046.png\" width=\"50\" height=\"50\" style=\"border-radius:50%\" alt=\"kerwin\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/cniu6\"\u003e\u003cimg src=\"https://github.com/cniu6.png\" width=\"50\" height=\"50\" style=\"border-radius:50%\" alt=\"cniu6\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/tss-tss\"\u003e\u003cimg src=\"https://github.com/tss-tss.png\" width=\"50\" height=\"50\" style=\"border-radius:50%\" alt=\"晨曦\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/joanboss\"\u003e\u003cimg src=\"https://github.com/joanboss.png\" width=\"50\" height=\"50\" style=\"border-radius:50%\" alt=\"joanboss\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/yuheng-888\"\u003e\u003cimg src=\"https://github.com/yuheng-888.png\" width=\"50\" height=\"50\" style=\"border-radius:50%\" alt=\"玉衡\"/\u003e\u003c/a\u003e\n\n---\n\n## 🤝 Contributing \u0026 Feedback\n\nIssues and Pull Requests are welcome!\n\nIf you like this project, please give it a ⭐️ Star!\n\n---\n\n## 💖 Support the Project\n\nIf Adnify helps you, feel free to buy the author a coffee ☕️\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"images/donate-wechat.png\" alt=\"WeChat Donation QR Code\" width=\"300\" /\u003e\n  \u003cp\u003e\u003cem\u003eScan to support, thank you for your encouragement!\u003c/em\u003e\u003c/p\u003e\n\u003c/div\u003e\n\nYour support is my motivation to keep developing ❤️\n\n---\n\n## 📄 License\n\nThis project uses a custom license with main terms:\n\n**✅ Permitted Use**\n- Personal learning, research, non-commercial use\n- Personal development projects (not for external sale)\n\n**⚠️ Requires Written Authorization**\n- Team distribution and use (teams with more than 5 members)\n- Commercial use (including but not limited to: external sales, paid services, integration into commercial products)\n- Enterprise internal use (companies, organizations, legal entities)\n\n**❌ Strictly Prohibited**\n- Unauthorized modification and distribution or sale\n- Bundling into other products for sale\n- Removing or modifying software name, author copyright, repository address, etc.\n- Claiming as your own work or concealing original author information\n\n**📧 Authorization Request**\n- Commercial licensing contact: adnaan.worker@gmail.com\n- Team usage authorization contact: adnaan.worker@gmail.com\n- Please specify use case, team size, business model, etc.\n\nSee [LICENSE](LICENSE) file for details\n\n---\n\n## 🙋 Q\u0026A: About the License\n\n**Q: Why so many requirements in your license? Looks more complex than MIT?**\n\nA: Because I've been hurt before 😭\n\nSeriously, I've seen too many of these operations:\n- Fork an open-source project, change the name and skin, claim it's \"independently developed\"\n- Delete author info and repo address completely, as if the code appeared from nowhere\n- Sell it for money, take outsourcing projects, don't give the original author a penny, won't even give a star\n- Even worse, some use it as training materials, students think the teacher wrote it\n- Companies directly bundle it into their products for sale without mentioning the original author\n\nI'm not against commercialization, really. Want to use it commercially? Come on, send an email, maybe we can even collaborate. But sneakily erasing my name to make money? That's too much, right?\n\n**Q: Will I accidentally violate the rules if I use it for personal learning?**\n\nA: No! Personal learning, research, graduation projects, side projects—use it freely! As long as you:\n1. Don't delete my name and repo address\n2. Don't sell it or provide paid services\n3. Don't bundle it into other products for sale\n\nThat simple, I'm not trying to make things difficult 😊\n\n**Q: If I want to use it internally at my company/team, does that count as commercial use?**\n\nA: \n- **Small teams (≤5 people) internal use**: If it's a startup team or small studio internal tool, not sold externally, generally okay, but recommend sending an email to notify\n- **Company/large team use**: Requires written authorization, even for internal tools\n- **External services**: Regardless of team size, if providing paid services or selling products externally, commercial authorization is required\n\nIf unsure, send me an email, I'm easy to talk to (really). Authorization process is simple, fees are reasonable.\n\n**Q: Can I modify the code? Can I distribute it?**\n\nA: \n- **Personal modification**: Yes, but for personal use only\n- **Distribute modified version**: No, unless you get written authorization\n- **Contribute code**: Welcome to submit PRs to the official repository, this is encouraged!\n\n**Q: Why not just use GPL or MIT?**\n\nA: \n- **MIT is too permissive**: Allows anyone to use commercially freely, can't protect author's rights\n- **GPL is too strict**: Requires derivative works to also be open source, limits reasonable commercial cooperation\n- **Custom license**: Protects author's rights while allowing reasonable commercial cooperation, it's a balance\n\nMy license core is one thing: **You can use it, you can learn from it, but commercial use and team distribution require authorization, don't pretend you wrote it**.\n\nSimply put, open source isn't \"free for you to abuse,\" it's \"I'm willing to share, but please respect my work.\"\n\nIf you agree with this philosophy, welcome to star ⭐️, that's more important than anything.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadnaan-worker%2Fadnify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadnaan-worker%2Fadnify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadnaan-worker%2Fadnify/lists"}