@mseep/anything-analyzer 3.6.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/.codeartsdoer/.codebaseignore +0 -0
  2. package/.codeartsdoer/AGENTS.md +12 -0
  3. package/.github/workflows/build.yml +146 -0
  4. package/README.en.md +264 -0
  5. package/README.md +276 -0
  6. package/RELEASE_NOTES.md +16 -0
  7. package/USAGE.md +490 -0
  8. package/color-preview-r3.html +414 -0
  9. package/color-preview.html +414 -0
  10. package/dev-app-update.yml +3 -0
  11. package/electron-builder.yml +36 -0
  12. package/electron.vite.config.ts +40 -0
  13. package/package.json +53 -0
  14. package/report-2026-04-13-copilot-claude-sonnet-4.6.md +955 -0
  15. package/resources/doloffer-logo.png +0 -0
  16. package/resources/entitlements.mac.plist +12 -0
  17. package/resources/icon.ico +0 -0
  18. package/resources/icon.png +0 -0
  19. package/src/main/ai/ai-analyzer.ts +517 -0
  20. package/src/main/ai/crypto-script-extractor.ts +206 -0
  21. package/src/main/ai/data-assembler.ts +205 -0
  22. package/src/main/ai/llm-router.ts +1120 -0
  23. package/src/main/ai/prompt-builder.ts +349 -0
  24. package/src/main/ai/scene-detector.ts +302 -0
  25. package/src/main/capture/capture-engine.ts +130 -0
  26. package/src/main/capture/interaction-recorder.ts +171 -0
  27. package/src/main/capture/js-injector.ts +57 -0
  28. package/src/main/capture/replay-engine.ts +256 -0
  29. package/src/main/capture/storage-collector.ts +76 -0
  30. package/src/main/cdp/cdp-manager.ts +233 -0
  31. package/src/main/db/database.ts +41 -0
  32. package/src/main/db/migrations.ts +235 -0
  33. package/src/main/db/repositories.ts +574 -0
  34. package/src/main/fingerprint/http-spoofing.ts +48 -0
  35. package/src/main/fingerprint/presets.ts +173 -0
  36. package/src/main/fingerprint/profile-generator.ts +115 -0
  37. package/src/main/fingerprint/profile-store.ts +52 -0
  38. package/src/main/index.ts +260 -0
  39. package/src/main/ipc.ts +856 -0
  40. package/src/main/logger.ts +42 -0
  41. package/src/main/mcp/mcp-config.ts +66 -0
  42. package/src/main/mcp/mcp-manager.ts +155 -0
  43. package/src/main/mcp/mcp-server.ts +1038 -0
  44. package/src/main/prompt-templates.ts +170 -0
  45. package/src/main/proxy/ca-manager.ts +204 -0
  46. package/src/main/proxy/cert-download-page.ts +171 -0
  47. package/src/main/proxy/cert-installer.ts +242 -0
  48. package/src/main/proxy/mitm-proxy-config.ts +37 -0
  49. package/src/main/proxy/mitm-proxy-server.ts +1085 -0
  50. package/src/main/proxy/system-proxy.ts +248 -0
  51. package/src/main/session/session-manager.ts +724 -0
  52. package/src/main/tab-manager.ts +582 -0
  53. package/src/main/updater.ts +111 -0
  54. package/src/main/window.ts +235 -0
  55. package/src/preload/hook-script.ts +270 -0
  56. package/src/preload/index.ts +211 -0
  57. package/src/preload/interaction-hook.ts +286 -0
  58. package/src/preload/stealth-script.ts +302 -0
  59. package/src/preload/target-preload.ts +15 -0
  60. package/src/renderer/App.tsx +656 -0
  61. package/src/renderer/components/AiLogDetail.tsx +173 -0
  62. package/src/renderer/components/AiLogList.tsx +101 -0
  63. package/src/renderer/components/AiLogView.module.css +364 -0
  64. package/src/renderer/components/AiLogView.tsx +86 -0
  65. package/src/renderer/components/AnalyzeBar.module.css +79 -0
  66. package/src/renderer/components/AnalyzeBar.tsx +104 -0
  67. package/src/renderer/components/BrowserPanel.module.css +67 -0
  68. package/src/renderer/components/BrowserPanel.tsx +90 -0
  69. package/src/renderer/components/ControlBar.module.css +47 -0
  70. package/src/renderer/components/ControlBar.tsx +205 -0
  71. package/src/renderer/components/HookLog.tsx +132 -0
  72. package/src/renderer/components/InteractionLog.tsx +183 -0
  73. package/src/renderer/components/MCPServerModal.tsx +427 -0
  74. package/src/renderer/components/PromptTemplateModal.tsx +254 -0
  75. package/src/renderer/components/ReportView.module.css +413 -0
  76. package/src/renderer/components/ReportView.tsx +429 -0
  77. package/src/renderer/components/RequestDetail.module.css +191 -0
  78. package/src/renderer/components/RequestDetail.tsx +202 -0
  79. package/src/renderer/components/RequestLog.module.css +69 -0
  80. package/src/renderer/components/RequestLog.tsx +208 -0
  81. package/src/renderer/components/SessionList.module.css +245 -0
  82. package/src/renderer/components/SessionList.tsx +247 -0
  83. package/src/renderer/components/SettingsModal.tsx +100 -0
  84. package/src/renderer/components/StatusBar.module.css +44 -0
  85. package/src/renderer/components/StatusBar.tsx +102 -0
  86. package/src/renderer/components/StorageView.module.css +41 -0
  87. package/src/renderer/components/StorageView.tsx +178 -0
  88. package/src/renderer/components/TabBar.module.css +88 -0
  89. package/src/renderer/components/TabBar.tsx +70 -0
  90. package/src/renderer/components/Titlebar.module.css +254 -0
  91. package/src/renderer/components/Titlebar.tsx +169 -0
  92. package/src/renderer/components/settings/FingerprintSection.tsx +198 -0
  93. package/src/renderer/components/settings/GeneralSection.tsx +164 -0
  94. package/src/renderer/components/settings/LLMSection.tsx +148 -0
  95. package/src/renderer/components/settings/MCPServerSection.tsx +136 -0
  96. package/src/renderer/components/settings/MitmProxySection.tsx +320 -0
  97. package/src/renderer/components/settings/ProxySection.tsx +110 -0
  98. package/src/renderer/css-modules.d.ts +4 -0
  99. package/src/renderer/hooks/useCapture.ts +383 -0
  100. package/src/renderer/hooks/useConfirm.tsx +91 -0
  101. package/src/renderer/hooks/useSession.ts +136 -0
  102. package/src/renderer/hooks/useTabs.ts +103 -0
  103. package/src/renderer/i18n/en.ts +167 -0
  104. package/src/renderer/i18n/index.ts +47 -0
  105. package/src/renderer/i18n/zh.ts +170 -0
  106. package/src/renderer/index.html +12 -0
  107. package/src/renderer/main.tsx +15 -0
  108. package/src/renderer/styles/global.css +144 -0
  109. package/src/renderer/styles/themes/ayu-dark.css +59 -0
  110. package/src/renderer/styles/themes/catppuccin.css +59 -0
  111. package/src/renderer/styles/themes/discord.css +59 -0
  112. package/src/renderer/styles/themes/dracula.css +59 -0
  113. package/src/renderer/styles/themes/github-dark.css +59 -0
  114. package/src/renderer/styles/themes/gruvbox.css +59 -0
  115. package/src/renderer/styles/themes/index.css +11 -0
  116. package/src/renderer/styles/themes/light.css +59 -0
  117. package/src/renderer/styles/themes/nord.css +59 -0
  118. package/src/renderer/styles/themes/one-dark.css +59 -0
  119. package/src/renderer/styles/themes/tokyo-night.css +59 -0
  120. package/src/renderer/styles/tokens.css +137 -0
  121. package/src/renderer/theme.ts +31 -0
  122. package/src/renderer/ui/Badge.module.css +38 -0
  123. package/src/renderer/ui/Badge.tsx +36 -0
  124. package/src/renderer/ui/Button.module.css +142 -0
  125. package/src/renderer/ui/Button.tsx +46 -0
  126. package/src/renderer/ui/Collapse.module.css +49 -0
  127. package/src/renderer/ui/Collapse.tsx +57 -0
  128. package/src/renderer/ui/CopyableBlock.module.css +56 -0
  129. package/src/renderer/ui/CopyableBlock.tsx +42 -0
  130. package/src/renderer/ui/Empty.module.css +19 -0
  131. package/src/renderer/ui/Empty.tsx +34 -0
  132. package/src/renderer/ui/Icons.tsx +346 -0
  133. package/src/renderer/ui/Input.module.css +103 -0
  134. package/src/renderer/ui/Input.tsx +94 -0
  135. package/src/renderer/ui/InputNumber.module.css +68 -0
  136. package/src/renderer/ui/InputNumber.tsx +104 -0
  137. package/src/renderer/ui/Modal.module.css +83 -0
  138. package/src/renderer/ui/Modal.tsx +67 -0
  139. package/src/renderer/ui/Popconfirm.module.css +73 -0
  140. package/src/renderer/ui/Popconfirm.tsx +74 -0
  141. package/src/renderer/ui/Progress.module.css +35 -0
  142. package/src/renderer/ui/Progress.tsx +30 -0
  143. package/src/renderer/ui/Select.module.css +91 -0
  144. package/src/renderer/ui/Select.tsx +100 -0
  145. package/src/renderer/ui/Spinner.module.css +44 -0
  146. package/src/renderer/ui/Spinner.tsx +27 -0
  147. package/src/renderer/ui/Switch.module.css +39 -0
  148. package/src/renderer/ui/Switch.tsx +43 -0
  149. package/src/renderer/ui/Tabs.module.css +76 -0
  150. package/src/renderer/ui/Tabs.tsx +53 -0
  151. package/src/renderer/ui/Tag.module.css +66 -0
  152. package/src/renderer/ui/Tag.tsx +47 -0
  153. package/src/renderer/ui/Timeline.module.css +42 -0
  154. package/src/renderer/ui/Timeline.tsx +29 -0
  155. package/src/renderer/ui/Toast.module.css +99 -0
  156. package/src/renderer/ui/Toast.tsx +90 -0
  157. package/src/renderer/ui/Tooltip.module.css +26 -0
  158. package/src/renderer/ui/Tooltip.tsx +23 -0
  159. package/src/renderer/ui/VirtualTable.module.css +230 -0
  160. package/src/renderer/ui/VirtualTable.tsx +416 -0
  161. package/src/renderer/ui/index.ts +55 -0
  162. package/src/shared/types.ts +695 -0
  163. package/tests/main/ai/crypto-script-extractor.test.ts +281 -0
  164. package/tests/main/ai/llm-router.test.ts +1537 -0
  165. package/tests/main/ai/prompt-builder.test.ts +178 -0
  166. package/tests/main/ai/scene-detector.test.ts +212 -0
  167. package/tests/main/db/migrations.test.ts +134 -0
  168. package/tests/main/release-workflow.test.ts +59 -0
  169. package/tsconfig.json +7 -0
  170. package/tsconfig.node.json +23 -0
  171. package/tsconfig.web.json +24 -0
  172. package/vitest.config.ts +13 -0
File without changes
@@ -0,0 +1,12 @@
1
+ ## Engineering Context
2
+
3
+ ```json
4
+ {
5
+ "Language Context": [
6
+ "TS"
7
+ ],
8
+ "Architecture Stack": [
9
+ "React"
10
+ ]
11
+ }
12
+ ```
@@ -0,0 +1,146 @@
1
+ name: Build & Release
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ push:
6
+ tags:
7
+ - 'v*'
8
+
9
+ jobs:
10
+ build:
11
+ strategy:
12
+ fail-fast: false
13
+ matrix:
14
+ include:
15
+ - os: windows-latest
16
+ platform: win
17
+ arch: x64
18
+ - os: macos-latest
19
+ platform: mac
20
+ arch: universal
21
+ - os: ubuntu-latest
22
+ platform: linux
23
+ arch: x64
24
+
25
+ runs-on: ${{ matrix.os }}
26
+
27
+ steps:
28
+ - name: Checkout
29
+ uses: actions/checkout@v6
30
+
31
+ - name: Setup pnpm
32
+ uses: pnpm/action-setup@v6
33
+
34
+ - name: Setup Node.js
35
+ uses: actions/setup-node@v6
36
+ with:
37
+ node-version: 20
38
+ cache: pnpm
39
+ cache-dependency-path: pnpm-lock.yaml
40
+
41
+ - name: Install dependencies
42
+ run: pnpm install
43
+ env:
44
+ ELECTRON_MIRROR: ""
45
+
46
+ - name: Build
47
+ run: pnpm run build
48
+
49
+ - name: Package for Windows
50
+ if: matrix.platform == 'win'
51
+ run: npx electron-builder --win --publish never
52
+
53
+ - name: Configure macOS signing
54
+ if: matrix.platform == 'mac'
55
+ env:
56
+ SIGNING_CSC_LINK: ${{ secrets.CSC_LINK }}
57
+ SIGNING_CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
58
+ SIGNING_APPLE_ID: ${{ secrets.APPLE_ID }}
59
+ SIGNING_APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
60
+ SIGNING_APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
61
+ run: |
62
+ echo "CSC_IDENTITY_AUTO_DISCOVERY=false" >> "$GITHUB_ENV"
63
+ if [ -n "$SIGNING_CSC_LINK" ]; then
64
+ echo "CSC_LINK=$SIGNING_CSC_LINK" >> "$GITHUB_ENV"
65
+ echo "CSC_KEY_PASSWORD=$SIGNING_CSC_KEY_PASSWORD" >> "$GITHUB_ENV"
66
+ echo "APPLE_ID=$SIGNING_APPLE_ID" >> "$GITHUB_ENV"
67
+ echo "APPLE_APP_SPECIFIC_PASSWORD=$SIGNING_APPLE_APP_SPECIFIC_PASSWORD" >> "$GITHUB_ENV"
68
+ echo "APPLE_TEAM_ID=$SIGNING_APPLE_TEAM_ID" >> "$GITHUB_ENV"
69
+ echo "MAC_SIGNING_ENABLED=true" >> "$GITHUB_ENV"
70
+ else
71
+ echo "MAC_SIGNING_ENABLED=false" >> "$GITHUB_ENV"
72
+ fi
73
+
74
+ - name: Package for macOS
75
+ if: matrix.platform == 'mac'
76
+ run: |
77
+ npx electron-builder --mac --x64 --arm64 --publish never
78
+ grep -q 'arm64\.zip' dist/latest-mac.yml
79
+ grep -q 'x64\.zip' dist/latest-mac.yml
80
+
81
+ - name: Verify macOS signing configuration
82
+ if: matrix.platform == 'mac'
83
+ run: |
84
+ if [ "$MAC_SIGNING_ENABLED" != "true" ]; then
85
+ echo "macOS signing secrets are not configured; skipping codesign verification."
86
+ exit 0
87
+ fi
88
+ test -n "$CSC_LINK"
89
+ test -n "$CSC_KEY_PASSWORD"
90
+ test -n "$APPLE_ID"
91
+ test -n "$APPLE_APP_SPECIFIC_PASSWORD"
92
+ test -n "$APPLE_TEAM_ID"
93
+ codesign --verify --deep --strict --verbose=2 "dist/mac*/Anything Analyzer.app"
94
+
95
+ - name: Package for Linux
96
+ if: matrix.platform == 'linux'
97
+ run: npx electron-builder --linux --publish never
98
+
99
+ - name: Upload artifacts
100
+ uses: actions/upload-artifact@v7
101
+ with:
102
+ name: build-${{ matrix.platform }}-${{ matrix.arch }}
103
+ path: |
104
+ dist/*.exe
105
+ dist/*.dmg
106
+ dist/*.zip
107
+ dist/*.AppImage
108
+ dist/*.yml
109
+ dist/*.blockmap
110
+ if-no-files-found: error
111
+
112
+ release:
113
+ needs: build
114
+ if: startsWith(github.ref, 'refs/tags/v')
115
+ runs-on: ubuntu-latest
116
+ permissions:
117
+ contents: write
118
+
119
+ steps:
120
+ - name: Checkout for release notes
121
+ uses: actions/checkout@v6
122
+ with:
123
+ sparse-checkout: RELEASE_NOTES.md
124
+ sparse-checkout-cone-mode: false
125
+
126
+ - name: Download all artifacts
127
+ uses: actions/download-artifact@v6
128
+ with:
129
+ path: artifacts
130
+ merge-multiple: true
131
+
132
+ - name: List artifacts
133
+ run: find artifacts -type f | head -30
134
+
135
+ - name: Create GitHub Release
136
+ uses: softprops/action-gh-release@v3
137
+ with:
138
+ draft: false
139
+ body_path: RELEASE_NOTES.md
140
+ files: |
141
+ artifacts/*.exe
142
+ artifacts/*.dmg
143
+ artifacts/*.zip
144
+ artifacts/*.AppImage
145
+ artifacts/*.yml
146
+ artifacts/*.blockmap
package/README.en.md ADDED
@@ -0,0 +1,264 @@
1
+ # Anything Analyzer
2
+
3
+ [English](README.en.md) | [简体中文](README.md)
4
+
5
+ > **Web pages, desktop apps, terminal commands, Python scripts, mobile apps -- no matter where traffic comes from, capture it and let AI reverse engineer it automatically.**
6
+
7
+ [![Electron](https://img.shields.io/badge/Electron-35-blue)](https://www.electronjs.org/)
8
+ [![React](https://img.shields.io/badge/React-19-61dafb)](https://react.dev/)
9
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5-3178c6)](https://www.typescriptlang.org/)
10
+ [![License](https://img.shields.io/badge/License-MIT-green)](LICENSE)
11
+
12
+ <img alt="Anything Analyzer Screenshot" src="https://github.com/user-attachments/assets/87f24186-ea00-4a03-9634-4d7af4b224d4" />
13
+
14
+ ---
15
+
16
+ ## Why Anything Analyzer?
17
+
18
+ Traditional tools each cover only one area: DevTools is for browsers, Fiddler/Charles are for proxies, and Wireshark does not decrypt HTTPS. After capture, you still have to sift through hundreds of requests and analyze them manually.
19
+
20
+ **Anything Analyzer is different -- full scenario capture + AI automatic analysis:**
21
+
22
+ ```
23
+ Web Desktop apps Terminal Scripts Mobile / IoT
24
+ Chrome Postman curl/wget Python App / Mini Program
25
+ | Electron | Node.js |
26
+ | | | | |
27
+ v v v v v
28
+ ┌──────────┐ ┌──────────────────────────────────────────────────────────┐
29
+ │ Embedded │ │ MITM Proxy (port 8888) │
30
+ │ Browser │ │ System proxy / manual / Wi-Fi proxy │
31
+ │ (CDP) │ └──────────────────────────┬───────────────────────────────┘
32
+ └────┬─────┘ |
33
+ | |
34
+ └──────────┬───────────────────────┘
35
+ v
36
+ ┌─────────────────┐
37
+ │ Unified Session │ <- All sources flow into one session
38
+ └────────┬────────┘
39
+ v
40
+ ┌─────────────────┐
41
+ │ AI Analysis │ <- One-click protocol reverse / security / crypto report
42
+ └─────────────────┘
43
+ ```
44
+
45
+ ---
46
+
47
+ ## Three Core Capabilities
48
+
49
+ ### 1. Capture across all scenarios -- anything, not just browsers
50
+
51
+ | Target | How to capture | Typical use cases |
52
+ |--------|----------------|------------------|
53
+ | **Web** | Use the embedded browser directly | Web API reverse engineering, OAuth login, frontend crypto |
54
+ | **Desktop apps** | MITM proxy + system proxy | Postman, Electron apps, game clients |
55
+ | **Terminal commands** | MITM proxy + environment variables | curl, wget, httpie |
56
+ | **Scripts** | MITM proxy + code config | Python requests, Node.js fetch, Go http |
57
+ | **Mobile / tablets** | MITM proxy + Wi-Fi proxy | iOS/Android apps, mini programs, H5 |
58
+ | **IoT / other devices** | MITM proxy + gateway proxy | Smart home, embedded HTTP traffic |
59
+
60
+ All sources are **merged into a single Session**, and AI analyzes them together.
61
+
62
+ ### 2. AI analysis -- more than capture, automatic protocol understanding
63
+
64
+ - **Two-phase analysis** -- Phase 1 filters noise requests, Phase 2 focuses on deep analysis
65
+ - **5 analysis modes** -- Auto detect / API reverse / security audit / performance / JS crypto reverse
66
+ - **JS Hook injection** -- Intercepts fetch, XHR, crypto.subtle, CryptoJS, SM2/3/4 crypto calls
67
+ - **Crypto code extraction** -- Extracts crypto-related code snippets from JS files
68
+ - **Streaming output + follow-ups** -- Reports stream in real time and support multi-round Q&A
69
+
70
+ ### 3. MCP ecosystem integration -- capture tool for AI agents
71
+
72
+ - **MCP Client** -- Connect to external MCP servers (stdio + StreamableHTTP) to extend AI analysis
73
+ - **Built-in MCP Server** -- Expose capture and analysis as MCP tools for Claude Desktop, Cursor, and more
74
+
75
+ ---
76
+
77
+ ## Use Cases
78
+
79
+ | Scenario | Traffic source | What you get |
80
+ |----------|----------------|--------------|
81
+ | **Reverse a website API** | Embedded browser | API endpoints + auth flow + Python reproduction code |
82
+ | **Reverse an app protocol** | Mobile Wi-Fi proxy | Hidden APIs + request signing logic |
83
+ | **JS crypto reverse** | Embedded browser + JS Hook | Crypto algorithm ID + flow reconstruction + Python implementation |
84
+ | **Security audit** | Browser + proxy mix | Token leaks, CSRF/XSS, sensitive data exposure |
85
+ | **Debug CLI tools** | Terminal curl/httpie | Full request/response logs + AI step-by-step explanations |
86
+ | **Debug microservices** | Scripts + env proxy | Service call chains + auth propagation analysis |
87
+
88
+ ---
89
+
90
+ ## Quick Start
91
+
92
+ ### Download and install
93
+
94
+ Get the installer for your platform from [Releases](https://github.com/Mouseww/anything-analyzer/releases):
95
+
96
+ | Platform | File |
97
+ |----------|------|
98
+ | Windows | `Anything-Analyzer-Setup-x.x.x.exe` |
99
+ | macOS (Apple Silicon) | `Anything-Analyzer-x.x.x-arm64.dmg` |
100
+ | macOS (Intel) | `Anything-Analyzer-x.x.x-x64.dmg` |
101
+ | Linux | `Anything-Analyzer-x.x.x.AppImage` |
102
+
103
+ ### Capture web traffic -- embedded browser
104
+
105
+ 1. **Configure LLM** -- Settings -> LLM, fill in API Key (OpenAI / Anthropic / any compatible API)
106
+ 2. **Create a new Session** -- enter a name and target URL
107
+ 3. **Interact and capture** -- use the embedded browser, click Start Capture
108
+ 4. **AI analysis** -- stop capture, click Analyze, choose analysis mode
109
+
110
+ ### Capture apps/terminal/mobile -- MITM proxy
111
+
112
+ 1. Settings -> MITM Proxy -> **install CA certificate**
113
+ 2. **Enable proxy** (default port `8888`)
114
+ 3. Configure proxy by scenario:
115
+
116
+ ```bash
117
+ # ---- Terminal commands ----
118
+ curl -x http://127.0.0.1:8888 https://api.example.com/data
119
+
120
+ # ---- Python script ----
121
+ proxies = {"http": "http://127.0.0.1:8888", "https": "http://127.0.0.1:8888"}
122
+ requests.get("https://api.example.com/data", proxies=proxies)
123
+
124
+ # ---- Node.js ----
125
+ HTTP_PROXY=http://127.0.0.1:8888 HTTPS_PROXY=http://127.0.0.1:8888 node app.js
126
+
127
+ # ---- System-wide (desktop apps follow proxy) ----
128
+ # Use the one-click "Set as system proxy" in Settings
129
+
130
+ # ---- Mobile / tablets ----
131
+ # Wi-Fi Settings -> HTTP Proxy -> Manual -> enter computer IP + port 8888
132
+ # Then open the proxy address in a phone browser to download and install the CA certificate
133
+ ```
134
+
135
+ 4. Create a Session (URL can be empty) -> Start Capture -> external app traffic flows in
136
+
137
+ <details>
138
+ <summary>CA certificate details</summary>
139
+
140
+ - Cert storage: `%APPDATA%/anything-analyzer/certs/` (Windows) / `~/Library/Application Support/anything-analyzer/certs/` (macOS)
141
+ - Admin permissions required on first install (Windows UAC / macOS password)
142
+ - Settings allows uninstall, regenerate, or export at any time
143
+ - Root CA is valid for 10 years, leaf certs 825 days (Apple requirement)
144
+ - MITM proxy is **read-only capture**, it does not modify requests/responses
145
+ - WebSocket traffic is tunneled, not decrypted
146
+ - Per-body size limit 1MB, binary content is skipped
147
+
148
+ </details>
149
+
150
+ ---
151
+
152
+ ## All Features
153
+
154
+ <details>
155
+ <summary>Expand to see full feature list</summary>
156
+
157
+ **Capture engine**
158
+ - Full network capture -- CDP Fetch interception for all HTTP requests/responses (headers, body)
159
+ - MITM proxy -- built-in HTTPS MITM proxy, auto-issues TLS certs with per-domain LRU cache
160
+ - Dual-channel capture -- browser CDP + MITM proxy into one session
161
+ - SSE / WebSocket detection -- auto detect streaming and upgrade requests
162
+ - Storage snapshots -- periodic Cookie, localStorage, sessionStorage collection
163
+ - Domain filters -- group/filter by domain with partial match search
164
+ - Source tags -- distinguish "CDP" and "Proxy" sources
165
+ - Export requests -- export raw request data to JSON files
166
+
167
+ **Browser**
168
+ - Multi-tab -- auto-capture popups into internal tabs (OAuth friendly)
169
+ - Tab protection -- prevent window.close from killing tabs, auto-restore last tab
170
+ - One-click clean environment -- clear cookies, localStorage, sessionStorage, cache
171
+
172
+ **AI analysis**
173
+ - Two-phase analysis -- Phase 1 filtering -> Phase 2 deep analysis, AI reads details on demand
174
+ - Manual multi-select analysis -- analyze selected requests without pre-filtering
175
+ - Custom prompt templates -- built-in templates plus custom ones
176
+ - Streaming output + follow-ups -- live report display with multi-round chat
177
+
178
+ **System**
179
+ - System proxy integration -- one-click system proxy (Windows registry / macOS networksetup / Linux gsettings)
180
+ - CA certificate management -- install / uninstall / regenerate / export across platforms
181
+ - Global proxy -- SOCKS5/HTTP/HTTPS proxy support
182
+ - Auto update -- built-in electron-updater
183
+ - Dark theme -- modern UI based on Ant Design
184
+
185
+ </details>
186
+
187
+ ---
188
+
189
+ ## Build from Source
190
+
191
+ ```bash
192
+ git clone https://github.com/MouseWW/anything-analyzer.git
193
+ cd anything-analyzer
194
+ pnpm install
195
+ pnpm dev # dev mode
196
+ pnpm test # run tests
197
+ pnpm build && npx electron-builder --win # build Windows installer
198
+ ```
199
+
200
+ > macOS release note: auto-update requires **signed and notarized** installers. Before publishing mac builds from GitHub Actions, configure `CSC_LINK`, `CSC_KEY_PASSWORD`, `APPLE_ID`, `APPLE_APP_SPECIFIC_PASSWORD`, and `APPLE_TEAM_ID` in repository secrets, otherwise `ShipIt` cannot install updates.
201
+
202
+ **Requirements:** Node.js >= 18, pnpm, Visual Studio Build Tools (Windows)
203
+
204
+ ## Tech Stack
205
+
206
+ | Layer | Technology |
207
+ |-------|------------|
208
+ | Framework | Electron 35 + electron-vite |
209
+ | Frontend | React 19 + Ant Design 5 + TypeScript |
210
+ | Database | better-sqlite3 (local SQLite) |
211
+ | Protocol | Chrome DevTools Protocol (CDP) |
212
+ | Proxy | Built-in MITM HTTPS proxy (node-forge TLS) |
213
+ | AI | OpenAI / Anthropic / Custom LLM (Chat Completions + Responses API) |
214
+ | AI extensions | MCP Client (stdio + StreamableHTTP) + built-in MCP Server |
215
+
216
+ <details>
217
+ <summary>Project structure</summary>
218
+
219
+ ```
220
+ src/
221
+ ├── main/ # Electron main process
222
+ │ ├── ai/ # AI pipeline (two-phase orchestration, prompts, LLM routing)
223
+ │ ├── capture/ # Capture engine (CDP Fetch + JS Hook + storage snapshots)
224
+ │ ├── cdp/ # Chrome DevTools Protocol management
225
+ │ ├── proxy/ # MITM proxy (CA management, cert issuance, system proxy)
226
+ │ ├── mcp/ # MCP Client + built-in MCP Server
227
+ │ ├── db/ # SQLite data layer
228
+ │ └── session/ # Session lifecycle management
229
+ ├── preload/ # Context bridge + hook injection scripts
230
+ ├── renderer/ # React UI (components + hooks)
231
+ └── shared/ # Shared type definitions
232
+ ```
233
+
234
+ </details>
235
+
236
+ ---
237
+
238
+ This project **does not** include the following capabilities:
239
+ - Illegal access to computer data
240
+ - Illegal modification of computer data
241
+ - Illegal control of computer systems
242
+ - Destruction of computer systems
243
+ - Built-in AI models (you must configure your own model and use it in compliance with regulations)
244
+
245
+ **Do not use this tool for any activity that violates the laws of the PRC.**
246
+
247
+ ---
248
+
249
+ Thanks to everyone on [LinuxDo](https://linux.do/) for their support!
250
+
251
+ ---
252
+
253
+ ## Recommended Resources
254
+
255
+ |:---:|---|
256
+ | <a href="https://doloffer.com/friend/Pa34D0CG"><img src="resources/doloffer-logo.png" width="180" alt="Doloffer"></a> | **[Doloffer](https://doloffer.com/friend/Pa34D0CG)** — GPT / Claude subscriptions at discounted prices. Genuine licenses, hassle-free support.<br>📖 [Guide](https://github.com/Doloffer-g/guide) \| 🎁 Promo code: `Al8888` (10% off) |
257
+
258
+ ## Star History
259
+
260
+ [![Star History Chart](https://api.star-history.com/svg?repos=Mouseww/anything-analyzer&type=Date)](https://star-history.com/#Mouseww/anything-analyzer&Date)
261
+
262
+ ## License
263
+
264
+ MIT