Maher-Bhatt/KALKI
GitHub: Maher-Bhatt/KALKI
KALKI 是一款 Windows 原生的语音控制 AI 个人助手,融合日常效率管理与网络安全工具箱,以钢铁侠风格的 HUD 界面呈现。
Stars: 3 | Forks: 0
# K.A.L.K.I.
### *最终化身 · 自主 AI*
一款原生支持 Windows、语音优先的 AI 个人助手,灵感来自《钢铁侠》中的 JARVIS —— 使用 Python 和单个 HTML 文件从零开始构建。以 Vishnu 的最终化身 Kalki 命名。
它在后台默默运行。通过 **"Hey KALKI"** 唤醒。以自然的神经网络语音说话。管理你的日常、运行你的代码、破解你的 hashes、扫描网站漏洞并读取你的日历 —— 所有这些都在一个钢铁侠风格的 HUD 中完成。

| 待机 (藏红花色) | 监听 (孔雀色) |
|:---:|:---:|
|  |  |
## 核心亮点
- 🎙 **语音优先,常驻待机** — "Hey KALKI" 唤醒词;云端 STT,并提供可选的**离线 Vosk** 引擎。内置麦克风选择功能可使蓝牙耳机保持高音质的 A2DP 状态。
- 🧠 **智能模型路由** — 日常对话使用快速的 8B 模型,代码/网络安全任务使用 LLaMA-3.3-70B。支持**离线回退**至本地 Ollama 模型。
- 🔐 **Web 漏洞扫描器** — *"scan this website"* 可读取你打开的浏览器标签页,审计 TLS / headers / cookies / CORS / 暴露的文件 / 危险的 HTTP 方法,抓取源码 + JS,搜寻泄露的密钥,映射表单/注入面,并运行主动的反射型 XSS / 开放重定向检查。非破坏性,提供漏洞发现与修复建议。
- 🛰 **站点看门狗** — 为你的网站提供后台监控:宕机/恢复警报 + SSL 过期警告(提前 14/7/2 天)。
- 📋 **剪贴板精灵** — *"decode my clipboard"* 自动识别 JWT / base64 / hex / hashes。
- 🌅 **晨间安全简报** — 提供与你所用技术栈相关的最新严重 CVE 漏洞 + 已监控网站的状态。
- 🎨 **印度“宫殿”风格 HUD** — 绛红 + 金色,jali 格栅,Ashoka-chakra / 莲花 / 苏里亚曼陀罗反应堆,以及rangoli点缀。
## 功能
### 语音与智能
- **常驻待机的唤醒词** — 随时随地说 "Hey KALKI";即使在浏览器标签页关闭的情况下也能工作
- **纯语音操作** — 监听器会在唤醒词后捕获后续语句;无需任何点击
- **Groq 驱动的大脑** — 使用 `llama-3.3-70b-versatile` 进行思考,使用 `llama-4-scout` 处理视觉
- **神经 TTS** — Microsoft edge-tts `en-GB-RyanNeural`(最接近电影配音的声音)
- **停止指令** — 随时说 "stop",音频会立即切断
### 个人助手
- **Google Calendar** — 每次开机时播报今天和明天的日程
- **自动日程提醒** — KALKI 会在每次会议前 15 分钟主动提醒你
- **Gmail(主要收件箱过滤)** — 只读取重要的未读邮件;忽略促销、社交、动态、论坛和垃圾邮件
- **任务 + 提醒** — 支持自然语言,如 "remind me to X in 10 minutes"(10 分钟后提醒我做 X) / "at 5 PM"(下午 5 点)
- **笔记 + 日记** — "take a note"(记个笔记)、"what did I note yesterday"(我昨天记了什么),自动解析 `#tags`
- **密码保险库** — 使用 DPAPI 加密(锁定在 Windows 用户账户下,无需主密码)
- **WhatsApp 消息** — "send a WhatsApp to Dev saying I'll be late"(给 Dev 发个 WhatsApp 说我晚点到)(通过 pywhatkit 实现)
- **Spotify 控制** — "play lo-fi"、"next song"、"pause"、"what's playing";如果未运行会自动启动
- **工作流模式** — "study mode"、"gaming mode"、"CTF mode" 可触发多步骤动作链
### 网络安全工具包
- **Hashes** — 识别、生成 (MD5/SHA1/SHA256/SHA512/SHA3/NTLM/MD4) 及字典破解
- **编码/解码** — base64、hex、URL、rot13、二进制、摩斯密码
- **CVE 情报** — `lookup CVE-2024-3094`(通过 NVD API)以及 "recent critical CVEs"(最近 30 天,按最新排序)
- **子域名枚举** — 通过 crt.sh,并以 hackertarget.com 作为备选
- **GitHub dorking** — 预制的搜索链接,用于查找 AWS keys、API keys、密码、.env 文件、SSH keys
- **反弹 shell payload** — Bash、sh、Python、Python3、PowerShell、nc、mkfifo、PHP、Perl、Ruby
- **端口扫描 / DNS / HTTP headers / WHOIS / ping** — 对标准的 42 个端口进行快速 TCP 探测
- **WiFi 密码恢复** — 通过 `netsh wlan show profile` 获取自有网络密码
- **屏幕视觉** — Groq vision API 可分析屏幕截图("look at my screen and solve this",查看我的屏幕并解决这个问题)
### 视觉与文件上传
- **点击 📎、拖放或按 Ctrl+V 粘贴** 以附加图片 / 代码 / 文本
- 图片会发送给 Groq vision 进行分析(CTF 挑战、代码截图、错误对话框)
- 文本/代码文件会直接附加在你的消息前,以便 AI 查看完整内容
### 代码引擎
- **"Write and run a Python script that scans port 80 on 10 IPs"**(编写并运行一个扫描 10 个 IP 的 80 端口的 Python 脚本)— 生成、保存并执行
- 支持 Python、PowerShell、Batch、Node、HTML
- 脚本会带有时间戳并保存在 `data/scripts/` 目录下
### 主动后台警报
- **电池** — 低于 20% 和 10% 时主动播报
- **CPU** — 持续过高(连续 3 次检测使用率 >95%)
- **RAM** — 超过 90%
- 所有警报均设有冷却时间(8–25 分钟),以避免频繁打扰
### HUD
- **中心方舟反应炉** — 60fps canvas,72 个随麦克风动态变化的频率条,32 个环绕粒子,12 个六边形单元,6 个耀斑光晕,旋转的文字环("KALKI · GROQ · LLAMA · NEURAL"),状态改变时的脉冲环
- **状态响应式主题** — 当 KALKI 处于待机/监听/思考/说话状态时,整个 UI 的色调都会随之改变(面板、品牌标志、读数条纹都会重新调整)
- **实时 HUD 面板** — CPU/RAM/磁盘/网络/电源状态条,今日日历,未读邮件计数,正在播放的曲目,滚动遥测数据流
- **带复制按钮的代码块** — KALKI 的回复使用三反引号标记;UI 会以等宽字体渲染它们,并提供一键复制的按钮
- **TTS 中不会出现 "星号 星号"** — 在语音播报前会自动剥离 Markdown 标记
## 架构
```
┌─────────────────────────┐
│ index.html (the HUD) │
│ Canvas + JS + CSS │
└──────────┬──────────────┘
│ /api/* HTTP+JSON
▼
┌───────────────────────┴──────────────────────────┐
│ server.py │
│ http.server + ThreadingMixIn (stdlib only) │
│ - intent router (local commands) │
│ - background loops (alerts, calendar, reminders)│
│ - voice TTS pipeline │
└─┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬───────┘
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │
vault gcal vision coder spotify whatsapp notes tasks
cybertools workflows mail ytdl
▲
│ POST /api/wake|chat|stop
│
┌──────────┴──────────────┐
│ listener.py │
│ SpeechRecognition+PyAudio
│ cycles mic, fuzzy match│
└─────────────────────────┘
launcher.py (silent boot, registers HKCU\...\Run)
```
**为什么服务器只使用标准库?** 不依赖 Flask、FastAPI 或 npm —— KALKI 完全依赖 `python -m http.server` 的线程模型和一个单独的 HTML 文件。更易于审计、启动更快,无需构建步骤即可永远运行。
## 项目结构
```
C:\Kalki\
├── server.py ← HTTP API + intent router + background loops
├── listener.py ← Always-on wake word + follow-up listener
├── launcher.py ← Silent boot + Windows autostart
├── config.py ← All keys & settings (gitignored)
├── config.example.py ← Template — copy to config.py and fill in
├── index.html ← The Iron Man HUD (canvas + vanilla JS)
├── requirements.txt ← pip dependencies
├── INSTALL.bat ← One-click installer
├── START.bat ← Manual launch (with console for debugging)
│
│ ── Modules ──
├── vault.py ← DPAPI password store
├── cybertools.py ← Hashes, codecs, network, CVE, recon, payloads
├── vision.py ← Screenshot / image analysis via Groq vision
├── coder.py ← Code generation + execution sandbox
├── tasks.py ← Tasks + reminders (with time parsing)
├── notes.py ← Notes + journal with full-text search
├── mail.py ← IMAP Gmail reader (alt to OAuth)
├── gcal.py ← Google Calendar + Gmail OAuth
├── spotify_mod.py ← Spotify Web API control
├── whatsapp_mod.py ← pywhatkit-based messaging
├── workflows.py ← Multi-step modes (study/gaming/ctf/...)
├── ytdl.py ← yt-dlp wrapper
│
│ ── One-time setup scripts ──
├── setup_google.py ← Google OAuth authorize
├── setup_spotify.py ← Spotify OAuth authorize
│
└── data/ ← Local state (gitignored)
├── memory.json
├── history.json
├── tasks.json
├── reminders.json
├── notes.json
├── vault.json (DPAPI-encrypted)
├── google_token.pickle (OAuth cache)
├── spotify_token.json
├── contacts.json
└── scripts/ (generated by /api/code/generate)
```
## 安装说明
### 前置条件
- **Windows 10/11**
- **Python 3.11** — 从 [python.org](https://www.python.org/downloads/release/python-3119/) 安装,并勾选 **"Add Python to PATH"**
- 一个**麦克风**
- 一个**免费的 Groq API 密钥**(这是唯一必须的东西 —— 只需 1 分钟即可获取)
### 第 1 步 — 获取免费的 Groq API 密钥 *(必须)*
KALKI 的大脑运行在 [Groq](https://console.groq.com) 上(免费、极速的 LLaMA 推理服务)。
1. 访问 **** 并登录(支持 Google 登录)。
2. 在左侧菜单中打开 **API Keys**。
3. 点击 **Create API Key**,为其命名(例如 `kalki`),然后点击 **Create**。
4. **复制密钥** — 格式类似于 `gsk_xxxxxxxxxxxxxxxxxxxx`。此密钥只会显示一次,请务必现在复制。
### 第 2 步 — 下载与配置
```
git clone https://github.com/Maher-Bhatt/KALKI.git C:\Kalki
cd C:\Kalki
copy config.example.py config.py
```
在任意编辑器中打开 **`config.py`** 并粘贴你的密钥:
```
GROQ_API_KEY = "gsk_your_key_here" # <- paste the key from Step 1
OWNER_NAME = "YourName" # how KALKI addresses you
OWNER_CITY = "YourCity" # for the weather line
```
### 第 3 步 — 安装与运行
```
INSTALL.bat :: installs Python dependencies
START.bat :: launches KALKI
```
几秒钟内,你会听到一句问候语,Chrome 会自动打开 **`http://localhost:8888`**,随后出现 HUD 界面。对它说 **"Hey KALKI"** 即可开始对话。
**开机自启(可选):**
```
py -3.11 launcher.py
```
这会将 KALKI 注册到 `HKCU\...\Run` 项下,并添加一个启动快捷方式,使其在每次登录时静默启动。若要移除,请删除 `KALKI_v5` 注册表值。
### 第 4 步 — 可选集成
所有项均为可选 —— 没有它们,KALKI 也能完全正常工作。
| 集成项 | 配置方法 |
|---|---|
| **Google Calendar + Gmail** | 在 [console.cloud.google.com](https://console.cloud.google.com):创建一个项目 → 启用 **Calendar API** + **Gmail API** → **OAuth consent screen**(外部,添加你的邮箱作为测试用户) → **Credentials → OAuth client ID → Desktop app** → 下载 JSON 文件到 `data/google_credentials.json` → 运行 `py -3.11 setup_google.py` 并在浏览器中授权。 |
| **Spotify** | 在 [developer.spotify.com/dashboard](https://developer.spotify.com/dashboard):创建一个应用,设置重定向 URI **`http://127.0.0.1:8889/callback`**,将 **Client ID + Secret** 复制到 `config.py` 中,然后运行 `py -3.11 setup_spotify.py`。 |
| **离线大脑** | 安装 [Ollama](https://ollama.com) 并运行 `ollama pull qwen2.5:7b` —— KALKI 在离线时会自动回退到该模型。 |
| **Tesseract OCR** (视觉文本后备) | 从 [UB-Mannheim 构建](https://github.com/UB-Mannheim/tesseract/wiki) 中安装。 |
| **字典文件** (用于 Hash 破解) | 将字典文件放置于 `data/wordlist.txt`。 |
## 语音指令参考
### 音乐与媒体
| 说出指令 | 执行操作 |
|---|---|
| "Play lo-fi" | Spotify 搜索 + 播放 |
| "Play Believer" | 播放该歌曲 |
| "Pause" / "Resume" | 暂停 / 恢复 Spotify 播放 |
| "Next song" / "Previous song" | 下一首 / 上一首 |
| "What's playing" | 播报当前曲目 |
| "Spotify volume 50" | 设置 Spotify 音量 |
| "Download this YouTube video " | 使用 yt-dlp 下载 |
### 生产力
| 说出指令 | 执行操作 |
|---|---|
| "What's on my calendar" | 查看今日日程(若今天无日程则顺延查看明日) |
| "What's on my calendar tomorrow" | 查看明日日程 |
| "Check my Gmail" | 仅查看“主要”标签下的重要未读邮件 |
| "Add task X" / "Show my tasks" | 任务管理 |
| "Remind me to X in 10 minutes" / "at 5 PM" | 定时提醒 |
| "Take a note Y" / "Show my notes" / "Notes from yesterday" | 笔记功能 |
| "Send a WhatsApp to Dev saying I'll be late" | 发送 WhatsApp Web 消息 |
| "Add contact Dev +91XXXXXXXXXX" | 保存到联系人 |
### 网络安全
| 说出指令 | 执行操作 |
|---|---|
| "MD5 of admin123" | 对字符串进行 Hash 计算 |
| "Identify hash " |长度推测 Hash 类型 |
| "Crack hash " | 使用 `data/wordlist.txt` 进行字典攻击 |
| "Lookup CVE-2024-3094" | 通过 NVD 查询,提供摘要 + 评分 |
| "Recent critical CVEs" | 查看过去 30 天内的严重漏洞 |
| "Find subdomains of paypal.com" | 通过 crt.sh + hackertarget 查询 |
| "GitHub dorks for example.com" | 生成搜索链接列表 |
| "Reverse shell python 10.10.14.5 4444" | 在可复制的代码块中生成 payload |
| "Port scan 192.168.1.1" | 扫描排名前 42 的 TCP 端口 |
| "DNS google.com" / "Headers for example.com" / "Ping 1.1.1.1" | 网络侦察 |
| "Base64 encode " / "Decode base64 " | 编解码(支持 hex、URL、rot13、二进制、摩斯密码) |
| "What's my IP" / "IP info" | 查看公网 IP + 地理位置 |
| "List my WiFi" / "WiFi password for HomeNet" | `netsh` 密码恢复 |
### 系统
| 说出指令 | 执行操作 |
|---|---|
| "What time is it" / "What date" | 查看本地时间与日期 |
| "Battery" / "System info" | 查看 psutil 统计数据 |
| "Set volume 60" / "Mute" / "Unmute" | 音量控制 (pycaw) |
| "Take a screenshot" | Pillow ImageGrab → 保存至桌面 |
| "Lock my PC" / "Sleep" / "Restart" / "Shutdown" | 执行 Windows 系统命令 |
| "Open Chrome" / "Open YouTube" / "Open Documents" | 启动应用 / 文件夹 |
| "Close Spotify" | 使用 psutil 终止进程 |
### 保险库与视觉
| 说出指令 | 执行操作 |
|---|---|
| "Save my Gmail password as hunter2" | 使用 DPAPI 加密存储到保险库 |
| "What is my Gmail password" | 语音播报并显示密码 |
| "List my passwords" | 显示所有标签 |
| "Generate a strong password" | 生成 20 字符的随机密码 |
| "Look at my screen and solve it" | 截图 → 发送给 Groq vision 分析 |
| (将图片拖入窗口) "solve this" | 上传的图片 → 发送给 Groq vision 分析 |
### 工作流模式 (模糊匹配)
| 说出指令 | 运行内容 |
|---|---|
| "Study mode" | 打开 Code、播放 lo-fi 歌单、调低音量 |
| "Gaming mode" | 打开 Steam + Discord、关闭 Chrome |
| "CTF mode"(也支持 "city of mode" — 语音识别容错) | 打开 Code、终端、exploit-db、gtfobins |
| "Focus mode" | 调低音量、关闭 Discord |
| "Morning routine" | 打开 Gmail + 日历 |
| "Shutdown routine" | 关闭应用、锁定电脑 |
### 元指令
| 说出指令 | 执行操作 |
|---|---|
| "Stop" / "Shut up" / "Quiet" | 立即切断当前语音播报 |
| "Pause listener" / "Resume listener" | 为其他应用释放麦克风 |
| "Remember " / "What do you remember" | 长期记忆 |
| "Tell me my details" | 播报所有者资料 + 记忆条数 |
## 技术栈
| 层级 | 技术选型 |
|---|---|
| Server | Python 3.11 标准库 (`http.server` + `ThreadingMixIn`) — 不使用 Flask |
| LLM | Groq API (llama-3.3-70b-versatile / llama-4-scout vision) |
| TTS | Microsoft edge-tts + pygame mixer (非阻塞) |
| STT | Python SpeechRecognition + 使用 Google STT 识别唤醒词 |
| Calendar/Mail | google-api-python-client + google-auth-oauthlib |
| Music | spotipy (Spotify Web API) |
| Messaging | pywhatkit (WhatsApp Web 自动化) |
| Vault | pywin32 / `win32crypt` (DPAPI) |
| System | psutil, pycaw, pillow, comtypes |
| Recon | crt.sh, NVD API, hackertarget.com, DuckDuckGo HTML |
| Frontend | Vanilla JS + Canvas2D,单个 `index.html`,无需构建步骤 |
## 许可证
MIT — 详见 [LICENSE](LICENSE)。
## 致谢
- 愿景与名字源自 Marvel 的 Tony Stark。电影中的 KALKI = 灵感来源。
- [Groq](https://groq.com) 提供了极速的 LLaMA 推理服务
- [edge-tts](https://github.com/rany2/edge-tts) 提供了逼真的神经 Ryan 语音
- [crt.sh](https://crt.sh) 和 [NVD](https://nvd.nist.gov) 提供了免费的安全数据
- 感谢 MCU 的编剧们,让 Tony Stark 听起来如此迷人
标签:AI风险缓解, LLM大语言模型, Web安全扫描, 个人效率工具, 人工智能助手, 桌面自动化, 语音助手, 逆向工具