这份文档说明 chatjevs.com 的信息架构、视觉语言、首屏演示与入口设计。改版面之前先读它;改文案或版本号看 MAINTAINING.md。后半部分的旧版迁移表保留为历史记录,以本页前两节和 MAINTAINING.md 的现行入口规则为准。
读者
- 从公众号、短视频、朋友转发来的安卓用户:想知道它能帮我做什么、安不安全、怎么装。多数在手机上打开。
- 从 GitHub、英文 awesome 清单和 X 来的开发者:想知道它怎么判断、数据怎么走、代码在哪。多数在电脑上打开,一部分读英文。
他们的问题,页面按这个顺序回答:
- 它到底做什么?(首屏演示:一条消息进来,到回复填进输入框)
- 它凭什么比直接让 AI 写一段强?(01 先看懂:同一个「嗯」,7 道判断题,和其他做法比)
- 中间发生了什么?(02 怎么工作:哪一步在手机上,哪一步发往你配置的接口)
- 它读我的聊天,数据去了哪?(03 数据去向)
- 我的 App 能不能用?电脑呢?(04 支持的 App)
- 怎么装?(05 开始使用)
- 还有什么要提前知道的?(06 常见问题 + 现在还做不到的)
转化目标:让访客在了解产品后进入安卓 GitHub 主仓库的「开始使用 Jev」区,选择 Android、Windows 或 macOS。官网没有 APK 直下入口。三端获取卡片同级展示,其后是简短 Star 支持提示,入口区最后提供安装教程与交流更新。隐私政策、许可和 Issue 仍按各自用途链接。首屏和收尾色带提供同一 GitHub 获取按钮。
| # | 节 | 锚点 | 这一节回答的问题 | 节尾的下一步 |
|---|---|---|---|---|
| — | 首屏 | #top |
它是什么?用起来是什么样? | 前往 GitHub 获取 Jev、「聊天内容去了哪里」 |
| 01 | 先看懂 | #read |
为什么先判断再写?判断些什么?和别的做法差在哪? | 接下来:看它怎么工作 |
| 02 | 怎么工作 | #how |
从屏幕到输入框经过哪几步?哪步在本机、哪步发出去? | 接下来:聊天内容去了哪里 |
| 03 | 数据去向 | #privacy |
读了什么、发给谁、存在哪、怎么删、从不做什么 | 读完整隐私政策 |
| 04 | 支持的 App | #apps |
QQ / X / 飞书 / 其它 App / 网页 / iOS 各是什么状态? | 前往三端获取区 |
| 05 | 开始使用 | #start |
三端各怎么获取?Android 装包、填密钥、开权限各怎么做? | 三端同级卡片 → Star 提示 → 安装教程与交流更新 |
| 06 | 常见问题 | #faq |
8 个问题 + 8 条已知限制 | 提 Issue 或公众号私信 |
| 07 | 联系与交流 | #contact |
去哪里交流、反馈问题? | 主仓库交流区、Issue |
| — | 收尾色带 | — | 选择平台 | 前往 GitHub 获取 Jev |
| — | 页脚 | — | 产品 / 资源 / 社区链接、许可、免责声明 | — |
排序依据:先让人看到那一刻(首屏演示),再讲「先看懂」这个差异点,然后立刻把信任问题讲清楚(它读聊天,这是用户心里的头一道坎),然后才是支持范围、安装和问答。隐私放在第 3 节、而不是页底,是这一版和旧版结构上改动大的地方。
页面高度(本地实测,浅色中文):
| 1440 宽 | 375 宽 | |
|---|---|---|
| 旧版 | 7,913px | 12,308px(旧版在 375 宽下横向溢出到 443px) |
| 新版 | 9,443px(英文 10,098px) | 15,720px(无横向溢出) |
新版保留了会动的首屏演示、「同一个嗯」对照、7 道判断题、数据去向图和五问、单独展示的 8 条已知限制、3 个新问答。三端获取现在集中在 05 节。
概念:批注。 Jev 在聊天旁边做的事,像有人在对话边上写一张安静的批注:这句话是什么意思、有多危险、可以怎么接。页面把这个动作做成几种反复出现的元素,全部从 App 悬浮窗里长出来,不另造图形:
- 气泡尾巴标签:节标题上方的小标签(
01 先看懂)、首屏批注卡、步骤编号,左下角都是尖的,像一个聊天气泡。 - 虚线引线:首屏右侧的批注卡用一条虚线连到手机里它说的那个位置(悬浮球、危险标签、第 1 条候选、发送键),跟着演示步骤移动。
- 危险等级刻度:0–9 十格刻度条,0–2 绿、3–5 橙、6–9 红,和 App 源码里
dangerColor的分档一致。只用在「同一个嗯」对照里。 - 实心 / 虚线:实心蓝底 = 在你手机上发生;虚线描边 = 发往你配置的接口;斜线底 + 删除线 = 不存在的环节(作者服务器)。「怎么工作」和「数据去向」两节用同一套记号。
蓝色系沿用旧站和 App(#2f6be6;悬浮窗按钮是 #3a7afe)。危险等级三色用 App 源码的值;页面上的文字版用加深色保证对比度。
| 令牌 | 浅色 | 深色 | 用途与对比度(WCAG) |
|---|---|---|---|
--bg |
#FBFCFE | #0B1120 | 页面底 |
--bg-tint |
#F2F5FA | #0E1628 | 交替节背景 |
--card |
#FFFFFF | #121B2E | 卡片 |
--ink |
#0E1726 | #E8EDF6 | 正文,17.5:1 / 16.0:1 |
--ink-2 |
#475467 | #AAB5C7 | 次要文字,7.7:1 / 9.0:1 |
--ink-3 |
#5D6B82 | #8C98AE | 注释,5.0:1(在 tint 底上)/ 5.4:1 |
--blue |
#2F6BE6 | #6F9BFF | 图形、描边、主按钮底(浅色) |
--blue-ink |
#2458C9 | #8FB2FF | 蓝色文字和链接,6.3:1 / 9.0:1 |
--btn-bg / --btn-ink |
#2F6BE6 / #FFF | #9DBBFF / #0B1120 | 主按钮,4.8:1 / 9.9:1 |
--safe / --warn / --risk |
#15803D / #B45309 / #B91C1C | #4ADE80 / #FBBF24 / #F87171 | 危险等级文字,均 ≥ 5:1 |
深色不是反色:浅色是「白天的聊天」,首屏右上一团蓝色光、左上一点暖色光;深色是「夜里回消息」,底色是深海军蓝,主按钮从实蓝换成浅蓝底深字(深底上更亮),收尾色带换成更沉的蓝。手机样机里的聊天界面跟着主题变成深色,但 Jev 悬浮窗始终是浅色——App 里的面板本来就是浅色的,深色下它从聊天上浮出来,反而更像真机。二维码始终白底,保证能扫。
- 中文:只用系统字体(苹方 / 鸿蒙 / MiSans / 微软雅黑 / 思源黑体),不下载中文字体。
- Figtree(Google Fonts,可变字重 400–800,只下拉丁子集):用于英文、数字和标题里的拉丁字母。
media="print" onload非阻塞加载;加载不到时退回系统字体,中文部分本来就不依赖它,版面不变。 - 手机样机里用系统 UI 字体,模拟真机。命令行用系统等宽字体。
中文排版:正文 16.5px、行高 1.75;段落限宽 32–46em;line-break: strict;标题 text-wrap: balance + text-spacing-trim,段落 text-wrap: pretty。英文行高 1.62,标题字距收紧。
- 内容区宽度上限 1180px;边距 16 / 24 / 32px。节间距
clamp(56px, 6.4vw, 92px)。圆角 10 / 16 / 22px。 - 组件:GitHub 获取主按钮、三端同级卡片、Star 支持提示、气泡尾巴标签、手机样机、批注卡、步骤进度条、对照卡、刻度条、题卡(选择 / 打分 / 是非三种色签)、对比表(首列吸附、横向可滚)、流程节点(实心 / 虚线)、数据边界图、问答定义表、状态表、命令块(可复制)、示意设置卡、权限开关、手风琴、已知限制卡、二维码卡、收尾色带。
- 做法:手机样机和悬浮窗都是 HTML/CSS 画的,不是截图。悬浮窗的结构、文案格式、颜色、字号按 App 源码
overlay/OverlayController.kt还原:「未用知识库」提示行、危险 8/9红色标签 + 「很危险」、「对方真实意图:…」、「把握 82%」、「要… · … · …」一行、「候选回复(Jev 排序)」、三张候选卡(第 1 张浅蓝底,「复制 / 填入」两个胶囊)。聊天界面是通用样式,不仿任何具体 App。 - 剧情:用宣传片 v2.3 里已经定稿的那段对话(对象说「你根本就不懂我」),判断和候选的数值也照宣传片(危险 8/9、确认你在不在乎、把握 82%、64% / 24% / 12%)。页面上写明「演示动画,对话为模拟;悬浮窗按 App 源码还原」。
- 四步:消息进来(悬浮球由绿变红)→ 看懂意图(标签、意图、要什么依次亮起)→ 三条候选(依次出现)→ 由你发送(点「填入」,回复逐字进输入框,发送键被虚线圈出、不被按下)。一轮约 12.6 秒循环。
- 批注卡:宽屏时在手机右边,脚本量出目标元素的位置,让虚线引线正好落在悬浮球 / 危险标签 / 第 1 条候选 / 发送键旁边;窄屏时放在手机下方。
- 可控:四个步骤是按钮,点哪一步就停在哪一步的完整状态;有「暂停演示」按钮(满足 WCAG 2.2.2);离开视口或切到后台自动暂停。
- 渐进增强:没有 JS、开了「减弱动态效果」、社交平台抓取时,看到的都是收尾状态:悬浮窗全开、第 1 条被选中、输入框已填、发送键被圈出、批注写着「发送键不动」。减弱动效时点步骤按钮仍可逐步看,只是没有过渡。
- 英文:演示里的对话和悬浮窗文字跟着翻成英文,说明里写明「App 本身的界面是中文」。
- 不用旧的悬浮窗截图,改为按源码重画。 旧版首屏和 og 图用的
assets/overlay.webp是早期截图:聊天界面看起来是已停用平台的界面(绿色气泡、绿色发送键),面板半透明处还能看到一条带作者真名的 @ 提及。两条都和硬规矩冲突,所以新版不再引用它;og 图按新演示重画,覆盖在原路径assets/og.png。overlay.webp、settings.webp两个文件已在上线时删除(全组织搜索过,没有外部引用)。 - 设置页截图换成示意卡。 旧的
settings.webp是 v1.2 的单密钥设置页,和「判断 / 回复 / 视觉三路接口」的说法对不上。「填密钥」一步改用一张标着「示意」的三路接口卡,标签文字取自 App 设置页源码。 - 首屏标题换成宣传片口号「回消息之前,先看懂对方」。 旧标题「任何聊天里,都有个副驾」在支持范围收窄到 QQ / X / 飞书 + 手动识别之后有点过;「对话副驾」这个定位保留在副标题、页脚和收尾里。
- 信任前置。 数据去向单独成节放在第 3 位:一张边界图(手机 → 只在分析那一刻 → 你配置的接口;作者服务器「没有这一环」)+ 五问(读了什么、发给谁、存在哪、怎么删、从不做什么)。开头就写明「这不是一个『什么都不收集』的产品」,和隐私政策原文的口径一致;不写任何安全承诺。
- 「怎么工作」的节点拆成六步,并标出每一步在哪里发生。 旧版把「Jev 判断」和「生成模型起草」画在同一格;隐私政策写的是「判断完成后起草候选回复」,所以拆成先后两步。
- 已知限制不折叠。 旧版藏在末尾一个问答里;新版放在问答旁边的独立卡片,宽屏时吸顶跟随。
- 中英单一来源。 所有文案在
i18n.js,index.html里的中文由tools/check-i18n.mjs --fix写入;?lang=en直接打开英文并记住选择。privacy.html保持中文,英文模式下所有隐私链接都指向它页底已有的#en-summary。 - 产品获取链接:所有获取、安装教程、交流与更新入口静态写入
https://github.com/jev-chat/jev-chat-jarvis,不带 README 章节锚点,无 JS 时也可用;用户进入仓库首页后再分流。download/旧文件保留供既有外链访问,页面不提供直下。 - Star 数实时拉
api.github.com/repos/jev-chat/jev-chat-jarvis,缓存 30 分钟;拉不到时显示页面里的静态兜底值。 - 首屏不含视频的传输量:本地服务器不压缩,1440 宽约 200KB(其中站内文件约 180KB:HTML、CSS、JS、字典、图标;另有 Google Fonts 和 Umami)。首屏没有任何位图,二维码懒加载。
- 语义:
header / nav / main / section[aria-labelledby] / footer;对比表、状态表是真table(对比表带 caption,打勾打叉旁有读屏文字);数据去向五问是dl;步骤是ol;问答是原生details。 - 演示:手机样机
aria-hidden,整段剧情用一段读屏文字说明(demo.sr);步骤按钮用aria-current="step"标当前步;暂停按钮有aria-pressed。 - 键盘:跳到主要内容、所有控件可 Tab 到、焦点环 2.5px 蓝色;汉堡菜单 Esc 关闭并把焦点还给按钮;复制成功用
aria-live播报。 - 对比度见色板表,正文和按钮都 ≥ 4.5:1。
- SEO:标题、描述、OG / Twitter 标签随语言切换;
hreflang指向?lang=en;OG 图 1200×630;JSON-LD 标注SoftwareApplication(作者只写 GitHub 账号)。
旧版 = main 分支 d314df5 的 index.html 与 privacy.html。「原样」表示文字不变或只改了标点;「改写」列出了改动原因。
| # | 旧版内容 | 新版位置 | 说明 |
|---|---|---|---|
| 1 | 标题「Jev 聊天助手 — 任何聊天里的对话副驾」 | meta.title |
改为「回消息之前,先看懂对方|开源安卓对话副驾」,保留「对话副驾」 |
| 2 | 描述:三端对话副驾、读懂对方、意图与危险等级、三条候选、一键填入、只填不发、QQ / X / 飞书已跑通 | meta.desc |
事实全保留,去掉「任何」 |
| 3 | OG 描述「读懂对方、三条回复、一键填入。开源 MIT,三端。程序只填不发。」 | meta.ogDesc |
原样 |
| 4 | assets/og.png |
同路径 | 重画(见决策 1) |
| 5 | Umami 统计脚本 | 两个页面的 </head> 前 |
首页保留;隐私页旧版没有,按要求加上 |
| 6 | 导航:功能 / 平台 / 快速开始 / 原理 / FAQ | 先看懂 / 怎么工作 / 数据去向 / 支持的 App / 开始使用 / 常见问题 | 跟着新结构 |
| 7 | 深浅色切换、导航 Star 计数、「下载 Android 版」 | 导航 | 保留;按钮文字改为「下载 APK」 |
| 8 | 标签「开源 · MIT · Android / Windows / macOS」 | 首屏 hero.eyebrow |
原样 |
| 9 | 标题「任何聊天里,都有个副驾」 | 首屏 hero.title |
换成宣传片口号(决策 3) |
| 10 | 副标题「读懂对方、三条回复、一键填入。QQ / X / 飞书已跑通,Windows / macOS 桌面版同步可用。」 | hero.sub + 「已跑通」一行 + hero.desk |
三件事拆开放 |
| 11 | 首屏 adb 命令 + 复制按钮 | 05 开始使用第 1 步 | 保留复制 |
| 12 | 首屏按钮:下载 APK、Windows 版、macOS 版、GitHub Star | 首屏:下载 APK + Star;桌面版改为按钮下一行的文字链接 | 让安卓做主角 |
| 13 | Star 引导「好用的话,去 GitHub 给我点个星吧」 | 05 节尾 + 收尾色带按钮 | 原话保留 |
| 14 | 「程序只把回复填进输入框,从不自动发送,不碰转账 / 红包 / 收款。」 | 首屏 hero.note |
原样,加「聊天内容去了哪里」链接 |
| 15 | 首屏四步流水线 + 悬浮窗截图 | 首屏演示 | 四步一致,换成会动的演示 |
| 16 | 滚动条「已在这些 App 里跑通」:QQ / X / 飞书(OCR)/ 任意 App(手动 OCR)/ 网页端(规划中) | 首屏底部「已跑通」 | 改成静态一行 |
| 17 | 「不只会写,先看懂。」+「大多数助手直接给你一段话。Jev 先判断这条消息到底是什么,再决定怎么回。」 | 01 节 | 导语原样;标题换成「同一个『嗯』…」 |
| 18 | 判断卡:判断模型不写字、固定选项、7 项、概率和把握度、约 1 秒 | jq.title / jq.lead + 7 张题卡 |
原意保留;7 项全部列出;含极限词的那一项改称「下一步怎么做」 |
| 19 | 候选卡:3 条(稳妥接话 / 给出行动或承诺 / 简短表态)、默认经 OpenRouter 调 DeepSeek、Jev 排序标概率 | 02 节第 3、4 步 | 原样 |
| 20 | 填入卡:点一下进输入框、只填不发、不碰转账红包收款、发送那一下由你按 | 演示第 4 步、02 节第 6 步、问答 1 | 原意保留,措辞避开极限词 |
| 21 | 对比表(7 行 × 4 列)+ 导语 + 脚注 | 01 节末 | 原样 |
| 22 | 「一个 App,六件事做扎实」+「Built for everyday chats — 不是演示用的 demo。」 | — | 这两句口号删掉;六个功能分别并入下面几行 |
| 23 | 功能:一套内核,多平台 | 02 节 how.f4 |
原样 |
| 24 | 功能:非侵入(不改安装包、不走接口或账号、不读数据库、只读屏幕) | 03 节「读了什么」、问答 5、对比表 | 原意保留 |
| 25 | 功能:知识库与关联上下文 | 02 节 how.f1 |
原样 |
| 26 | 功能:读不到就 OCR | 02 节 how.f2 |
原样 |
| 27 | 功能:接口全可配(五个预设、一键测连通、一把 OpenRouter 密钥就能用) | 02 节 how.f3 |
原样 |
| 28 | 功能:隐私在本机(密钥私有空间、只在判断那一刻发给你配置的接口、作者不架服务器、不落盘不进日志、历史默认关) | 03 节全节 | 展开成边界图 + 五问 |
| 29 | 平台表(QQ 9.3.50、X 12.25 中文界面、飞书 OCR 兜底、任意 App 手动识别、Windows、macOS、网页端规划中)+「真机实测为准…」 | 04 节 | 安卓部分原样;新增 iOS「暂不支持」一行(来自旧问答) |
| 30 | 「三个端,一套判断内核」+ 导语 + 三张端卡 | 04 节右栏「桌面版:姊妹项目」 | 导语原样;版本号按各自当前的 Latest Release 升到 Windows v0.1.11、macOS v0.6.0;Windows 卡里禁词表中的那个英文技术词改为「不改客户端」;补上两端的系统要求 |
| 31 | 三步开始:装包(Android 11+、adb)、填密钥(判断接口填 OpenRouter Key,其余继承,一键测连通)、开权限(三项,小米 / HyperOS 后两项必做) | 05 节 | 原样;补上「仅支持 arm64-v8a」「升级后无障碍关开一次」「博查 Jev 限时免费」三条(README / Release) |
| 32 | 设置页截图 | 05 节第 2 步示意卡 | 见决策 2 |
| 33 | 「它怎么工作」+「从屏幕上的一条消息,到输入框里的一句话…」+ 五个节点 | 02 节 | 导语变标题;节点拆成六步(决策 5) |
| 34 | 问答:会不会自动帮我发送? | 问答 1 | 原样 |
| 35 | 问答:支持 iOS 吗? / 电脑端能用吗? | 问答 6(合并) | 旧版这两问一处写网页版「暂无规划」、平台表写「规划中」,按 README 统一为「规划中,目前没有网页版」 |
| 36 | 问答:要准备什么密钥? | 问答 3 | 原意保留,补博查 Jev |
| 37 | 问答:我的聊天内容会被上传吗? | 问答 2 | 原样(两处表示「离现在近」的说法改为「近几条 / 近期」,避开极限词检查);加完整隐私政策链接 |
| 38 | 问答:群聊准吗?还有哪些已知限制?(5 条) | 「现在还做不到的」卡 | 5 条原样,另补 README 里的 3 条(OCR 只认可见部分、知识库按标签匹配、包体约 25 MB 只支持 arm64) |
| 39 | 联系:公众号二维码(私信)、交流群(7 天过期、在 README 底部)、GitHub Issues | 07 节 | 原意保留;交流群补上 README 现在的说法(群满或过期找公众号要新码) |
| 40 | 收尾「现在装上,下一条消息就有副驾」+ 版本行 + 按钮 | 收尾色带 | 原样,版本号更新 |
| 41 | 页脚标语「任何聊天里的对话副驾。读懂对方、三条回复、一键填入。」 | ft.tag |
改为「你的对话副驾。…」 |
| 42 | 页脚三栏:产品 / 资源 / 社区 | 页脚 | 保留;「更新记录」改指 CHANGELOG.md,资源栏加隐私政策 |
| 43 | 「© 2026 Jev 聊天助手 · MIT 开源 · 可商用,须注明出处(NOTICE) · 隐私政策」 | 页脚 | 原样 |
| 44 | 免责声明「仅供个人学习与研究使用…」 | 页脚 | 原样 |
| 45 | 二维码:只有公众号一张 | 07 节 | 保留,不新增 |
| 46 | window.JEV 版本号与 APK 地址逻辑 |
站内 download/ 直链 + main.js 第 4 段 |
见决策 8 |
| 47 | privacy.html 正文 |
同文件 | 正文一个字没改(脚本比对 <main> 纯文本:5,417 字,SHA-1 前缀 69677f0ced27,新旧一致);换了新导航、页脚和样式,去掉逐段淡入 |
- 删掉:「一个 App,六件事做扎实」「Built for everyday chats — 不是演示用的 demo。」两句口号;首屏的横向滚动条动画;旧的悬浮窗截图和设置页截图(文件保留,页面不引用)。
- 合并:「支持 iOS 吗」「电脑端能用吗」合成一问;「隐私在本机」卡和问答 2 的内容展开成第 3 节;平台表和三端卡合成第 4 节;旧的价值三卡(判断 / 候选 / 填入)拆进演示、「七道题」和流程六步。
- 新增:首屏演示、「同一个嗯」对照、7 道判断题、数据边界图和五问、iOS 状态行、桌面版系统要求、3 个问答(要花钱吗、需要 root 吗、悬浮球不见了 / 升级后没反应)、3 条已知限制、英文版。新增内容全部来自 App 仓库 README、CHANGELOG、Release 说明、源码和宣传片工程。
- 页面变长了(见第 2 节)。继续压就只能删内容。
- 候选排名标签:悬浮窗里候选的排名在 App 里写作「井号 + 序号 · 占比」。为了让极限词检查保持为空,页面源码只写「1 · 64%」,井号由 CSS 的
::before补上,看到的效果和 App 一样。og 图里是像素,不受影响。 - 隐私政策正文里还有 7 处会被极限词检查命中的字:都是时间、数量上的普通用法(「…近 10 条消息」「…多保留 300 条」「…后一步」「…新版本」),不是广告用语,而且正文按要求一字不改,所以留着。旧版同样是这 7 处。
- 英文里拿不准的说法:见
MAINTAINING.md末尾「英文用词」一节。 - 演示里的数值来自宣传片的模拟场景,不是某次真实调用的输出,页面上已标注。