Skip to content

使用技巧

WeLink 除了核心分析能力,还内置了一批提升日常使用效率的特性。下面按常用程度从高到低列出。

命令面板(Cmd+K)

任意页面按 ⌘K(Windows 为 Ctrl+K)打开命令面板,输入即可搜索:

  • 联系人 / 群聊:原名 / 全拼 / 首字母三路匹配 — 输入 zw 能搜到「张伟」,输入 zhangw 也行
  • AI 对话历史:跨所有联系人 / 时光机 / AI 首页的对话全局子串搜索,命中会显示前后 ~40 字的上下文片段
  • Tab 跳转:输入"统计"、"时光机"等关键词即可跳转
  • 常用动作:运行诊断、备份 AI 数据、刷新索引、切换深色模式、反馈问题等

空查询下展示最近打开的 6 个联系人 / 群聊(localStorage 记忆)。

快捷键动作
⌘K / Ctrl+K打开 / 关闭面板
↑ ↓移动选择
Enter打开选中项
Esc关闭面板

Tab 数字键快捷切换

⌘1⌘9(Windows Ctrl+1..9)对应前 9 个 Tab:

键位页面
⌘1AI 首页
⌘2统计
⌘3联系人
⌘4群聊
⌘5全局搜索
⌘6时间线
⌘7聊天日历
⌘8Skills
⌘9设置

在输入框里按下不会拦截,专心打字时不用担心误触。

🔒 锁屏保护

离开电脑不想让路过的人直接看见聊天记录?设置一个 PIN 就够。

启用方式

设置 → 锁屏 PIN

  1. 首次点「启用」会让你设 PIN(4-32 位,字母 / 数字 / 符号都行),后端 bcrypt 哈希存到 preferences.json,不落明文
  2. 自动锁屏闲置时间:从不 / 30 分钟 / 1 小时 / 2 小时
  3. 「App 重开时默认锁定」勾上 → 每次启动都要 PIN

触发方式

方式说明
⌘L / Ctrl+L快捷键立刻锁屏(任意页面都行)
⌘K 搜「锁」命令面板里触发
闲置超时鼠标 / 键盘 / 触屏 / 滚轮都没动作满 N 分钟自动锁
启动即锁开关开启时每次进入 App 先锁

解锁方式

  • 输入 PIN 按 Enter
  • 连错会提示「PIN 错误」
  • 忘记 PIN:不知道就重装,PIN 本地后端验证不走任何远端

UI 行为

  • 全屏 z-index: 9999 毛玻璃遮罩,底下内容看不见
  • 绿色圆形 🔒 图标 + 「WeLink 已锁定」+ PIN 输入框 + 解锁按钮
  • 锁屏状态只存 sessionStorage,浏览器关了再开默认不锁(除非勾了「启动即锁」)

锁屏 ≠ 数据加密

锁屏是「视觉屏蔽」,相当于微信电脑版的锁定功能。别人物理拿到你电脑 / 直接访问 preferences.json + decrypted/ 还是能读数据。真要防物理入侵请用全盘加密(FileVault / BitLocker)

诊断面板

设置页 → 诊断 → 「运行诊断」,一键检查:

  • 数据目录:结构完整性(contact/contact.db + message/*.db)、写权限(只读盘会显著拖慢索引)
  • 索引:是否就绪 / 正在索引 / 上次失败原因
  • LLM profiles:对每个 OpenAI 兼容 provider 发一次 GET /models 探活,返回延迟
  • 磁盘:AI 分析库大小、头像缓存大小

诊断结果右上角有「复制为 Markdown」按钮,一键生成可直接粘贴到 GitHub issue / Slack 的结构化报告,排查问题省去一项项抄数据。

AI 数据备份与恢复

聊天历史、AI 对话、Skills、记忆都存在 ~/.welink/ai_analysis.db 里。建议定期备份。

  • App 模式:设置 → AI 数据备份 → 「导出备份到下载目录」。生成的快照用 SQLite VACUUM INTO 写入,自洽无损。完成后点「在 Finder 中显示」。
  • Docker / 浏览器模式:点「下载备份」触发浏览器文件下载。
  • 恢复:点「从备份恢复」选择 .db 文件。后端会做文件类型校验,覆盖前会把当前文件 rename 为 <name>.<时间戳>.bak,失败也能回滚。

多账号 / 数据目录切换

有多个微信账号或多份备份时,可以在设置页添加多个数据目录:

  1. 设置 → 数据目录 · 多账号切换 → 「+ 添加目录」
  2. 输入名字(如「主号」、「老婆账号」)和 decrypted/ 绝对路径
  3. 点「切换到」即可热替换,不重启进程

Docker 用户

Docker 模式下需要在 docker-compose.yml 里同时挂载多个数据目录(例如 /data/decrypted-a + /data/decrypted-b),然后在设置里把两个路径都添加为 profile。只挂一个再切到另一个会被预检拦下来。

索引进度 + 取消

首次索引或切换时间范围时,初始化屏幕会显示真实进度:

正在建立索引(全部数据)... 73%
  287 / 392 个联系人         已用 1 分 24 秒
  当前:wxid_xxx              预计剩余 31 秒

如果卡住或反悔,底部有「取消索引」按钮,点了会打断后端 performAnalysis goroutine 并回到 WelcomePage。

导出图片 / 文件目录可配置

所有保存为图片的操作(AI 分享卡、年度回顾、Skill 导出)默认写到 ~/Downloads,可以在设置 → 应用配置 → 「导出图片保存位置」改成任意 Home 下的目录。

保存成功后的 toast / 提示里会带「在 Finder 中显示」(Windows 是资源管理器),点一下直接跳到文件。

AI 对话全局搜索

所有 AI 对话(联系人分析、跨联系人问答、时光机分析)的历史都存在本地。想回忆「之前和 AI 聊过哪个话题」:

  • 方法一:命令面板 ⌘K 输入关键词,AI 对话段会直接出现在结果里
  • 方法二(调试用):GET /api/ai/conversations/search?q=关键词

搜索命中会显示前后 ~40 字的上下文,点击直接打开对应联系人弹窗。

启动时自动探测与引导

WeLink 启动会自动探测几个候选数据目录(当前配置、WELINK_DATA_DIR 环境变量、/data/decrypted、工作目录 ./decrypted.app/.exe 同级)。都找不到时:

  • 桌面 App:弹 Setup 页让你选目录或用 Demo 数据
  • Docker / 本地开发:前端展示一个持续轮询的引导页,附带可复制的 docker-compose.yml 挂载片段

配置时会做一次预检查:目录结构不对立刻报错;文件可读但不可写会给出黄色警告(只读盘会让索引慢 10 倍以上)。

一键反馈问题

设置 → 诊断 → 右上角「反馈问题 →」,或 ⌘K 输入「反馈」。

打开后的 Modal 会让你填问题标题和描述,并可选携带:

  • 环境信息:版本、运行模式、平台、时区(不含任何聊天内容
  • 诊断报告:数据目录 / 索引 / LLM 配置 / 磁盘占用的结构化摘要

三条出口,按用户拥有的账号 / 场景选:

按钮适用场景
在 GitHub 创建 issue有 GitHub 账号,推荐;走专用 diagnostic_report.md 模板,title + body 会自动填入,带 from-app label 便于维护者筛选;URL 超长时自动把 body 复制到剪贴板让你粘贴
复制为 Markdown没 GitHub 账号,想贴到邮件、微信、钉钉、任何 IM
下载 .md 文件当前设备不方便直接打开浏览器 / 需要作为附件发送

无论走哪条路,环境信息都不包含聊天正文、API Key、头像 URL 等敏感数据,可以放心分享。

有趣发现

统计页底部的趣味卡片合集(合并自早期独立「有趣」Tab)。数据来自已有统计,绝大多数不调 LLM:

轻量派生(纯前端)

  1. 字数换算 — 累计发送字数 + 换算成"≈ 几本书"
  2. 最话痨的一天 — 单日消息数 Top 10(来自日历热力图)
  3. 互动档位 — 按日均消息数分"秒回 / 高频 / 日常 / 佛系 / 随缘"五档
  4. 微信 MBTI — 主动率 / 深夜比 / 消息长度 / 表情密度四轴拼 4 字标签
  5. 首次相遇时间胶囊 — 按最早消息时间排序的前 10 位联系人 + 第一句话
  6. 沉默最久 Top 10 — 曾有 20+ 条聊天但现在最久没联系的人
  7. 表情包浓度 — 图片 + 表情占比 Top 5 / Bottom 3
  8. 独白指数 — 我发 / 对方发 ≥70% 的两个方向各 Top 3
  9. 我的人设 — 规则派生 3 个标签(专情 / 社交达人 / 字多党 / 深夜战士 / 倾听者 / 表情派)

重统计(后端 /api/fun/* 端点)

  1. 陪伴时长/api/fun/companion-time) — 按 session 切片累加的总小时数 + 联系人排行,缓存 10 分钟
  2. Ghost 月/api/fun/ghost-months) — 单月消息骤降 ≥80% 的"失联月"
  3. 最像我的朋友/api/fun/like-me) — 18 维特征向量距我加权基线最近 Top 5
  4. 词语年鉴/api/fun/word-almanac) — Top 30 活跃联系人里我发的文本按年分桶分词,每年取 #1 代表词 + 亚军 3 个,缓存 2h
  5. 失眠陪聊榜/api/fun/insomnia-top) — 凌晨 2-4 点我发消息后,对方 30 分钟内回应率 + 中位响应时延 Top 5,缓存 30min

重洞察(挂在联系人详情 / 统计页不同位置)

  1. 关系温度计 — 每个联系人 5 档热度标签(热络/温和/平稳/渐淡/冷却)+ 升降箭头
  2. 秘语雷达/api/contacts/secret-words) — TF-IDF 专属词云
  3. 关系剧本(洞察页 story tab) — AI 把一段关系提炼成 3-5 个章节式剧情节点

LLM 用量统计

设置 → LLM 用量。累计所有 AI 对话的 assistant 消息字符数和估算 token,按 provider/model 分组。Token 估算 = 吐字速率 × 生成耗时,仅作近似值参考。

自动检查新版本

启动 5 秒后后台访问 GitHub Releases API,发现新版本会弹一个 Release Notes Modal 展示 changelog。点「我先用着」会记住当前版本,下次启动不再提示同一个版本,直到又有更新。

设置页内搜索

设置页顶部的搜索框支持按关键词过滤 section — 输入"下载"只显示下载目录相关的几块,输入"LLM"只显示 LLM 配置。支持中英文关键词。

界面崩溃的自救

如果某个页面因为 bug 白屏,ErrorBoundary 会接住并显示一个简短的错误摘要 + 堆栈,提供两个按钮:

  • 反馈此问题:直接打开反馈 Modal,标题和堆栈已经预填好
  • 刷新页面:丢失的只是当前这一次渲染,数据都在本地

日志打包(App 模式)

设置 → 应用日志 → 「一键打包日志」会把 welink.log + frontend.log 打成 ZIP,API Key 等敏感字段自动替换为 [REDACTED],可以放心发给开发者排查问题。

群聊四件套 · 这个群的指纹

群聊详情页「群聊画像」tab 顶部新加一张「这个群的指纹」卡片,一次呈现四种维度:

群号称(群的 MBTI) —— 基于 hourly_dist / weekly_dist / type_dist / member_rank 规则派生 2-4 条标签,零 LLM。命中条件举例:

  • 凌晨 0-3 点消息占比 >15% → 🌙 深夜话唠
  • 工作日白天 ≥55% → 🏢 工作日正午群
  • 表情包占比 >12% → 😂 表情包战场
  • 红包+转账占比 >3% → 🧧 红包雨
  • 链接分享占比 >8% → 🔗 链接集散地
  • 日均消息 ≥200 → 🌊 消息洪流
  • 60% 以上成员从未发言 → 🤿 潜水员联盟

时钟指纹 —— 7 行(星期日→星期六)× 24 列(0h→23h)的热图徽章。log 压缩着色(绿色阶),一眼分辨"工作群"vs"深夜酒局群"vs"周末亲友群"。

我的影响力指数 —— 我发言后 30 分钟内有异发言者回应的比例(myRate)除以群整体基线(baseRate),映射到 0-100 分(1× = 50 分,2× = 100 分)。样本要求我发言 ≥5 条,群整体 ≥20 条。

AI 群年报 —— 右上角橙红渐变按钮。选一个年份(默认当前年),后端扫该年所有消息,分页展示:

  1. 年度概览:总消息 / 活跃人数 / 最忙一天 / 年度热词 Top 3
  2. 年度话痨榜:Top 3 成员 + 占比条
  3. AI 精选金句:LLM 从 80 条均匀采样里挑 3 条最能体现群氛围的原话
  4. 月度消息趋势:12 根柱子 + 峰值标注
  5. AI 年度叙事:60-100 字 Wrapped 风格总结

首次生成含 LLM 调用,大群需要 10-30 秒。

关系动态预测

AI 首页「建议主动联系」 卡片每次开首页自动刷新。点卡片直接打开联系人详情,点「🪄 写开场白」弹 modal 让 LLM 起草 4 条不同调性破冰开场白(关心 / 回忆 / 调侃 / 约见),每条一键复制。

卡片右侧的 👁 按钮是「不再推荐此人」—— 保存后该联系人不再出现在这个卡片里。要撤销去设置 → 关系预测 · 忽略名单

统计页底部「关系动态预测」 section 4 tab(濒危 / 降温 / 稳定 / 升温)完整列表。点每条右侧的小折线弹大图 modal:12 月柱状图 + 峰值标注 + 主动占比双进度条 + TA/我 的响应时延对比(变慢 >1.5× 红 / 变快 >1.5× 绿)。

连续冷却徽章 🕐 — 客户端滚动 6 周快照,连续 ≥2 周处于 cooling/endangered 的联系人会显示「连续 N 周」红色徽章,比单周更硬。

导出中心

侧边栏「导出」页勾选内容 + 目标,共 8 种目标 可选,复用同一份 Markdown 产出,区别在"去哪里落地"。

笔记 / 文档平台

  • Markdown:单文件直下 / 多文件自动打 .zip
  • Notion:填 Integration Token + Parent Page ID,走 POST /v1/pages + 自实现 Markdown→Blocks
  • 飞书文档:填 App ID / App Secret + folder_token,走 upload_allimport_tasks 异步轮询

云盘 / 对象存储

  • WebDAV:填服务器 URL + 用户名 + 应用密码(坚果云 / Nextcloud 建议生成专用应用密码)+ 上传前缀。首次会递归 MKCOL 创建前缀目录。兼容坚果云 / Nextcloud / ownCloud / 群晖等
  • S3 兼容:填 Endpoint(留空=AWS 官方)/ Region / Bucket / AccessKey / SecretKey / 路径前缀。MinIO / R2 / 七牛建议勾「Path-style URL」。覆盖 AWS S3 / Cloudflare R2 / 阿里云 OSS / 腾讯云 COS / 七牛 / Backblaze B2
  • Dropbox:App Console → Create app → 生成 "Generated access token"(长期)直接粘进来。无需 OAuth 回调流程
  • Google Drive:在 Google Cloud Console 创建 OAuth 2.0 Client,Authorized redirect URI 填 http://127.0.0.1:<PORT>/api/export/oauth/gdrive/callback(本地运行)或 https://<你的域名>/api/export/oauth/gdrive/callback(反代)。Client ID / Secret 粘进配置卡 → 保存 → 点「授权」→ 浏览器完成授权即可。refresh token 自动刷新,过期不用管
  • OneDrive:Azure Portal → App registrations → 新建应用,Redirect URI 同上规则填 /api/export/oauth/onedrive/callback,API 权限勾 Microsoft Graph → Files.ReadWrite(delegated)。Tenant 一般填 common。个人 / 工作账号都支持

反代场景需要显式配环境变量

WeLink 不再读取 X-Forwarded-Host / X-Forwarded-Proto 请求头(防止 CSRF 劫持 OAuth 回调地址)。

  • 本地直跑 → 默认 http://127.0.0.1:<PORT> 自动工作
  • 反代到公网 / 局域网域名 → 必须设环境变量 WELINK_PUBLIC_URL=https://your.domain,否则授权按钮打开的链接里 redirect_uri 会是 127.0.0.1,Google / Microsoft 会拒绝

Token / Secret 配置和 LLM 配置一样支持脱敏占位符 __HAS_KEY__,保存后不会泄露明文。

数据库 · 自然语言查询

侧边栏「数据库」页顶部的 NL 查询面板,用中文问问题:

  • 「我和老婆的第一条消息是什么时候」
  • 「今年跟我妈聊了多少条消息」
  • 「哪些群聊半年没发言了」

LLM 读取 WCDB schema 摘要 → 输出 {db, sql, explain} JSON → 后端执行 SELECT/PRAGMA(严格限制,LIMIT 50)→ 返回结果表(≥2 列时可一键切图表)+ AI 解释。

跨库联系人消息:问「我和 XX 的」这种跨库问题,LLM 返回 mode=contact_messages,后端自动完成"contact.db 模糊查 username → md5 算 Chat_xxx 表名 → 遍历 message_N.db 找到对应 DB 执行"三步跳转。

下方的 SQL 编辑器收起在「高级」链接下,默认不打扰;展开后有 10 个预置模板 + 结果一键画图 + 磁盘占用环形饼图 + 执行历史 / 收藏。

当前已知的键盘导航

场景快捷键
全局命令面板⌘K / Ctrl+K
Tab 快速跳转⌘1 .. ⌘9 / Ctrl+1..9
命令面板内导航 Enter Esc
Modal 关闭大多数 Modal 支持 Esc / 点外部关闭

有更多希望添加的快捷键或体验优化?欢迎到 GitHub Issues 提建议。

WeLink · AGPL-3.0 · 所有数据仅在本地处理,不上传任何服务器 · vdev