CogniFlow 是一款为信息爆炸时代打造的智能信息管理平台,深度融合 AI 能力,帮助个人和团队高效管理任务、日程、笔记和知识。
- AI First: 将 AI 深度融入每一个工作流,而非简单的功能叠加
- Calm Tech: 平静技术理念,界面柔和专业,减少干扰
- Simple but Powerful: 界面简洁,功能强大
- Privacy First: 本地优先,数据自主可控
- Open & Extensible: 开源架构,支持插件扩展
| 特性 | CogniFlow | Notion | Obsidian | Todoist |
|---|---|---|---|---|
| AI 深度集成 | ✅ 原生 AI 能力 | ❌ 无 | ||
| 本地优先 | ✅ IndexedDB + 云端 | ❌ 仅云端 | ✅ 本地文件 | ❌ 仅云端 |
| 中文优化 | ✅ 智谱 AI 深度优化 | |||
| 团队协作 | 🔥 开发中 | ✅ 成熟 | ✅ 成熟 | |
| 开源免费 | ✅ MIT 协议 | ❌ 闭源 | ✅ 开源 | ❌ 闭源 |
- 自动分类: AI 自动识别内容类型(任务/日程/笔记/资料/事件)
- 智能提取: 自动提取时间、地点、人物、标签等关键信息
- 语义分析: 深度理解内容语义,智能推荐相关卡片
- 多模态支持: 文本、语音、图片、PDF 全方位支持
AI_Capabilities {
// 文本处理
text_analysis: ["分类", "摘要", "标签生成", "情感分析"]
voice_input: ["语音转文字", "多语言支持", "实时识别"]
// 视觉理解
image_analysis: ["OCR识别", "场景描述", "文字提取", "内容生成"]
attachment_support: ["PDF", "Word", "图片", "音频", "视频"]
// 智能建议
smart_recommendations: ["相关内容", "最佳实践", "模板推荐"]
conflict_detection: ["时间冲突", "资源冲突", "优先级建议"]
}- 📋 看板视图: 拖拽式任务管理,直观的进度追踪
- 📅 日历视图: 月/周/日多维度,时间冲突智能检测
- 📝 列表视图: 高效的信息浏览和批量操作
- 📈 报告视图: AI 自动生成周报、月报和数据分析
- 自然语言: 直接输入,AI 自动处理
- 语音输入: 🎤 支持语音转文字,解放双手
- 附件上传: 📎 图片、文档、音频智能分析
- 快捷命令:
/blog打开编辑器,@help获取帮助
- 冲突检测: 自动检测时间冲突并给出建议
- 智能提醒: 邮件、浏览器通知双重提醒
- 提醒队列: 可视化管理所有待发送提醒
- 邮件推送: 支持 QQ 邮箱 SMTP 自动发送
- 多格式支持: 图片、PDF、Office 文档
- AI 自动分析: 提取内容、生成摘要、自动标签
- 缩略图生成: 图片自动生成预览缩略图
- 存储灵活: 本地存储或云端 OSS
- 模板库: 内置丰富模板,一键套用
- 触发词: 输入关键词自动填充模板
- 自定义模板: 支持用户自定义工作流模板
- 变量系统: 动态变量、自动填充
- JWT 认证: 安全的 Token 认证机制
- 角色控制: 管理员/普通用户权限分离
- API 配额: 灵活的 API 使用次数管理
- 个人 API Key: 用户可配置自己的 AI Key
┌─────────────────────────────────────────────────────────────┐
│ 前端层 (Frontend) │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ React UI │ │ 状态管理 │ │ IndexedDB │ │
│ │ (Vite+TS) │ │ (Context) │ │ 本地存储 │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└───────────────────────────┬─────────────────────────────────┘
│ REST API
▼
┌─────────────────────────────────────────────────────────────┐
│ 服务层 (Backend) │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Express API │ │ JWT 认证 │ │ Cron 定时 │ │
│ │ (Node.js) │ │ 权限控制 │ │ 提醒服务 │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└───────────────────────────┬─────────────────────────────────┘
│
┌───────────────────┼───────────────────┐
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ PostgreSQL │ │ AI 服务 │ │ 外部服务 │
│ 主数据存储 │ │ 智谱 GLM │ │ 邮件 SMTP │
│ 多表+索引 │ │ 文本/视觉 │ │ 文件系统 │
└──────────────┘ └──────────────┘ └──────────────┘
graph LR
A[用户输入] --> B[AI 处理]
B --> C{内容分析}
C --> D[自动分类]
C --> E[提取信息]
C --> F[生成标签]
D --> G[存储到数据库]
E --> G
F --> G
G --> H[触发提醒]
H --> I[发送通知]
- 前后端分离: React + TypeScript / Node.js + Express
- 双模式存储: IndexedDB(本地)+ PostgreSQL(云端)
- AI First Design: 所有功能都围绕 AI 能力设计
- 微服务就绪: 模块化设计,易于扩展为微服务架构
- Node.js: >= 20.0
- pnpm: >= 9.0(推荐)或 npm >= 10.0
- Docker: >= 20.0(PostgreSQL 模式)
- 操作系统: macOS / Linux / Windows (WSL2)
⏱️ 3分钟上手 | 无需数据库 | 离线可用
# 1. 克隆项目
git clone https://github.com/alg-bug-engineer/cogniflow.git
cd cogniflow
# 2. 安装依赖
pnpm install
# 3. 启动开发服务器
pnpm run dev访问 http://127.0.0.1:5173 开始体验 ✨
⏱️ 5分钟部署 | 完整功能 | 团队协作
# 1. 一键部署(自动启动 PostgreSQL + 初始化数据库)
chmod +x deploy-all.sh
./deploy-all.sh
# 2. 启动前后端服务
pnpm run dev:postgres服务访问地址:
- 🌐 前端: http://127.0.0.1:5173
- 🔌 API: http://localhost:3001/api
- 🗄️ pgAdmin: http://localhost:5050
- 👤 默认管理员:
admin/admin123
# 使用 Docker Compose 启动所有服务
docker-compose up -d
# 查看日志
docker-compose logs -f
# 停止服务
docker-compose down部署完成后,通过局域网 IP 即可在手机浏览器访问:
# 获取本机 IP
ifconfig | grep inet
# 手机浏览器访问
http://192.168.x.x:5173💡 提示: 更多部署细节请参考 部署指南
场景: 管理代码任务、学习笔记、技术文章
输入: "明天下午3点和Alex讨论API设计,需要准备接口文档"
├─> AI 自动识别为: 日程
├─> 提取信息: 时间(明天15:00)、人物(Alex)、事项(讨论API设计)
├─> 自动添加任务: 准备接口文档
└─> 设置提醒: 提前15分钟通知
场景: 需求收集、迭代规划、会议记录
功能: 团队协作空间 (开发中)
├─> 共享工作区
├─> 实时协同编辑
├─> @提及通知
└─> 权限精细控制
场景: 构建个人知识库、学习笔记整理
输入: 上传 PDF 论文
├─> AI 自动分析: 提取摘要、关键信息
├─> 自动标签: 机器学习、深度学习
├─> 关联推荐: 相关笔记、论文
└─> 生成卡片: 可搜索、可引用
场景: 任务追踪、里程碑管理
视图: 看板 + 日历
├─> 拖拽式任务管理
├─> 时间冲突检测
├─> 进度可视化
└─> 智能报告生成
| 技术 | 版本 | 用途 |
|---|---|---|
| React | 18.x | UI 框架 |
| TypeScript | 5.x | 类型安全 |
| Vite | 5.x | 构建工具 |
| Tailwind CSS | 3.x | 样式框架 |
| shadcn/ui | Latest | UI 组件库 |
| Zustand | Latest | 状态管理 |
| React Query | Latest | 数据请求 |
| 技术 | 版本 | 用途 |
|---|---|---|
| Node.js | 20.x | 运行环境 |
| Express | 4.x | Web 框架 |
| PostgreSQL | 16.x | 数据库 |
| JWT | Latest | 认证授权 |
| Multer | Latest | 文件上传 |
| Nodemailer | Latest | 邮件发送 |
| 服务 | 用途 |
|---|---|
| 智谱 GLM-4 | 文本生成与理解 |
| 智谱 GLM-4V | 视觉内容分析 |
- 代码规范: Biome + ESLint
- 提交规范: Conventional Commits
- 版本控制: Git + GitHub
- 容器化: Docker + Docker Compose
cogniflow/
├── 📂 src/ # 前端源码
│ ├── 📂 components/ # React 组件
│ │ ├── ui/ # shadcn/ui 基础组件
│ │ ├── items/ # 条目相关组件
│ │ ├── attachments/ # 附件组件
│ │ └── voice/ # 语音输入组件
│ ├── 📂 pages/ # 页面组件
│ │ ├── Dashboard.tsx # 仪表盘
│ │ ├── Report.tsx # 报告页
│ │ └── Settings.tsx # 设置页
│ ├── 📂 db/ # 数据库适配层
│ │ ├── indexedDB.ts # IndexedDB 封装
│ │ └── postgres.ts # PostgreSQL 适配
│ ├── 📂 services/ # 业务服务
│ │ ├── aiService.ts # AI 服务
│ │ ├── apiService.ts # API 请求
│ │ └── reminderService.ts # 提醒服务
│ ├── 📂 hooks/ # 自定义 Hooks
│ ├── 📂 utils/ # 工具函数
│ └── 📂 styles/ # 全局样式
│
├── 📂 server/ # 后端源码
│ ├── 📂 routes/ # API 路由
│ │ ├── items.ts # 条目 CRUD
│ │ ├── users.ts # 用户管理
│ │ ├── attachments.ts # 附件上传
│ │ └── templates.ts # 模板管理
│ ├── 📂 services/ # 业务服务
│ │ ├── aiVisionService.ts # AI 视觉服务
│ │ ├── reminderService.ts # 提醒服务
│ │ └── emailService.ts # 邮件服务
│ ├── 📂 db/ # 数据库
│ │ ├── pool.ts # 连接池
│ │ └── queries/ # SQL 查询
│ └── 📂 middlewares/ # 中间件
│
├── 📂 database/ # 数据库脚本
│ ├── 📂 migrations/ # 迁移脚本
│ ├── deploy.sql # 部署脚本
│ └── verify-deployment-docker.sh # 验证脚本
│
├── 📂 docs/ # 文档
│ ├── 📂 quickstart/ # 快速开始
│ ├── 📂 user-guide/ # 用户指南
│ ├── 📂 development/ # 开发文档
│ ├── 📂 deployment/ # 部署文档
│ ├── 📂 features/ # 功能说明
│ └── 📂 archive/ # 历史文档
│
├── 📂 scripts/ # 工具脚本
│ ├── test-api.sh # API 测试
│ └── install-db-deps.sh # 依赖安装
│
├── 📄 .env.example # 环境变量示例
├── 📄 package.json # 项目配置
├── 📄 tsconfig.json # TS 配置
├── 📄 tailwind.config.js # Tailwind 配置
├── 📄 vite.config.ts # Vite 配置
└── 🚀 deploy-all.sh # 一键部署脚本
# 存储模式: local(本地) | postgres(云端)
VITE_STORAGE_MODE=postgres
# API 服务地址
VITE_API_URL=http://127.0.0.1:3001/api
# 智谱 AI 配置
VITE_ZHIPUAI_API_KEY=your_api_key_here
VITE_ZHIPUAI_MODEL=glm-4-flash
# 其他配置
VITE_APP_NAME=CogniFlow
VITE_SHOW_POLICY=true# 数据库配置
DB_HOST=localhost
DB_PORT=5432
DB_NAME=cogniflow
DB_USER=cogniflow_user
DB_PASSWORD=your_password_here
# 服务配置
PORT=3001
FRONTEND_URL=http://127.0.0.1:5173
JWT_SECRET=your_jwt_secret_here
# 邮件配置(可选)
EMAIL_USER=your_email@qq.com
EMAIL_PASSWORD=your_qq_smtp_password
# 附件配置
UPLOAD_DIR=./server/uploads
MAX_FILE_SIZE=10485760
# AI 配置
ZHIPUAI_API_KEY=your_api_key_here💡 提示: 完整配置说明请参考 环境变量文档
CogniFlow 支持系统级 API Key 和用户个人 API Key:
- 系统级 Key: 在
.env中配置,所有用户共享 - 个人 Key: 用户在设置页面配置,仅本人使用
获取智谱 AI API Key:
- 访问 智谱 AI 开放平台
- 注册/登录账号
- 在控制台创建 API Key
- 复制到配置文件
- 快速开始指南 - 3分钟上手教程
- 启动指南 - 详细启动步骤
- PostgreSQL 配置 - 数据库配置
我们欢迎所有形式的贡献!无论是代码、文档、Bug 报告还是功能建议。
在 GitHub Issues 中报告 Bug 或提出功能建议。
-
Fork 项目
# 点击 GitHub 页面右上角 Fork 按钮 git clone https://github.com/YOUR_USERNAME/cogniflow.git cd cogniflow
-
创建分支
git checkout -b feature/your-feature-name
-
提交代码
# 遵循 Conventional Commits 规范 git commit -m "feat: add awesome feature"
-
推送分支
git push origin feature/your-feature-name
-
创建 Pull Request
- 在 GitHub 上创建 PR
- 填写 PR 模板
- 等待 Code Review
- 提交规范: 遵循 Conventional Commits
- 代码风格: 使用
pnpm run lint检查 - 测试: 确保所有测试通过
pnpm test
- ✅ 清晰的提交信息
- ✅ 代码风格一致
- ✅ 添加必要的测试
- ✅ 更新相关文档
- ✅ 小步提交,频繁 PR
| 平台 | 链接 | 说明 |
|---|---|---|
| GitHub | alg-bug-engineer/cogniflow | 源码仓库 |
| 微信群 | 见下方二维码 | 用户交流群 |
| 邮件列表 | dev@cogniflow.app | 开发者讨论 |
⚠️ 注意: 二维码 7 天有效,失效请在 Issue 中索取最新二维码
感谢以下开源项目的贡献:
- React - UI 框架
- Vite - 构建工具
- Tailwind CSS - CSS 框架
- shadcn/ui - UI 组件
- PostgreSQL - 数据库
- 智谱 AI - AI 服务支持
特别感谢所有为 CogniFlow 贡献代码、文档、反馈和建议的开发者!🙏
本项目采用 MIT License 开源协议。
MIT License
Copyright (c) 2024 CogniFlow Team
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.





