【免费下载链接】stenoaiStenographAI is the secure privacy-first AI notepad notetaker for confidential conversations in government defence sectors. On Windows, Linux MacOS.项目地址https://gitcode.com/gh_mirrors/st/stenoai点击查看免费下载StenoAIStenographAI是一款隐私优先的 AI 会议记录工具把录音、实时转写、AI 摘要和问答全部跑在你的本地设备上没有云端、没有用量限制。本文是一份面向新手的 StenoAI 源码构建指南带你完成从 clone 仓库、搭建本地开发环境、运行单元测试到跑通 Playwright e2e 分层测试的完整流程。提示开发测试以macOS为主Apple SiliconWindows 处于 alpha 阶段。全程只需 Python 与 Node.js 两个基础环境。1. 认识项目结构StenoAI 源码由哪些部分组成在动手之前先了解 StenoAI 的分层架构能帮你读懂后续每一步在做什么。整个仓库由三部分构成目录作用技术栈app/桌面应用外壳Electron React ViteTypeScriptsrc/simple_recorder.pyPython 后端 CLIPyInstaller 打包约 60 个命令行子命令e2e/端到端测试Playwright驱动真实 Electron 窗口核心思想是Electron 是一个薄壳真正干活的是 PyInstaller 打包出的 Python CLI 子进程。每一项操作录音、转写、摘要都是一次子进程调用没有常驻 Python 服务。架构细节可参考开发说明 CLAUDE.md。2. 环境准备一键安装前置依赖开始本地开发前请确认已安装以下工具Python 3.9Node.js 18macOS 14.4Apple Silicon—— 开发和测试的主平台依赖清单位于 requirements.txt其中按平台做了区分Apple Silicon 使用parakeet-mlxMLX 加速Windows / Linux 则使用onnx-asrONNX Runtime CPU 后端。这些差异对源码构建影响不大pip会根据当前系统自动选择。3. 从源码拉取并初始化 StenoAI 本地开发环境第一步是克隆仓库并建立 Python 虚拟环境。把下面这段命令依次粘贴到终端即可git clone https://gitcode.com/gh_mirrors/st/stenoai cd stenoai # 创建并激活 Python 虚拟环境 python3 -m venv venv source venv/bin/activate pip install -r requirements.txt接下来下载后端需要捆绑的二进制Ollama 与 ffmpeg。这些二进制会被打进最终包因此无需系统级安装 Ollama./scripts/download-ollama.sh该脚本为 scripts/download-ollama.sh它会拉取 Ollama 服务端和 ffmpeg 到本地bin/目录供 PyInstaller 后续打包使用。4. 构建 Python 后端启动 Electron 应用4.1 用 PyInstaller 打包后端Python 后端必须先打包成可执行文件Electron 才能调用。执行pip install pyinstaller pyinstaller stenoai.spec --noconfirm成功后会生成dist/stenoai/stenoai。可以用--help快速验证 CLI 是否正常dist/stenoai/stenoai --help⚠️ 关键顺序pyinstaller步骤必须在 Electron 打包 / 启动之前完成。开发模式下getBackendPath()会回退到dist/stenoai/stenoai缺少它应用将无法正常录音或转写。4.2 启动 Electron 桌面应用进入app/目录安装前端依赖并启动cd app npm install npm startnpm start会先用vite build重新构建渲染进程再启动 Electron。如果你只改了main.js/preload.js可以用更快的npm run start:nobuild跳过渲染层重建。各脚本定义见 app/package.json。首次启动会进入设置向导自动下载转写模型和摘要模型Gemma 4 E2B 默认约 4.3 GB下载完成后即可开始录音。构建成功后你会看到类似下面的主界面5. 运行单元测试Node 与 Python 双测试栈StenoAI 拥有两套独立的单元测试体系分别覆盖前端Node / Vitest与后端Python / unittest。5.1 前端单元测试Nodecd app npm run test:unit该命令会并行运行主进程的node --test系列用例如meeting-transfer-codec.test.js、settings-ipc.test.js等再调用vitest run跑渲染层测试。相关测试脚本声明在 app/package.json。5.2 后端单元测试Pythonpython -m unittest discover tests仓库根目录下的tests/提供了完整的后端用例覆盖转写、摘要、配置持久化、说话人分离等模块。也可以只跑单个用例例如python -m unittest tests.test_config.ConfigStoragePathTests.test_set_storage_path_handles_permission_errors开发流程与提交规范可参考 CONTRIBUTING.md。6. Playwright e2e 分层测试完全指南StenoAI 的端到端测试位于仓库根目录的 e2e/ 中配置核心是 e2e/playwright.config.ts。它通过规格文件名的后缀把测试分成三个层级便于 CI 拆分执行层级文件命名运行内容适用场景T1*.t1.spec.ts仅渲染进程 mock IPC无 Python / 无网络快速、全隔离T2*.t2.spec.ts真实后端 mock Ollama / org adapter验证完整接线T3*.t3.spec.ts长会议分块冒烟夜间任务重负载按日程跑6.1 运行整个 e2e 套件cd app npm run test:e2e运行前需确保渲染进程已构建且 T2 需要dist/stenoai/后端已打包完成。6.2 只跑某一个层级cd app npm run test:e2e -- --projectt1把t1换成t2即可运行真实后端层级。6.3 测试隔离机制为什么安全这是 e2e 设计的精华所在每个测试都会把环境变量STENOAI_USER_DATA_DIR指向一个临时目录。由于主进程getUserDataDir()与后端get_user_data_dir()都遵循这个变量测试永远不会读写你真实的~/Library/Application Support/stenoai数据。启动逻辑封装在 e2e/fixtures/electron.ts 中它会等待[data-app-ready]标记而非写死超时并在优雅关闭卡住时强制结束进程树。 小经验T2 / T3 的断言默认给到 15 秒轮询预算见 e2e/playwright.config.ts因为每次 IPC 调用都会派生一个新的stenoai子进程在 CI 高负载下单次调用可能超过 5 秒。workers: 1则是为了串行化避免多个真实 Electron 实例争抢固定的 Ollama 端口11434。7. 打包构建可分发的应用可选当本地开发与测试都通过后你可以构建一个可安装的分发版本cd app npm run buildnpm run build会先构建渲染层再交由 electron-builder 按package.json中的build配置产出 macOS DMG / ZIP、Windows NSIS 安装包或 Linux deb / AppImage。注意electron-builder 会通过extraResources把../dist/stenoai打进安装包因此 PyInstaller 步骤必须先成功。 生产提醒开发模式npm start不等于打包产物。正式发布前应重新构建 DMG并做冷启动测试先pkill -f ollama再全新启动确保录音→转写→摘要全流程在无预置服务时也能跑通。8. 常见问题与排错应用能启动但无法录音 / 转写大概率是dist/stenoai/后端未构建重跑pyinstaller stenoai.spec --noconfirm。e2e 报端口占用或 flaky确认没有其他 Ollama 进程占用11434本地可手动pkill -f ollama。终端看不到后端日志从终端直接启动应用以流式查看 Python 子进程、Whisper、Ollama 的输出与堆栈。Linux 缺少系统音频AppImage 需自行安装 PortAudiosudo apt install libportaudio2否则设置检查会报OSError: PortAudio library not found。更多排错与日志位置可查阅 README.md 的 Troubleshooting 章节。9. 小结StenoAI 源码构建路线图把整条链路串起来你只需要记住这五个动作git clonepip install -r requirements.txt初始化环境./scripts/download-ollama.sh拉取捆绑二进制pyinstaller stenoai.spec --noconfirm打包 Python 后端cd app npm install npm start启动本地开发npm run test:unit与npm run test:e2e验证改动至此你已经掌握了 StenoAI 的本地开发、单元测试与 Playwright e2e 完整测试流程可以开始在这个隐私优先的 AI 会议记录工具上贡献代码了 赞分享【免费下载链接】stenoaiStenographAI is the secure privacy-first AI notepad notetaker for confidential conversations in government defence sectors. On Windows, Linux MacOS.项目地址https://gitcode.com/gh_mirrors/st/stenoai点击查看免费下载相关推荐如何从源码构建PastelXcode构建、DMG打包与单元测试完整教程如何从源码构建PastelXcode构建、DMG打包与单元测试完整教程 Pastel 是一款运行在 macOS 26Apple 芯片上的应用历史版本下载工Kubernetes 源码开发指南本地集群搭建、单元测试与 e2e 测试实践Kubernetes 源码开发指南本地集群搭建、单元测试与 e2e 测试实践 本文是基于《Kubernetes 指南》社区贡献章节中的开发指南整理而成的上游源云原生教程TanStack Router 代码式路由测试完整指南从 Vitest 单元测试到 Playwright E2ETanStack Router 代码式路由测试完整指南从 Vitest 单元测试到 Playwright E2E 导读 本文聚焦 TanStack Route前端路由SSR创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考