Skip to content

Repository files navigation

Knot 绳结

办公数字化工具——以邮件和工作记录为中心的任务材料管理桌面应用。

Knot 可以从邮件或手动输入快速创建标准工作文件夹,持续沉淀 工作记录.md,并围绕当前工作、部门/项目归档、资料检索和 AI 工作报告形成一套轻量工作流。

功能总览

页面 主要功能
邮件列表 连接 IMAP 邮箱;优先展示本地缓存并在后台刷新;预览正文和附件;识别任务是否已生成;从邮件创建任务并下载附件。
快速创建 为非邮件工作选择日期、填写内容、预览目录名称,并指定部门/项目归属和 SOP 模板后创建任务。
当前工作 自动扫描工作目录中的 Knot 任务;按时间浏览;打开目录;编辑标题、归属和工作记录;将任务归档到部门或项目目录。
归档管理 按部门/项目和年份浏览归档;搜索标题、内容或归属;打开历史任务;将任务恢复到当前工作目录。
资料检索 在用户明确选择的归档范围内筛选候选,由当前 AI 模型结合标题、路径和工作记录摘要返回匹配度、原因及关键词。
工作报告 从当前工作和归档目录按日期扫描任务,选择需要汇总的工作项,生成日报、周报、月报或自定义周期报告,并复制 Markdown。
设置 配置窗口与标题、邮箱、工作目录、命名规则、SOP、AI 模型,以及部门/项目归档目标。
关于 查看版本和更新通道、检查并安装更新、访问发布页和反馈入口;开发者模式下可查看更新诊断信息。

任务工作流

  1. 通过「邮件列表」或「快速创建」建立任务目录。
  2. 在「当前工作」中维护 工作记录.md、任务标题和部门/项目归属。
  3. 工作完成后,将任务归档到对应的部门或项目目录。
  4. 在「归档管理」中检索、查看或恢复历史任务。
  5. 使用「资料检索」寻找历史材料,或在「工作报告」中汇总阶段性成果。

邮件密码和 AI API Key 均通过 Electron safeStorage 加密保存。

技术栈

  • 桌面应用:Electron
  • 前端:React + Ant Design + Vite
  • 后端:Go + chi
  • 目标平台:Windows / Linux(UOS 建议在目标系统手动打包)

快速开始

安装依赖

pnpm install

开发模式

开发模式下 Electron 会启动 backend/knot-backend.exe,因此需要先编译后端。

# 1. 编译后端,输出文件名必须是 knot-backend.exe
cd backend
go build -o knot-backend.exe

# 2. 回到项目根目录,启动前端和 Electron
cd ..
pnpm run electron:dev

如果你的 Go 工具链通过 Conda 环境提供,可以使用:

cd backend
conda run -n go go build -o knot-backend.exe

前端开发服务器

仅调试前端页面时可以运行:

pnpm run dev

Vite 开发服务器会将 /api 代理到 http://localhost:18000

构建打包

Windows

pnpm run electron:build:win

当前 Windows 打包脚本会通过 conda run -n go 编译后端,并将二进制输出到 electron/bin/knot-backend.exe。如果本机 Go 不使用 Conda,请根据本地环境调整 package.json 中的 backend:build:win 脚本。

Linux

pnpm run electron:build:linux

更多 UOS / Deepin 打包说明见 BUILD.md

测试与检查

# 前端单元测试
pnpm test -- --run

# 前端生产构建
pnpm run build

# 后端测试
cd backend
go test ./...

# 后端编译检查
go build -buildvcs=false ./...

# Electron 主进程语法检查
node --check electron/main.js
node --check electron/preload.js

首次使用

  1. 打开「设置 → 常规设置」,选择窗口样式和应用标题。
  2. 在「邮件设置」中配置服务器、端口、用户名、密码和 SSL;不使用邮件功能时可以跳过。
  3. 在「文件夹设置」中确认工作目录和命名格式,默认格式为 {{YYYY}}.{{MM}}.{{DD}}_{{subject}}
  4. 在「归档设置」中添加部门或项目,并为每个归属目标配置归档路径。
  5. 在「SOP 模板」中选择默认任务结构;需要 AI 功能时,再到「模型设置」配置模型和 API Key。
  6. 从「邮件列表」或「快速创建」建立第一个任务,然后在「当前工作」中维护和归档。

设置说明

设置分区 可配置内容 说明
常规设置 运行状态、窗口样式、标题显示、开发者模式、更新通道 窗口样式支持一体化和经典模式,切换后需重启;标题可在 Knot绳结 之间切换。
邮件设置 获取数量、时间范围、IMAP 地址、端口、账号、密码、SSL 邮件缓存会按服务器、账号及获取范围隔离。密码仅保存加密结果。
文件夹设置 工作目录、命名预设或自定义格式 支持 {{YYYY}}{{MM}}{{DD}}{{subject}}{{from}} 变量,并实时预览目录名。
SOP 模板 默认模板、模板目录、刷新模板列表 内置通用任务、学习笔记和照片项目;也可以在模板目录中安装自定义 SOP。
模型设置 当前模型、服务商、模型 ID、API 地址和 API Key 支持添加、编辑和切换 OpenAI Chat Completions 兼容模型;自定义模型可以删除。
归档设置 部门、项目、默认归属和归档路径 部门归档按年份分组;项目归档直接进入项目目录。

标题、开发者模式与更新

  • 「标题显示」控制侧边栏和关于页显示 Knot 还是 绳结,不会修改安装包名称或系统窗口的产品标识。
  • 开发者模式默认关闭。关闭时,关于页只显示普通用户需要的版本状态和更新操作。
  • 开发者模式开启后,关于页会提供「更新详情」,其中包含用于问题排查的更新诊断信息。
  • 更新通道默认只跟踪正式版;开启「预览版更新」后,也会检查 alpha/preview 版本。
  • 自动更新仅在打包后的桌面应用中可用。开发环境会提示前往发布页,发布包不支持自动更新时也会提供手动下载入口。

任务目录规范

新建任务文件夹使用以下结构:

2026.04.23_工作内容/
├── 00_来源资料/
│   ├── email.txt
│   ├── email.pdf
│   └── 附件/
├── 10_过程文件/
├── 20_成果输出/
└── 工作记录.md

说明:

  • 邮件来源任务会保存 email.txtemail.pdf 和附件。
  • 快速创建任务不会额外生成 referencesrequirement.md
  • 「当前工作」「归档管理」「资料检索」和「工作报告」均以 工作记录.md 为核心数据源。

内置与自定义 SOP

  • 通用任务:创建 00_来源资料10_过程文件20_成果输出,适用于日常办公任务。
  • 学习笔记:创建学习资料、学习笔记和课后作业目录,并生成对应的 Markdown 记录模板。
  • 照片项目:创建面向 Lightroom Classic 和 Photoshop 的照片工作流目录,仅支持从「快速创建」使用。
  • 自定义 SOP:在「设置 → SOP 模板」中打开模板目录,每个模板使用一个独立文件夹和 sop.json 描述目录、初始文件及允许的任务来源;保存后点击「刷新」即可识别。

照片项目 SOP

“照片项目”是仅供快速创建使用的内置 SOP,适合在 Workspace 外部的 NoAI 照片库中初始化 Lightroom Classic 项目目录。它不会创建 Lightroom 目录册;建议使用一个位于本地 SSD、Workspace 外部的主目录册。

创建前,在「文件夹设置」中将工作目录临时切换到照片库中的目标年份目录,例如 D:\PhotoLibrary_NoAI\Photos\2026,再在「快速创建」中选择“照片项目”。Knot 会生成:

2026.07.20_拍摄主题/
├── 00_Originals/
├── 10_Masters/
├── 20_Exports/
│   ├── Web/
│   ├── Social/
│   ├── Print/
│   └── Delivery/
└── 工作记录.md
  • 00_Originals 保存相机 RAW、原始 JPEG 或视频。
  • 10_Masters 保存 Photoshop 生成并需要长期保留的 PSD/TIFF 主文件。
  • 20_Exports 按发布用途保存可再生成的 JPEG/PNG。
  • 照片工作记录默认写入 ai_access: noaicontains_personal_media: true;AI 报告和 AI 资料检索会拒绝发送该项目。
  • 为形成第二道边界,照片库根目录仍应包含 NoAI 标识。导入后只在 Lightroom Classic 中移动或重命名照片。

工作记录格式

工作记录.md 使用 YAML frontmatter 保存机器可读元数据,正文保存面向人工和 AI 的工作内容。

示例:

---
type: task
schema_version: 3
title: 项目材料整理
status: active
created: 2026-04-23
updated: 2026-04-23
source: email
department: 办公室
project_path: C:/Workspace/2026.04.23_项目材料整理
folder_name: 2026.04.23_项目材料整理
archive_status: local_active
hash: xxxxxxxxxxxxxxxx
tags:
  - 工作材料
---

# 项目材料整理

## 工作内容

整理项目相关材料,完成来源资料归集、过程文件梳理和成果文件准备。

## 工作过程

- 2026-04-23:创建任务文件夹,整理邮件来源材料。

## 当前进展

已完成来源资料归集,正在补充过程文件。

## 下一步

继续完善成果文件,并将最终版本放入 20_成果输出。

「当前工作」会截取正文中的核心内容展示;生成工作报告时,所选任务的工作记录内容会发送给当前 AI 模型。

安全与隐私边界

  • Go 后端仅监听 127.0.0.1:18000,不向局域网开放;开发模式只允许本机 Vite 来源,打包后的 file:// 页面使用 null Origin。
  • 当前工作扫描、归档扫描、查重、工作报告和资料检索会跳过路径中带有 NoAIPrivate隐私身份证银行卡手机号学号信息人员名单家庭资料合同原件个人信息 等标识的目录。
  • 归档和恢复只接受包含 工作记录.md 的 Knot 任务目录,普通目录不会被移动。
  • AI 报告会发送所选任务的工作记录内容;资料检索还会发送候选归档的路径、标题和归属信息。请仅选择允许发送给当前模型服务的目录。
  • 上述机制属于应用级基础防护,不能代替操作系统权限、离线备份和敏感资料专用存储。

AI 模型与 AI 功能

AI 配置位于「设置 → 模型设置」。Knot 提供内置模型配置,也支持添加 OpenAI Chat Completions 兼容服务:

  • 模型名称与服务商:用于在设置页中区分多个模型配置。
  • 模型 ID:发送给接口的模型标识,例如 gpt-4.1-mini
  • API 地址:兼容 OpenAI Chat Completions 风格的接口地址,例如 https://api.openai.com/v1
  • API Key:保存时通过 Electron safeStorage 加密,本地设置中不存储明文。

当前选中的模型会用于:

  • 工作报告:根据选定任务生成日报、周报、月报或自定义周期报告。
  • 资料检索:对本地筛选出的候选归档进行相关性判断,并给出匹配结果。

使用这些功能前必须完成模型、API 地址和 API Key 配置。接口调用失败时会显示错误,不会用虚构内容替代真实工作记录。

项目结构

knot/
├── electron/              # Electron 主进程和预加载脚本
│   ├── main.js
│   └── preload.js
├── src/                   # React 前端
│   ├── components/        # 页面和业务组件
│   ├── services/          # API、设置、路径和邮件缓存服务
│   ├── App.jsx
│   └── main.jsx
├── backend/               # Go 后端
│   ├── api/               # REST API、任务目录、归档和日报逻辑
│   ├── mail/              # IMAP 邮件处理
│   └── main.go
├── scripts/               # 图标生成等辅助脚本
├── BUILD.md               # 打包说明
└── package.json

注意事项

  • 邮件列表缓存会按邮箱服务器、账号、端口、SSL、获取数量和时间范围区分,避免不同邮箱混用缓存。
  • 「当前工作」依赖文件夹中的 工作记录.md,删除该文件后任务不会被扫描识别。
  • 在「当前工作」中编辑任务标题会尝试同步重命名文件夹;如果目标文件夹已存在,会阻止更新并提示冲突。
  • Windows 开发模式下后端文件名必须为 backend/knot-backend.exe

About

Knot(绳结)是一个专为办公环境设计的数字化工具,旨在简化邮件处理与工作归档流程。 它通过将邮件转化为规范化的工作文件夹,帮助用户更高效地管理日常任务。

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages