简体中文 · English
把散落的名字、照片与往事,整理成一份可以长久保存的家族档案。
本地优先 · 无需注册 · 开放格式 · 家人异步协作 · 族谱编印 · 支持 macOS / Windows / Linux / Android
下载桌面版 / Android 版 · 夸克网盘 · 阿里云盘 · 开放数据格式 `.blp` · CLI 文档
截图使用虚构的演示家族、仓库与安装路径;真实家谱默认只保存在用户自己的设备上。
有谱是一款本地优先的家谱与家庭资料管理应用。它把人物、关系、事件、地点、史料来源和附件放在同一个项目中,让一段家族历史既能被直观浏览,也能保留可以追溯的依据。
| 资料真正属于你 无需账号,离线可用;可以完整备份、迁移,或通过自己的 GitHub 私有仓库与家人协作。 |
尊重真实的家庭经历 支持亲生、收养、继亲、监护和多种伴侣关系,不用单一模板简化复杂人生。 |
| 每条记忆都有来处 把档案、访谈、引文、页码和本地附件关联到人物、关系与事件。 |
为长期保存而设计 通过 .blp 完整项目包、GEDCOM 和开放格式,避免资料被锁在某个网站里。 |
人物档案 记录多种姓名、生卒信息、地点、生平、职业经历、备注、头像与相关资料。 |
家族时间线 把出生、婚姻、迁徙与家庭事件放回时间中,沿年代阅读家族故事。 |
来源、引用与附件 从一页族谱、一段访谈或一张旧照片出发,看见它支持了哪些人物、关系和事件。 |
|
有谱把 GitHub 私有仓库变成可审阅、可回溯的家庭协作空间。获得仓库权限的家人可以在各自设备上离线整理同一个项目,需要交换资料时再进行同步;不要求注册有谱账号,也不依赖有谱运营的云端服务。
- 资料可读、历史可查:仓库保存展开后的 JSON-LD 项目文件和附件,而不是难以审阅的 SQLite 数据库;可以直接查看变更并利用 Git 历史回溯。
- 先预览,再同步:Pull、完整同步和冲突处理都会先展示预览;每次 Push 前始终先 Pull 并执行字段级三方合并,存在未解决冲突时不会上传。
- 适合多人异步维护:不同人物、事件或字段上的修改可以自动合并;同一字段发生冲突时,由用户选择共同基线、本地版本或 GitHub 版本。
- 加入项目很直接:可以从首页导入家人已有的 Branchloom 仓库;当前项目仍为空白时,也可以先检查远端内容,再用 GitHub 项目直接覆盖。
- 凭据与家谱分离:每位协作者使用自己的 GitHub 身份和 token;桌面端将 token 保存在系统安全凭据存储中,Android 端仅在本次运行期间保留,重启应用后需重新输入。token 不会进入 SQLite、项目文件、
.blp包或同步基线。 - 手动与定时同步兼顾:各平台均可手动同步;桌面端还支持在应用运行期间每 60 分钟自动检查,应用退出后自动停止。Android 端目前仅支持手动同步。
GitHub 同步完全可选,适合备份和多人异步协作,不是实时共同编辑。GitHub 私有仓库也不是端到端加密存储,请只邀请可信成员,并谨慎同步仍在世成员的资料。
有谱桌面端直接提供版本匹配的原生 CLI 和 Codex Skill。AI Agent 可以理解家谱结构、查找资料、生成修改计划,并在得到确认后完成批量整理;整个过程复用桌面端相同的核心规则和数据目录,不需要为 AI 再维护一套数据库逻辑。
Android 端目前不提供 CLI、Codex Skill 安装或“AI 工具”页面。
- CLI 与 Skill 随桌面安装包离线提供,不依赖 npm、npx、Node.js 或常驻后台服务。
- “AI 工具”页面统一检查桌面版本、CLI 合约、目标平台和组件完整性,并支持安装、更新、修复与卸载。
- 写操作默认先生成预览;真正提交时必须携带同一计划的版本标识,资料发生变化后旧计划会失效。
- 删除、关系变更等高风险操作还需要额外的危险操作确认,不允许 AI 静默绕过。
- 每次成功写入都会返回可追踪的变更集,便于核对后续影响。
- 支持简体中文和英文。首次启动时,中文系统使用简体中文,其他语言环境回退到英文。
- Linux 优先遵循
LC_ALL、LC_MESSAGES、LANG;C/POSIX环境使用英文。其他平台与 Web 开发模式使用系统或浏览器的首选语言。 - 顶部语言选择器可选择“跟随系统”、简体中文或 English;窄屏项目页面从菜单中选择。确认前请保存编辑;切换会重新打开当前页面,选择仅保存在当前设备,不写入家谱项目或同步内容。
- 姓名、备注、自定义名称和日期原文保留原样。界面语言不改变既有中文族谱 PDF 的内容和排版。
- 创建和管理多个家谱项目。
- 记录人物的多种姓名、生卒信息、生平、职业、称谓、备注和头像。
- 整理亲生、收养、继亲、监护,以及婚姻、订婚、事实伴侣、分居、离异等关系。
- 添加子女时,可从当前人物的伴侣记录中选择另一位家长,并分别确认双方与孩子的关系;也可明确选择仅关联当前家长。孩子和所选亲子关系一起保存,家谱树随即更新。已有孩子可在“家庭关系”中通过“添加已有关系”补充另一位家长。
- 从家谱树、人物列表和时间线浏览家庭资料。
- Android 和窄屏界面通过左侧滑出菜单切换页面:点击顶部菜单按钮或从左边缘右滑打开,点击遮罩、左滑或返回关闭;底部不再显示导航标签栏。
- 家谱树与人物档案搜索默认优先展示姓名完全匹配的人物,其次为姓名开头、姓名包含匹配,最后为生平、备注等其他资料匹配;同等匹配下主姓名优先于别名。排序在分页前完成,人物档案仍可手动按最近更新或出生时间排序。
- 桌面家谱树支持部分姓名、字号搜索,高亮匹配人物并点击定位;选中人物后,在家谱卡片上查看其对其他人物的日常称呼,如爸爸、妈妈、爷爷、奶奶、太奶奶。长幼不明时保留“兄弟”“姐妹”等合称;上四代及更远的直系祖辈显示“老祖宗”及代数。称呼仅根据已载入资料的最短关系路径计算,收养、继亲、监护、已结束的伴侣关系及信息不足的情况保留关系说明,不写入家谱资料。
- 管理地点、家庭事件、史料来源、引文与本地附件。
- 地点可录入可选的 GPS 经度、纬度(WGS84 十进制度),随
.blp备份和 GitHub 项目同步保留;当前提供坐标录入,迁徙地图尚未实现。 - 在“查称呼”页面搜索并选择当前项目中的任意两个人物,自动查看双向日常称呼、交换人物及查看最短关系路径;人物详情和家谱树人物预览提供预填当前人物的快捷入口。查询独立于画布显示代数,按当前项目的完整人物与关系资料推算,支持桌面与手机布局;资料缺失或读取失败时明确提示,不将称呼写入家谱资料。
在“项目管理 → 编印族谱”中,把家谱资料生成可直接打印的 PDF。支持三种成品:
| 成品 | 展示形式与用途 |
|---|---|
| 现代横排谱册 | 横排文字、人物传记与资料章节,适合日常阅读和装订保存 |
| 传统中文谱册 | 竖排宋体、自右向左阅读、右侧装订,适合传统谱册形式 |
| 世系挂图 | 人物卡片与关系连线,支持单页大幅和多页拼接 |
- 按全谱、分支、祖先或后代确定范围,设置关系类型、代数和排除人物;编印读取完整项目,不受家谱画布显示范围限制。
- 谱册可组合封面、谱序、目录、世系图、人物传记、大事记、来源、附录和姓名索引;照片保持比例,已有 PDF 史料可按指定页序收入附录。
- 支持 A4、A3、ISO B5、自定义纸张和镜像装订边距。传统正文中的数字和拉丁字符逐字直立;挂图跨页关系标明双方人物编号和页码。
- 生成过程离线执行,内置中文字体;预览和保存使用同一份 PDF,包含可搜索文字、章节书签及内部页码链接。资料或方案变化后需重新生成。
- 可保存、复制和删除多套编印方案,更新家谱资料后按原方案重新生成。方案随
.blp和 GitHub 项目同步保留。
使用时先设置收录范围、章节和纸张,点击生成,核对校对报告及 PDF 预览,再点击保存并在系统对话框中选择位置。生成和保存不会改写人物资料。
在 PDF 阅读器中按实际纸张大小打印;分幅挂图按 100% 比例及页面上的行列编号拼接,双面谱册使用长边翻转。成品使用自然页序,印刷厂折手拼版由打印端处理。文件已存在时选择新名称保存。
升级后项目格式为 1.1.0,兼容读取原有 1.0.0 项目;与家人交换新版 .blp 或同步项目时,各端应先升级到 v0.1.9 或更高版本。升级前建议导出一份 .blp 备份。
macOS 原生流程和三种 PDF 成品已完成验收,Android 功能与样式已由用户真机验收确认。Windows、Linux 的编印交互实机验收、Android 万人负载测量及实体打印装订尚未完成。详见 验证记录、PDF 成品验收和Android 复测清单。
- 搜索人物,并检查日期异常、关系问题、重复人物和缺失附件。
- 比较并合并疑似重复档案。
- 创建可恢复的历史快照。
- 导入或导出包含附件的
.blp完整项目包。 - 导入或导出 GEDCOM 5.5、5.5.1 与 7.0 中常见的人物及家庭关系资料。
- 可选连接自己的 GitHub 私有仓库,通过 Git 版本历史备份、同步与回切项目,并邀请可信家人在各自设备上异步协作。
- 家谱资料默认只保存在本机,不注册账号也能完整使用。
- GitHub 同步完全可选;访问凭据不会写入家谱项目或导出的项目包。
- GitHub 私有仓库不是端到端加密存储;拥有仓库权限的协作者可以读取项目文件及 Git 历史,请只邀请可信成员,并谨慎同步仍在世成员的资料。
- 附件会被复制到项目管理区域,并按内容哈希去重;业务记录不保存原始文件路径。
.blp项目包包含完整资料和附件,可用于备份、迁移与分享。- 项目格式公开可读,详细约定见 DATA_FORMAT.md。
家谱常常包含仍在世成员的敏感信息。分享项目包、截图或同步仓库前,请先征得相关家庭成员同意,并确认分享范围。重要资料建议保留至少一份独立备份,并在升级前导出 .blp 项目包。
前往 GitHub Releases 下载与操作系统匹配的安装包。macOS 用户请根据设备选择 Apple-Silicon(M1 及后续 Apple 芯片)或 Intel 版本。
也可通过网盘下载,两个入口均永久有效、无需提取码:
网盘安装包来自本项目 GitHub Releases,按「有谱 / v版本号」归档,目前收录 v0.1.0~v0.1.4。这些版本沿用旧文件名,macOS 的 aarch64 对应 Apple 芯片,x64 对应 Intel 芯片。
安装包文件名会直接标明系统、处理器和版本;桌面端额外标注 Desktop,Android APK 以 _release.apk 结尾:
| 文件名示例 | 适用设备 |
|---|---|
Branchloom_Desktop_Windows_x64_v0.1.11-setup.exe |
Windows 桌面电脑 |
Branchloom_Desktop_macOS_Apple-Silicon_v0.1.11.dmg |
Apple 芯片 Mac(M1 及后续型号) |
Branchloom_Desktop_macOS_Intel_v0.1.11.dmg |
Intel 芯片 Mac |
Branchloom_Desktop_Linux_x64_v0.1.11.AppImage / .deb |
64 位 Linux 桌面电脑 |
Branchloom_Android_arm64_v0.1.11_release.apk |
Android 12 及以上的 ARM64 设备;已签名的 Release APK |
暂不提供 iOS 安装包。
Android 安装提示
从 GitHub Releases 下载 Branchloom_Android_arm64_v<版本>_release.apk,在 Android 设备上打开并按系统提示允许本次安装。当前支持 Android 12 及以上的 ARM64 设备。
macOS 首次安装提示
目前 macOS 安装包使用 ad-hoc 签名,尚未使用 Apple Developer ID 签名和公证。请只从本项目官方 Releases 或上方网盘入口下载并确认来源可信。
将“有谱”拖入“应用程序”文件夹后,如果系统提示“App 已损坏”或无法验证开发者,请打开“终端”执行:
xattr -dr com.apple.quarantine "/Applications/有谱.app"
open "/Applications/有谱.app"该命令只移除“有谱”的互联网下载隔离标记,不会关闭系统的全局 Gatekeeper。仅对从本项目官方 Releases 或上方网盘入口下载的安装包执行此操作。
Windows 安装提示
Windows 安装包目前未进行商业代码签名,安装时操作系统可能显示安全提醒。请确认安装包来自本项目官方 Releases 或上方网盘入口后再继续。
打开桌面端的“AI 工具”页面,即可安装、更新、修复或卸载与当前桌面版本匹配的 Branchloom CLI 和 Codex Skill。
- macOS / Linux 默认安装到
~/.local/bin。 - Windows 默认安装到
%LOCALAPPDATA%\Branchloom\bin。 - Skill 默认安装到
~/.agents/skills/branchloom。 - 如果目录尚未加入
PATH,桌面端会显示可复制的配置方法,但不会自动修改 Shell 或系统设置。
机器协议、隔离数据目录和命令示例见 CLI 文档。
需要 Node.js、pnpm 10.15.1 和 Rust 工具链。安装依赖后可启动 Web 开发模式:
pnpm install
pnpm dev桌面开发验收可通过绝对路径指定隔离数据目录:
BRANCHLOOM_DATA_DIR="$(mktemp -d)" pnpm tauri dev该桌面环境变量仅在 Debug 构建生效;正式安装版继续使用平台标准数据目录。
常用检查:
pnpm typecheck
pnpm test:unit
pnpm test:cli发布版本只维护根 Cargo.toml 中的一处 workspace 版本。使用命令更新版本并自动刷新 Cargo.lock:
pnpm release:version 0.1.10发布 tag 必须与 workspace 版本一致,例如版本 0.1.11 对应 v0.1.11。
版本发布说明保存在 .github/release-notes/<tag>.md(如 v0.1.11)。推送 tag 后,流水线先执行类型检查、前端与 Rust 测试,再创建 Release 草稿并上传各平台安装包;全部构建成功后再将草稿正式发布。缺少对应说明时使用默认安装说明。
Android 构建(pnpm build:android、pnpm build:android:release)以及通过 pnpm tauri android 调用的初始化、开发和构建命令,会自动读取同一 workspace 版本并传给 Tauri。APK 的 versionName 与该版本一致,versionCode 按 Tauri 默认规则 major × 1000000 + minor × 1000 + patch 生成,例如 0.1.11 对应 1011。无需在 tauri.conf.json 或生成的 gen/android 中另行维护版本号。
本地生成可安装的 Android Release APK,先复制 .env.android.example 为 .env.android.local,填入签名密钥的绝对路径 ANDROID_KEYSTORE_PATH 和别名 ANDROID_KEY_ALIAS,再运行:
pnpm build:android:release命令会完成构建、对齐、签名和校验,产物为 packages/desktop/src-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release.apk。已有未签名 APK 时,可直接运行 pnpm android:sign,无需重新构建。密码在终端中输入;非交互环境可通过 ANDROID_KEYSTORE_PASSWORD 和 ANDROID_KEY_PASSWORD 环境变量提供。.env.android.local 和密钥文件已被 Git 忽略;后续版本应继续使用同一签名密钥。
Debug 使用 Android 工具链自动生成并复用的调试密钥,不读取 .env.android.local,也不需要正式签名密码。命令与产物如下:
| 命令 | 签名 | APK 文件名 |
|---|---|---|
pnpm build:android:debug(或 pnpm build:android) |
默认调试签名 | universal/debug/app-universal-debug.apk |
pnpm build:android:release |
.env.android.local 配置的正式签名 |
universal/release/app-universal-release.apk |
产物目录均位于 packages/desktop/src-tauri/gen/android/app/build/outputs/apk/。调试签名不是每次构建随机更换的临时密钥;Debug 与 Release 的签名不同,同包名时不能互相覆盖安装。
pnpm build:android:release:unsigned 只生成未签名 APK,供 CI 的独立签名步骤使用,不能直接安装。
Android 原生入口与全局浅色主题维护在 packages/desktop/src-tauri/android/;初始化、开发和构建命令会自动同步到 gen/android。状态栏的时间、通知图标与底部系统导航图标统一使用深色,切换系统深色模式或重新生成 Android 项目后仍与应用的浅色背景保持一致。
欢迎通过 Issue、Discussion 或 Pull Request 参与有谱:报告问题、提出真实的家谱整理场景、改进无障碍体验与文案,或协助测试数据导入、备份和跨平台体验。
提交问题时,请使用虚构或脱敏的示例,不要上传真实家谱、私人附件、访问凭据或其他敏感信息。
- 本地资料优先于在线服务。
- 用户可以完整导出并迁移自己的数据。
- 不以“常见”为由拒绝真实存在的家庭关系。
- 重要事实应当能够关联来源。
- 破坏性操作必须清楚、可预期。
本项目采用 Apache License 2.0 开源。第三方组件分别遵循其各自的许可证,详见 第三方软件声明。





