JARVIS配置一页通:.env、API Keys与SSL证书快速指南

原创2026-10-23 18:27:301,917 阅读

JARVIS配置一页通:.env、API Keys与SSL证书快速指南

JARVIS 是一个运行在 Mac 上的语音 AI 助手,而 JARVIS 配置其实只有三件事:填写 .env 文件、配好两个 API Keys、生成一份本地 SSL 证书。读完本文,你在一页之内就能搞懂所有配置项,10 分钟让 JARVIS 开口说话。🎙️

配置总览:先建立全局认知

配置项 作用 必须? 所在位置
.env 文件 存放 API Keys 与个性化设置 ✅ 必须 项目根目录
ANTHROPIC_API_KEY 驱动"AI 大脑"(Claude) ✅ 必须 .env 内
FISH_API_KEY 驱动语音合成(TTS) ✅ 必须 .env 内
cert.pem / key.pem 启用安全的 WebSocket(wss) ✅ 建议 项目根目录

💡 新手最容易卡住的地方是第三步的 SSL 证书——它不是"可选优化",而是浏览器允许音频功能正常工作的关键。

第一步:创建 .env 配置文件

.env 是所有配置的"总开关"。项目自带了一份模板 .env.example,只需复制一份即可上手:

cp .env.example .env

server.py 启动时会自动读取 .env 并注入环境变量,因此任何修改保存后重启服务即可生效,无需改动代码。

模板中所有可用的配置项如下:

变量名 说明 是否必填
ANTHROPIC_API_KEY Claude 的 API Key,AI 大脑 必填
FISH_API_KEY Fish Audio 的 API Key,语音合成 必填
FISH_VOICE_ID 音色模型 ID,默认是 JARVIS(MCU)音色 可选
USER_NAME 你的名字,JARVIS 会这样称呼你 可选
CALENDAR_ACCOUNTS 限定读取哪些日历账号(逗号分隔邮箱) 可选
JARVIS_SKIP_PERMISSIONS 跳过 Claude CLI 的交互式授权提示,默认 true 可选
WEATHER_LOCATION_LABEL / WEATHER_LATITUDE / WEATHER_LONGITUDE 固定天气查询位置 可选
WEATHER_UNIT 温度单位,fahrenheit 或 celsius 可选

懒人福音:网页设置面板免改文件

如果你不想手动编辑文件,JARVIS 自带设置面板(源码见 frontend/src/settings.ts):

  • 直接在页面上粘贴 API Key,点击 Save Keys,程序会自动写回 .env 文件;
  • 面板提供 Test Connection 按钮,可实时验证密钥是否有效(对应后端接口 server.py);
  • 状态页会用红/绿小圆点告诉你 Claude Code CLI、Apple Calendar、Mail、Notes 各模块是否就绪(server.py)。

⚠️ 小提醒:状态检测会识别占位值——如果 .env 里还是模板默认的 your-anthropic-api-key-here,会被视为"未配置",别忘替换。

第二步:获取并填写两个 API Keys

这两个 Key 是整个 JARVIS 配置的核心,缺一不可:

  1. ANTHROPIC_API_KEY

    • 作用:驱动 Claude 进行意图识别、对话与任务规划(快速响应用 Haiku,深度研究用 Opus)。
    • 获取:在 Anthropic 开发者控制台注册并创建。
    • 填写:ANTHROPIC_API_KEY=sk-ant-你的密钥
    • 缺失后果:LLM 功能直接禁用(见 server.py)。
  2. FISH_API_KEY

    • 作用:把文字回复转换成带英式管家口音的 JARVIS 语音。
    • 获取:在 Fish Audio 官网注册并创建。
    • 填写:FISH_API_KEY=你的密钥
    • 缺失后果:文字照常工作,但 JARVIS 会"失声"(见 server.py)。

两者都填入后,建议先在设置面板里点一下测试按钮,看到绿色状态点再往下走。✅

第三步:生成 SSL 证书,解锁安全 WebSocket

为什么需要 SSL 证书?

JARVIS 的语音流走的是 WebSocket。浏览器对音频能力有安全上下文要求,而桌面悬浮层组件默认连接 wss://localhost:8340/ws/voice。本地开发时用一张自签名证书就能满足要求。

一条命令生成证书

在项目根目录执行:

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes -subj '/CN=localhost'

生成的两个文件放在项目根目录即可,有效期 365 天,到期重新执行一次命令。

后端如何识别证书

server.py 的启动入口会自动检测:只要 cert.pem 和 key.pem 同时存在,就自动启用 HTTPS + wss;你也可以用 --ssl 参数显式开启。启动成功后,终端会打印实际使用的协议:

WebSocket: wss://0.0.0.0:8340/ws/voice
REST API:  https://0.0.0.0:8340/api/

前端开发服务器如何配合

前端由 Vite 在 5173 端口提供服务,frontend/vite.config.ts 已把 /ws 和 /api 请求代理到带 SSL 的后端 https://localhost:8340(secure: false 表示信任自签名证书)。而 frontend/src/ws.ts 会根据页面协议自动选择 ws: 或 wss:,无需手动改连接地址。

可选配置:让 JARVIS 更像"你的" JARVIS

以下设置在 .env.example 中都有注释说明,按需取消注释即可:

  • USER_NAME=Tony — 设定称呼后,JARVIS 会用你的名字与你对话,而不是千篇一律的 "sir"(server.py)。
  • CALENDAR_ACCOUNTS=you@gmail.com,work@company.com — 留空则自动读取所有日历;设置了则只读指定账号,适合公私账号分离的场景(calendar_access.py)。
  • JARVIS_SKIP_PERMISSIONS — 默认为 true。因为 JARVIS 是纯语音交互,无法回应 Claude CLI 弹出的交互式授权窗口;如果你偶尔在终端里手动操作,可以设为 false 恢复逐次确认(actions.py)。
  • FISH_VOICE_ID — 换一个音色模型 ID,就能给 JARVIS 换个"声线"。

配置自检:启动前的最终清单

按顺序完成以下 5 步,配置即大功告成:

  1. ✅ cp .env.example .env,填好两个 API Key;
  2. ✅ pip install -r requirements.txt 安装 Python 依赖;
  3. ✅ cd frontend && npm install 安装前端依赖;
  4. ✅ 用 openssl 命令生成 cert.pem 与 key.pem;
  5. ✅ 双终端启动:
# 终端 1:后端
python server.py

# 终端 2:前端
cd frontend && npm run dev

然后在 Chrome 中打开 http://localhost:5173,点击页面启用音频,开口说第一句话吧。如果设置面板里所有状态点都是绿色——恭喜,你的 JARVIS 配置已经完成!🎉

📖 延伸阅读:CLAUDE.md 中记录了完整的 10 步启动流程与架构说明,遇到问题可以对照排查。

登录后查看全文
jarvis