开源 · 免费 · 本地优先
一款简洁的白板卡片笔记软件,支持 macOS 和 Windows。
灵感来自 Heptabase,专注于自由画布 + 卡片笔记的核心体验。
完全开源 — 代码在 GitHub 公开,任何人都可以审查、修改、分发。
永久免费 — 没有付费墙、没有订阅、没有增值收费,所有功能开箱即用。
本地优先 — 笔记 100% 存储在你的电脑本地,不需要注册账号。可选配置坚果云 WebDAV 或 GitHub 进行云端同步。
无商业化 — 这是一个纯粹的个人项目,不含广告、不采集数据、不追踪用户行为。
以画布为单位管理不同主题,左侧导航可创建、重命名和切换画布,白板总览则帮助你快速判断每张画布的内容规模。画布中可自由放置卡片、无边框文本、横幅标题与彩色分区;卡片支持拖拽、缩放、磁吸对齐、框选自动排布、移动到其他画布,以及用连线和可跳转链接把相关想法串起来。
每日记为当天留出一块安静的写作空间:月历会用短标记显示已经记录的日子,点击任意日期即可补写或回顾。你可以快速切换前后日期,为记录添加标题和正文,并在回顾视图中按时间浏览过往内容的标题与摘要。
需要先把想法记下来时,可从侧栏切换到独立的「即刻模式」窗口。它会置顶显示一个专注的记录空间,支持 Markdown,按 ⌘ + Enter / Ctrl + Enter 即可投入每日记;关闭窗口后会自动回到主界面。
卡片和每日记共用所见即所得编辑器,支持一级至四级标题、加粗、斜体、删除线、列表、引用、行内代码、链接、文字颜色和高亮等常用格式。图片可直接粘贴或拖入,应用会保存为本地文件并以引用插入,避免把大型 base64 数据塞进笔记,同时让同步更轻量。
画布可通过双指滑动或鼠标中键平移,通过捏合或 Ctrl + 滚轮 缩放;创建卡片、文本、标题和分区,以及自动排布、缩放和微移等高频操作均可使用快捷键完成。应用提供 Light / Dark 主题与设置内快捷键速查表,让长时间整理也保持舒适。
所有数据默认保存在本地;如有跨设备需求,可选择坚果云 WebDAV 或 GitHub 仓库同步。保存后的变更会自动上传,并定期检查远端内容;当远端可能覆盖大量本地数据时,应用会暂停自动同步并要求确认。同步状态常驻侧栏,应用内更新支持检测、下载、暂停与继续。
当前稳定版为 v1.0.18,可在 Releases 页面下载:
| 文件 | 平台 | 适用设备 |
|---|---|---|
FloatAnchor-1.0.18-mac-arm64.dmg |
macOS | Apple Silicon (M1/M2/M3/M4) |
FloatAnchor-1.0.18-mac-x64.dmg |
macOS | Intel Mac |
FloatAnchor-1.0.18-win-setup.exe |
Windows | 64 位 Windows |
- 双击下载的
.dmg文件 - 将 FloatAnchor 拖入 Applications 文件夹
- 首次打开如果提示"无法验证开发者",右键点击应用 → 选择 打开 即可
- 双击
.exe安装程序 - 选择安装目录,点击安装
- 安装完成后,桌面和开始菜单会自动创建 FloatAnchor 快捷方式
- 白板总览 — 点击左侧的 白板总览,按白板名称和内容规模快速找到要继续整理的内容
- 新建画布 — 点击左侧导航栏底部的 + 新建画布 按钮,输入名称后回车
- 切换画布 — 点击左侧导航栏中的画布名称
- 重命名画布 — 双击画布名称,或点击 hover 时出现的铅笔图标
- 删除画布 — hover 画布名称时,点击右侧的 ✕ 按钮(至少保留一个画布)
- 打开每日记 — 点击左侧的 每日记 进入当天记录
- 查看记录状态 — 月历中带有短标记的日期表示已有记录;点击任意日期即可开始补写或回顾
- 切换日期 — 用编辑页右上角的前一天 / 后一天切换日期
- 回顾记录 — 点击 历史 查看已写过的日期、标题与正文预览
- 打开 — 点击侧栏的 切换即刻模式;主窗口会最小化,独立窗口始终置顶
- 快速记录 — 输入想法后按
⌘ + Enter/Ctrl + Enter,内容会追加到当天的每日记 - 返回主界面 — 关闭即刻模式窗口,主窗口会自动恢复
- 创建卡片 — 在画布空白处 双击 即可在点击位置创建新卡片,或点击右上角的 新建卡片 按钮
- 编辑卡片 — 双击 卡片进入编辑模式,或 hover 卡片顶部灰色条时点击铅笔图标
- 移动卡片 — hover 卡片顶部出现灰色拖拽条,按住拖动到任意位置;靠近其他卡片时自动磁吸对齐,保持统一间距
- 缩放卡片 — hover 卡片右下角出现缩放手柄(↗↙ 箭头光标),拖拽调整大小
- 删除卡片 — hover 卡片顶部灰色条时,点击右侧垃圾桶图标
- 右键菜单 — 在卡片上右键(macOS 双指点击),可进行最佳大小调整、拷贝链接、移动到其他画布、连接卡片、编辑和删除;菜单项右侧会标注对应快捷键
- 画布右键菜单 — 在画布空白处右键,可创建空白卡片、创建文本、创建标题、创建分区
- 插入图片 — 在编辑卡片时直接 粘贴(⌘V / Ctrl+V)或 拖入 图片;图片会自动存为本地文件并以引用插入
- 退出编辑 — 点击卡片外部区域,或按
Esc键
- 创建文本 — 在画布空白处右键 → 创建文本,或按快捷键
T,在画布上放置一个自由文本块 - 编辑文本 — 双击文本框进入编辑,输入内容后点击外部或按
Esc退出 - 移动 / 排布 — 文本框与卡片一样可拖动、可框选、可参与自动排布
| 操作 | macOS | Windows |
|---|---|---|
| 平移画布 | 双指滑动触控板 | 鼠标中键拖拽 |
| 缩放画布 | 双指捏合 | Ctrl + 鼠标滚轮 |
编辑卡片时,工具栏提供以下格式选项:
- H2 / H3 / H4 — 二级、三级、四级标题
- B — 加粗(快捷键
⌘B/Ctrl+B) - I — 斜体(快捷键
⌘I/Ctrl+I) - S — 删除线
- </> — 行内代码
- • — 无序列表
- 1. — 有序列表
- > — 引用块
- 🔗 — 插入链接
也支持直接输入 Markdown 语法,编辑器会实时渲染为对应样式。
画布上(非编辑状态)支持以下快捷键,完整列表也可在 设置 → 键盘快捷键 中查看:
| 操作 | macOS | Windows |
|---|---|---|
| 新建卡片 | C |
C |
| 新建文本 | T |
T |
| 新建分区 | R |
R |
| 自动排布选中 | L |
L |
| 分区最佳大小(选中分区后) | F |
F |
| 全选 | ⌘A |
Ctrl+A |
| 编辑选中(单选时) | ⏎ |
Enter |
| 删除选中 | ⌫ |
Del |
微移选中(⇧ 大步) |
方向键 | 方向键 |
| 放大 / 缩小 / 复位 | ⌘+ / ⌘- / ⌘0 |
Ctrl + / Ctrl - / Ctrl 0 |
| 取消选择 / 退出连线 | Esc |
Esc |
右键菜单中的相关项也会在右侧标注对应快捷键,方便随手查看。
点击侧栏左上角的齿轮按钮打开设置面板:
- 主题切换 — 在 Light 和 Dark 之间切换
- 云同步 — 选择同步后端:坚果云 WebDAV、GitHub 或 关闭。配置方式见下方 云同步 小节
- 提取内嵌图片为文件 — 在「数据管理」中,把历史笔记里以 base64 内嵌的图片一键抽取为本地文件、替换为引用,显著减小数据体积(操作前自动备份)
- 软件更新 — 下载更新时可在侧栏或设置中手动停止,之后继续下载会自动从已完成进度恢复
应用始终优先展示本地数据;配置同步后端后,保存会快速上传本地改动,后台每隔一段时间检查远端更新。如果云端数据会覆盖大量本地内容,会暂停自动同步并要求你确认后再继续。同步状态(待同步 / 同步中 / 已同步 / 失败)常驻左侧菜单底部。
在 设置 → 同步 中选择后端:
坚果云 WebDAV
填入坚果云 WebDAV 服务器地址、账号邮箱和应用密码(在坚果云网页后台「账户信息 → 安全选项 → 添加应用」生成),点击测试 / 保存后自动开启同步。
GitHub
用一个 GitHub 仓库作为同步后端,提交历史即版本历史,可在仓库网页直接查看、回看任意版本。
- 在 GitHub 新建一个仓库(建议私有)用于存放同步数据
- 前往 GitHub → Settings → Developer settings → Fine-grained tokens 生成访问令牌(PAT),仅授予该仓库的 Contents 读写权限
- 回到 FloatAnchor 设置 → 同步 → GitHub,填入:
- 仓库 —
owner/repo形式(如yourname/float-anchor-data) - 访问令牌 (PAT) — 上一步生成的 fine-grained token
- 分支 — 默认
main
- 仓库 —
- 点击测试 / 保存,连接成功后即开启同步
访问令牌通过系统安全存储(macOS Keychain / Windows 凭据管理器)加密保存,不写入明文配置。
所有笔记数据保存在本地:
- macOS —
~/Library/Application Support/float-anchor/data/ - Windows —
%APPDATA%/float-anchor/data/
如果你之前使用 Heptabase,可以将所有白板、卡片笔记和图片迁移到 FloatAnchor。
- 在 Heptabase 中导出备份数据(Settings → Export → Backup)
- 解压导出的备份文件夹
- 确保电脑已安装 Python 3
- 打开本项目目录,也就是包含
scripts/migrate-heptabase.py的目录 - 关闭 FloatAnchor 应用(避免迁移数据被覆盖)
打开终端(Terminal),运行:
python3 scripts/migrate-heptabase.py "$HOME/Downloads/heptabase-backup"如果卡片中有图片,需要带上 Token(获取方式见下方):
python3 scripts/migrate-heptabase.py "$HOME/Downloads/heptabase-backup" --token '你的Token'打开 PowerShell,运行:
python .\scripts\migrate-heptabase.py "C:\Users\你的用户名\Downloads\heptabase-backup"如果卡片中有图片,需要带上 Token(获取方式见下方):
python .\scripts\migrate-heptabase.py "C:\Users\你的用户名\Downloads\heptabase-backup" --token "你的Token"实际路径示例:
python .\scripts\migrate-heptabase.py "E:\heptabase-backup" --token "你的Token"注意:Windows 下 Python 命令可能是
python、py或python3,取决于安装方式。如果提示找不到命令,尝试换用另一个。
Heptabase 的备份不包含图片文件,需要通过 Token 从 Heptabase 服务器下载。
- 在浏览器中打开 Heptabase 网页版 并登录
- 按
F12(macOS 下 Safari 需先在偏好设置中启用开发者菜单)打开开发者工具 - 切换到 Network(网络)面板
- 在 Heptabase 中随意操作(如打开一张卡片),在 Network 面板中找到任意请求
- 点击该请求,在 Headers(标头)中找到
Authorization字段,只复制Bearer后面的完整字符串,不要包含Bearer
注意:Token 有效期约 1 小时,请在获取后尽快运行迁移脚本。图片会下载到本地,后续使用无需再提供 Token。
如果第一次导入时忘记带 --token,图片没有下载,可以加上 --force 重新导入:
# macOS
python3 scripts/migrate-heptabase.py "$HOME/Downloads/heptabase-backup" --token '你的Token' --force# Windows
python .\scripts\migrate-heptabase.py "C:\Users\你的用户名\Downloads\heptabase-backup" --token "你的Token" --force--force 会智能合并同名画布:更新从 Heptabase 导入的卡片(如补充图片),同时保留你在 FloatAnchor 中手动创建的卡片、标签和分区。导入前会自动备份已有数据(float-anchor.json.bak)。
默认会写入 FloatAnchor 的本地数据文件:
- macOS:
~/Library/Application Support/float-anchor/data/float-anchor.json - Windows:
%APPDATA%\float-anchor\data\float-anchor.json
迁移成功后,脚本会把图片缓存到同级 images 目录,并刷新同步时间戳,方便后续 WebDAV/坚果云同步把本地迁移结果上传到云端。
| 项目 | 说明 |
|---|---|
| 白板(Whiteboard → Canvas) | 所有未删除的白板,保留名称 |
| 卡片笔记 | 标题、正文(Markdown 格式)、位置坐标、卡片宽高 |
| 图片 | 通过 --token 参数下载到本地,支持 PNG / JPEG / GIF / WebP / TIFF |
| 卡片布局 | 保留相对位置,自动紧凑排列 |
Electron + React + TypeScript + Vite + TipTap + Zustand
MIT License — 完全开源,自由使用、修改和分发。