Skip to content

wangyafu/firn

Repository files navigation

Firn

Write Freely, View Structuredly - 一个 AI 驱动的智能笔记应用

产品理念

Firn 解决了笔记软件中"输入"与"整理"的永恒矛盾:

  • 零税负输入:像发推特一样自由记录,无需打标签、选文件夹或填属性
  • AI 后期治理:结构化不发生在输入端,而发生在展示端。AI 自动分类、提取、整理你的笔记

核心功能

三层架构

  1. Level 0 - 全局输入框:常驻顶部,随时记录想法
  2. Level 1 - 双 Tab 切换
    • 滤镜 (Lenses):按主题查看原始笔记流(数学、财务、灵感等)
    • 视图 (Views):AI 生成的结构化洞察(财务看板、观点维基等)
  3. Level 2 - 胶囊导航:横向滑动的标签快速切换

AI 能力

  • 自动识别笔记类型(支出、收入、观点、任务等)
  • 智能提取关键信息(金额、摘要等)
  • 自动归类到相关滤镜
  • 生成数据可视化和知识库

技术栈

  • 框架:Next.js 15 (App Router)
  • UI:shadcn/ui + Tailwind CSS
  • AI:Vercel AI SDK + OpenAI
  • 数据存储:SQLite(嵌入式数据库)
  • 状态管理:Zustand
  • 设计风格:Swiss Style + Klein Blue 强调色

快速开始

1. 安装依赖

npm install

2. 配置环境变量

创建 .env.local 文件:

# 复制示例文件
cp env.example .env.local

编辑 .env.local,添加你的 AI 配置:

# 必填:API Key
OPENAI_API_KEY=sk-your-api-key-here

# 可选:自定义 API 地址(支持国内代理、本地模型等)
OPENAI_BASE_URL=https://api.openai.com/v1

# 小模型(用于简单任务:笔记分类、滤镜匹配等)
OPENAI_MODEL_SMALL=gpt-4o-mini

# 大模型(用于复杂任务:生成视图模板、内容生成等)
OPENAI_MODEL_LARGE=gpt-4o

支持的 AI 服务

  • ✅ OpenAI 官方 API
  • ✅ 国内代理服务
  • ✅ Azure OpenAI
  • ✅ DeepSeek、智谱 GLM、通义千问等国产模型
  • ✅ Ollama 本地模型

📖 详细配置指南:查看 AI_CONFIG.md
🔑 获取 OpenAI API Key:https://platform.openai.com/api-keys

3. 启动开发服务器

npm run dev

打开 http://localhost:3000 开始使用。

使用指南

记录笔记

在顶部输入框输入任何想法,按 Enter 发送:

今天买咖啡花了 35 元

AI 会自动:

  • 识别为支出记录
  • 提取金额 35
  • 归类到"财务"滤镜
  • 更新财务看板

查看笔记

  • 滤镜模式:查看按主题分类的原始笔记流
  • 视图模式:查看 AI 生成的结构化内容
    • 财务看板:收入/支出统计和图表
    • 观点维基:自动整理的知识库

创建新滤镜/视图

点击胶囊导航右侧的"新建"按钮(即将推出)

项目结构

src/
├── app/
│   ├── api/classify/          # AI 分类 API
│   ├── page.tsx               # 主页面
│   └── globals.css            # 全局样式
├── components/
│   ├── global-input.tsx       # 全局输入框
│   ├── dual-tabs.tsx          # 双 Tab 切换
│   ├── pill-navigation.tsx    # 胶囊导航
│   ├── content-area.tsx       # 内容展示区
│   ├── note-card.tsx          # 笔记卡片
│   ├── views/
│   │   ├── dashboard-view.tsx # 仪表盘视图
│   │   └── wiki-view.tsx      # 维基视图
│   └── ui/                    # shadcn/ui 组件
└── lib/
    ├── store.ts               # Zustand 状态管理
    └── utils.ts               # 工具函数

数据存储

使用 SQLite 嵌入式数据库存储数据:

  • ✅ 零配置,即开即用
  • ✅ 自动保存,无需手动操作
  • ✅ 数据持久化存储在本地

开发命令

# 开发模式
npm run dev

# 构建生产版本
npm run build

# 启动生产服务器
npm start

# 代码检查
npm run lint

设计理念

  • Swiss Style:极致干净、大量留白、强烈排版对比
  • Klein Blue:使用克莱因蓝作为唯一强调色
  • 流动感:细腻的动效,笔记"吸附"进视图的反馈

License

MIT


Firn - 你负责播撒种子,系统负责修剪枝叶并展示森林 🌳

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors