Skip to content

CallStorm/FlashLog

Repository files navigation

FlashLog — AI 智能工时记录

本地优先 · BYOK · 无后端

FlashLog 是一款纯单机、AI 驱动的移动端工时 App:语音或文字描述工作内容,经语音识别与大模型自动提炼为结构化「工时卡片」;积累的数据可由 AI 分析工时分布、总结阶段工作并给出改进建议;分析页还支持 语音播报 回复。所有记录仅存本机,LLM / 语音识别 / 语音合成由 App 直连你配置的云服务商(默认火山引擎),不经任何第三方服务器转发。

产品原则

原则 说明
Local-First 工时记录仅存本机 SQLite,支持离线查看与手动录入
BYOK 用户自带 API Key,费用由用户自行承担
No Backend 无账号、无云同步、无 API 代理

功能概览

页面 主要功能
工作记录 文字输入或按住麦克风录音(最长约 3 分钟);火山 ASR 转写 → 流式 AI 总结为一张可编辑工时卡片(任务、工时大类、日期、时长、描述);口述「昨天…」等可解析其他日期;补充说明后重新总结会合并预览,确认保存写入 SQLite
消息 统计自启用日起尚未填写工时的中国工作日;Tab 角标显示待补记天数;点击某日跳转工作记录并聚焦输入
历史 列表 / 日历两种视图;单条编辑、删除;按日期范围导出分享(文本、图片、Excel、Word);Android 支持微信、QQ、企业微信定向分享
分析 基于本机工时的 AI 对话助手;自动解析问题中的时间范围;常用问题快捷入口、多轮对话;可选 TTS 语音播报(复用 ASR Key)
设置 火山方舟 LLM、豆包 ASR / TTS、定时提醒(工作日 / 每天)、工时大类、浅 / 深色主题、清除本地数据

功能演示

真机录屏,展示录音 → AI 总结 → 保存 → 历史 / 分析主流程。

FlashLog 功能演示

架构示意

flowchart TB
  subgraph app [FlashLog]
    Home[Home]
    Messages[Messages]
    History[History]
    Analysis[Analysis]
    Settings[Settings]
  end
  subgraph local [Device]
    SecureStore[SecureStorage]
    DB[SQLite]
    Notif[LocalNotifications]
  end
  subgraph volc [Volcengine BYOK]
    LLM[Ark LLM]
    ASR[Doubao ASR]
    TTS[Doubao TTS]
  end
  Settings --> SecureStore
  Home --> LLM
  Home --> ASR
  Analysis --> LLM
  Analysis --> TTS
  Home --> DB
  History --> DB
  Analysis --> DB
  Messages --> DB
  Settings --> Notif
  Notif -->|deeplink| Home
Loading

快速开始

环境要求

要求
Node.js LTS 18+
浏览器开发 现代浏览器 + 麦克风(可选)
Android 构建 JDK 17、Android SDK;详见 ANDROID.md

安装与运行

npm install
npm run dev          # http://localhost:5173
npm run build        # 生产构建 → dist/
npm run preview      # 预览 dist/

浏览器开发说明

  • 工时数据使用 localStorage 回退(非 SQLite)
  • API Key 使用 Preferences 回退(非 Secure Storage)
  • ASR WebSocket 经 Vite 代理 /api/openspeech-ws 转发至火山

首次配置

安装 App 或启动开发服务器后,进入 设置 填写凭证:

服务 必填项 默认值
LLM API Key、Model / Endpoint ID Base URL: https://ark.cn-beijing.volces.com/api/v3
ASR API Key、Resource ID volc.seedasr.sauc.duration
TTS 复用 ASR Key、Resource ID、音色 Resource ID: seed-tts-2.0
  • LLM Model 可填推理接入点 ep-xxxxxxxx,或模型名如 doubao-1-5-pro-32k-250115
  • 未配置 LLM Key 时,「AI 总结」不可用,但仍可手动填写卡片并保存

参考文档

Android 构建

Windows 下在项目根目录执行 build-android-debug.bat 即可一键构建 debug APK(前端构建 → Capacitor sync → Gradle 打包):

build-android-debug.bat

也可使用 npm run android:debug(内部调用上述脚本)。

产物路径:

android/app/build/outputs/apk/debug/app-debug.apk

安装到真机:

adb install -r android/app/build/outputs/apk/debug/app-debug.apk

完整环境配置、Release 签名等见 ANDROID.md

发布 GitHub Release

一键构建 APK 并上传到 GitHub Releases(需先安装 GitHub CLI 并执行 gh auth login):

release-android.bat
用法 说明
release-android.bat 读取 package.json 版本(如 0.1.0),创建 tag v0.1.0 并上传 APK
release-android.bat 0.2.0 指定版本号
release-android.bat --draft 创建为预发布(Draft)
release-android.bat 0.2.0 --draft 指定版本 + 预发布

流程:构建 debug APK → 复制为 release/FlashLog-v{版本}-debug.apkgh release create 或覆盖上传已有 Release。

Release 说明模板:scripts/release-notes-template.md

下载链接(发布后可用):https://github.com/CallStorm/FlashLog/releases/latest

项目结构

src/
  pages/          Home, Messages, History, Analysis, Settings
  components/     UI 组件(analysis/、ShareWorklogSheet 等)
  services/       aiService, asrService, ttsService, export/, analysis/, reminderService
  db/             workLogRepository
  stores/         settingsStore, draftStore, pendingStore, analysisChatStore, themeStore
  plugins/        headerWebSocket, targetedShare(Capacitor 桥接 Android 原生)
  constants/      默认配置、分析 Prompt 等
  utils/          日期、工时大类、音频处理等
assets/
  demo/           README 演示 GIF
android/          Capacitor Android 工程
build-android-debug.bat   构建 debug APK
release-android.bat       构建并发布 GitHub Release

技术栈

层级 选型
UI React 19 + TypeScript + Tailwind CSS 4 + Lucide React
构建 Vite 6
路由 React Router 7
状态 Zustand 5
Capacitor 8(@capacitor/android
敏感配置 capacitor-secure-storage-plugin
非敏感配置 @capacitor/preferences
工时数据 @capacitor-community/sqlite(浏览器回退 localStorage)
本地提醒 @capacitor/local-notifications
导出 docxxlsxhtml-to-image

自定义 Android 插件

  • HeaderWebSocketPlugin — ASR WebSocket 握手时写入火山鉴权 Header
  • TargetedSharePlugin — 微信 / QQ / 企业微信定向分享

隐私与安全

  • 工时记录仅存本机,不出网
  • 网络请求仅发往用户配置的 LLM / ASR / TTS endpoint
  • API Key 存 Secure Storage(Android/iOS);浏览器开发时使用 Preferences
  • Settings 页明确提示:第三方 API 调用费用由用户自行承担

FlashLog v0.1.0 · Capacitor + React

About

AI 智能工时快捷记录工具

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors