Tallya 是一个本地优先的 AI 工作记忆工具,帮助你把每天的工作记录沉淀成可搜索、可复盘、可生成报告的本地记忆。
English — Tallya is a local-first work memory app for Windows & macOS: jot down what you did in one line, search it back instantly (SQLite FTS5), and turn entries into daily/weekly reports with optional AI assistance (Codex CLI, OpenAI-compatible, or Anthropic APIs). Built with Tauri 2 + React; your data stays in a local SQLite database.
前往 Releases 下载最新版本:
- Windows:
_setup.exe(NSIS 安装包)/.msi/ portable zip; - macOS:
.dmg(universal,同时支持 Apple Silicon 与 Intel)。
安装包未配置操作系统级代码签名:Windows 可能提示未知发布者;macOS 首次打开需在「系统设置 → 隐私与安全性」放行,或右键打开。应用内置检查更新。
Tallya 是一个 Windows / macOS 桌面端本地工具,当前处于早期开发阶段。
核心是「低摩擦记录 + 强检索」:随手记下每天做的事,之后随时搜回来。完整规划见 docs/PLAN.md。
当前已具备:
- 条目式记录:打字回车即存,一天可记多条,无 AI 网关、无必填;
- 当天条目流首页 + 历史日期切换;
- AI 追问式补充:对单条记录可让 AI 追问 1-2 个问题来补细节,未配置 AI 时退化为手动补充;
- 补充以子条目形式挂在记录下,可删;
- 跨天线索:AI 建议把同一件事的多条记录归并成线索,独立线索视图查看跨天故事线;
- Spotlight 风格搜索(SQLite FTS5,覆盖记录与补充);
- 报告:基于条目生成日报 / 周报 / 自定义范围报告,支持预览、保存、历史与缺口补全追问;
- 本地数据存储(SQLite);
- AI 服务:Codex CLI、OpenAI Compatible 与 Claude / Anthropic;
- 通知提醒配置与系统通知;
- 设置页;
- 本地优先。
- 本地优先;
- 低输入负担;
- 不做后台管理系统;
- 不做普通日报生成器;
- 首页始终聚焦“今天做了什么?”。
更多设计规则见 DESIGN.md。
- Tauri 2
- React
- TypeScript
- Vite
- shadcn/ui
- Tailwind CSS
- Codex CLI
- OverlayScrollbars
安装依赖:
pnpm install启动前端开发服务:
pnpm dev启动 Tauri 桌面开发环境:
pnpm tauri dev构建前端:
pnpm build运行测试:
pnpm test运行 lint:
pnpm lint常规检查:
pnpm typecheck
pnpm lint
pnpm test打包前检查:
pnpm check:release测试分层、Tauri API mock、SQLite 测试隔离和后续 E2E 策略见 TESTING.md。
本机打包(需要对应平台的 Tauri 打包工具链,Windows 需要 NSIS / WiX):
pnpm check:release
pnpm tauri build正式发布走 GitHub Actions 的 Release workflow:推送 tag v{version}(或手动触发)后,会在 Windows 与 macOS runner 上分别构建 NSIS / MSI / portable zip 与 universal dmg,创建 draft GitHub Release,并生成应用内自动更新所需的 latest.json。常规提交和 PR 由 CI workflow 覆盖 typecheck、lint、Vitest、Rust test/check 和前端 build。
完整发布步骤与验收清单见 RELEASE_CHECKLIST.md。
Tallya 当前支持三种用户可见 AI 服务:
- Codex CLI:适合本机已安装并登录 Codex CLI 的用户,生成通过本机 Codex CLI 执行。
- OpenAI Compatible:适合使用 API Key、OpenAI API 兼容服务、中转服务、DeepSeek、Kimi 或 OpenRouter 的用户。
- Claude / Anthropic:适合使用 Anthropic 原生 Messages API(或兼容中转)的用户。
使用 OpenAI Compatible 或 Claude / Anthropic 时,需要在设置页填写 Base URL、API Key 和模型。生成所需的工作记录内容会发送到用户配置的 API 服务;API Key 和设置保存在本机,不会用于云同步。Mock Provider 仅用于测试和开发,不会在用户界面中暴露。
src/components/ui
shadcn 基础组件。
src/features/work-memory/components
工作记忆相关 UI 组件。
src/features/work-memory/components/settings
设置页相关组件。
src/features/work-memory/hooks
页面状态和交互 hooks。
src/features/work-memory/services
业务服务、repository、AI provider、通知调度等。
src/features/work-memory/services/ai
AI Provider 与 Codex CLI 相关逻辑。
src/lib
通用工具。
src/styles
全局样式。
src-tauri
Tauri 后端。
- 开发前阅读 AGENTS.md 和 DESIGN.md;
- 不要把 UI、存储、AI 调用混在一个组件里;
- 不要把业务组件放进
components/ui; - 不要暴露 Mock Provider 给用户;
- 版本号跟随
package.json; - 新功能优先保持本地优先。
- 工作记录默认保存在本机;
- 当前不依赖云同步;
- AI 生成通过用户本机配置的 AI 服务进行;
- 使用 Codex CLI 时,实际数据处理行为取决于本机 Codex 配置。
SQLite 使用 Tauri SQL 插件,当前数据库配置为 sqlite:tallya.db。该路径相对 Tauri BaseDirectory::App,也就是应用数据目录,不是项目根目录,也不是 ~/.tallya。Windows 通常位于 AppData/Roaming/<bundle identifier>/tallya.db,macOS / Linux 根据 Tauri 应用数据目录规则存放。
Tallya 会把关键错误和脱敏诊断信息写入 Tauri 应用数据目录下的 logs/ 目录。日志按天保存,自动保留最近 7 个日志文件。日志用于排查 AI Provider、SQLite、备份恢复、通知和托盘等问题,不会自动上传。
用户可以在 设置 → 数据管理 中打开日志目录,或导出最近诊断日志后手动发给开发者。日志会脱敏 API Key、Authorization header、Bearer token,并且只保留截断后的响应片段;使用远程 AI Provider 时,不会记录完整工作内容或完整 prompt。