Skip to content
 
 

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

栖屿 · 个人工作站

栖屿 App 图标:深蓝色背景上的层叠发光岛屿

把工作与生活,安放在一座本地岛屿。
一款为 macOS 打造的本地优先个人工作站,把日程、任务、笔记、资料与生活记录收进同一个安静的空间。

macOS checks Platform macOS Node.js 22.13 or newer MIT License

栖屿深色仪表盘:天气、日历、系统状态、待办和生活信息流集中在一个桌面工作台

栖屿当前以源码形式提供,面向 macOS 本地使用。仓库暂不提供经过 Apple 公证的通用安装包;clone 后可以直接进入开发模式,或在自己的 Mac 上构建应用。

目录

栖屿是什么

很多个人工具只解决一个问题:日历记时间、待办记任务、笔记记想法、浏览器保存链接。真正使用时,信息却被拆散在十几个入口里。

栖屿选择了另一种方式:

  • 一个仪表盘看见今天:时间、天气、日历、待办、设备状态和生活信息都在首页。
  • 十二个抽屉承载细节:需要专注处理某件事时,从侧边栏打开对应模块,完成后回到工作台。
  • 本地数据默认留在本机:主要数据进入应用专属 SQLite 数据库,不要求注册账号,也不依赖云端工作区。
  • 工作和生活使用同一套节奏:项目、财务、习惯、阅读和日常工具不再是彼此隔离的孤岛。

界面采用 Liquid Glass 风格,支持浅色、深色和跟随系统;首页卡片可调整顺序、尺寸与显隐,侧边栏也可以折叠。

界面一览

一键找到散落的信息

全局搜索会同时检索模块、待办、日程、笔记、书签、阅读、项目、财务、文件与工具。所有结果都来自当前设备。

栖屿全局搜索:在本地待办、笔记、书签、项目、文件和工具中统一检索

在一座岛上,切换不同工作状态

栖屿笔记知识库:目录树、Markdown 编辑与实时预览
笔记知识库
Markdown、目录树、双向链接、Mermaid 与版本历史。
栖屿密码与剪贴板模块:创建本地加密保险库
密码与剪贴板
Argon2id + AES-256-GCM 保险库、自动锁定和敏感剪贴板策略。
栖屿文件管理:授权目录索引、文件搜索和空间分析
文件管理
用户授权目录索引、内容搜索、大文件和重复候选分析。
栖屿浅色仪表盘:半透明卡片和柔和的蓝紫色背景
浅色模式
与深色模式共享同一套清晰、克制的玻璃层级。
截图说明

README 中的截图来自实际运行版本,内容为演示数据。界面显示会随窗口大小、系统权限、当地天气和你创建的数据变化。

功能地图

首页仪表盘

  • 大号时钟、公历与农历、节气节日提示、分时问候
  • 多城市天气、24 小时趋势、7 日预报、空气质量与生活建议
  • 月历、近三日日程、重要日期倒计时和班休信息
  • 今日待办、优先级、自然语言快速添加与周完成度
  • CPU、内存、磁盘、网络、电池、快捷启动和剪贴板概览
  • 便签、习惯打卡、财务摘要、RSS 和阅读进度
  • 卡片拖拽排序、方向按钮排序、尺寸调整和自定义显隐

十二个核心模块

模块 能力
日程管理 日/周/月视图、复杂重复、提醒、班休调休、时间块统计
待办事项 无限层级项目、四象限、标签、循环任务、番茄钟、完成趋势
笔记知识库 Markdown、目录树、全文检索、双向链接、Mermaid、版本历史、批量导入导出
书签与收藏 文件夹、标签、网页截图、稍后读、正文抓取、死链检测、浏览器书签导入导出
密码与剪贴板 本地加密保险库、密码生成与审计、自动锁定、加密备份、剪贴板保留策略
财务记账 账户、收支、分类预算、月年报表、资产概览和账单提醒
习惯追踪 自定义周期、打卡日历、连续天数、趋势、成就与备注
阅读与学习 书架、阅读进度、读书笔记、离线文章、RSS、单词复习与学习时长
项目管理 看板、主子任务、预估/实际耗时、文档关联、甘特图与里程碑
工具箱 计算、单位、时间、文本、图片、二维码、开发调试与日常决策工具
文件管理 授权目录索引、文件名与正文搜索、最近文件、大文件、重复候选和标签
设置与数据 主题与布局、快捷键、开机启动、窗口行为、备份恢复和数据导出

快速开始

1. 准备环境

推荐环境:

  • macOS 13 Ventura 或更新版本
  • Apple Silicon 或 Intel Mac
  • Git
  • Node.js 22.13 或更新版本(仓库提供 .node-version
  • Rust stable 与 Cargo
  • Xcode Command Line Tools

先确认本机工具:

xcode-select -p
node --version
npm --version
rustc --version
cargo --version

如果第一条命令提示尚未安装开发工具,请执行:

xcode-select --install

2. Clone 并安装依赖

git clone https://github.com/cwj-gyh/Personal_Workstation.git
cd Personal_Workstation
npm ci

使用 npm ci 可以严格按照仓库锁文件安装依赖,适合第一次 clone 和持续集成环境。

3. 启动桌面应用

npm run desktop:dev

首次启动需要编译 Rust 依赖,时间会比后续启动长。终端出现开发服务器和 Tauri 窗口后即可使用。

如果只想快速查看界面,也可以启动浏览器回退模式:

npm run dev

浏览器模式将数据保存在浏览器本地存储中,不提供 SQLite 数据库快照、密码保险库、系统状态、全局快捷键和目录索引等桌面能力。

第一次使用

  1. 打开“设置与数据”,选择主题、首页卡片、天气城市与快捷键。
  2. 首次使用通知、截图、开机启动或文件索引时,根据 macOS 提示授予对应权限。
  3. 进入“密码与剪贴板”创建主密码。主密码不会保存,也无法找回。
  4. 立即导出一份 .qiyuvault 加密备份,并为普通工作数据创建第一个数据库恢复点。
  5. 在文件管理中只选择你愿意授权索引的目录;栖屿不会自动删除文件。

更完整的功能说明见使用手册

构建 macOS 应用

构建本机可运行的 release 应用:

npm run desktop:build

产物位于:

src-tauri/target/release/bundle/macos/栖屿.app

可以直接打开:

open "src-tauri/target/release/bundle/macos/栖屿.app"

当前构建使用 macOS 临时签名,适合源码使用者在自己的 Mac 上构建运行,不等同于使用 Apple Developer 证书签名并公证的公开安装包。

如果移动应用后 macOS 报告扩展属性或临时签名问题,可以在项目目录执行:

xattr -cr "src-tauri/target/release/bundle/macos/栖屿.app"
codesign --force --deep --sign - "src-tauri/target/release/bundle/macos/栖屿.app"
codesign --verify --deep --strict --verbose=2 "src-tauri/target/release/bundle/macos/栖屿.app"

数据、安全与网络

数据放在哪里

~/Library/Application Support/com.qiyu.workstation/qiyu.sqlite3
~/Library/Application Support/com.qiyu.workstation/backups/
  • 普通工作数据保存在应用专属 SQLite 数据库。
  • 应用每天首次启动时创建一次自动快照,最多保留最近 14 份。
  • 恢复快照前会先校验备份,并保存当前数据库的安全副本。
  • JSON 导出用于迁移普通工作数据;密码保险库需要单独导出 .qiyuvault

详细恢复流程见备份与恢复指南

密码保险库

  • 主密码通过 Argon2id 派生密钥。
  • 保险库内容以 AES-256-GCM 整体加密后写入数据库。
  • 主密码不写入磁盘;锁定后会清除当前解锁状态。
  • 密码复制不会进入剪贴板历史,并可按设定时间自动清理。

密码管理涉及高价值数据。虽然仓库包含自动化测试和明确的数据边界,当前项目并未声明经过独立第三方安全审计。请保留加密备份,并自行评估使用风险。更多细节见安全说明

网络边界

栖屿不要求账号或云端工作区。网络访问主要来自:

  • Open-Meteo 天气和城市搜索
  • 用户主动添加的 RSS 地址
  • 用户主动触发的书签正文、截图与死链检查
  • 工具箱中由用户主动发送的接口测试请求

文件索引、密码保险库、笔记、待办、财务和大多数工具默认在本机处理。

flowchart LR
    UI["Liquid Glass 界面"] --> Bridge["Tauri 本地桥接"]
    Bridge --> DB["SQLite 工作数据"]
    Bridge --> Vault["Argon2id + AES-256-GCM 保险库"]
    Bridge --> Mac["macOS 系统能力"]
    UI --> Local["浏览器本地回退"]
    Bridge -. "用户主动触发" .-> Net["天气 / RSS / 网页请求"]
Loading

开发与验证

常用命令

命令 用途
npm run desktop:dev 启动完整 Tauri 桌面开发环境
npm run dev 启动浏览器回退模式
npm run lint 检查 TypeScript、React 和可访问性规则
npm test 构建并运行产品、领域与桌面结构测试
npm run desktop:web:build 构建桌面静态前端
npm run test:performance 检查首屏资源性能预算
npm run test:browser 使用本机 Chromium 执行 WCAG、键盘、启动与十二模块冒烟检查
npm run test:desktop 运行 Rust 桌面数据、安全和恢复测试
npm run verify:local 依次运行完整本地验收流程
npm run desktop:build 构建本机 release 应用

完整验收需要本机安装 Google Chrome、Microsoft Edge、Brave 或 Chromium 之一。浏览器验收会使用临时用户目录,不会读取日常浏览器资料,也不会修改真实栖屿数据库。

仓库的 macOS GitHub Actions 会在 push 和 pull request 时运行依赖安装、代码检查、产品测试、性能预算、Rust 格式和桌面核心测试。

提交前建议

npm ci
npm run verify:local
git status

常见问题

npm ci 提示 Node.js 版本不符合要求

运行 node --version,确认版本不低于 22.13。使用 fnm、nvm、Volta 或其他版本管理器时,可以让它读取仓库的 .node-version

cargo 或 Tauri 编译失败

确认 Rust stable 与 Xcode Command Line Tools 已安装,然后执行:

rustup update stable
rustup component add rustfmt
xcode-select -p

完整验收提示“没有找到 Chromium 浏览器”

npm run test:browser 会寻找 Google Chrome、Microsoft Edge、Brave 或 Chromium。安装其中一个后重新运行即可;它不影响 npm run desktop:dev

桌面版没有弹出系统权限

只有功能首次真正需要权限时,macOS 才会询问。也可以前往“系统设置 → 隐私与安全性”检查通知、文件与文件夹、屏幕录制等权限。

天气或城市搜索暂时不可用

确认网络可以访问 Open-Meteo。栖屿会保留最近一次成功天气数据,网络恢复后可再次搜索城市。

忘记密码保险库主密码

主密码无法找回,这是本地加密设计的一部分。只能使用你仍记得密码的旧保险库备份;因此第一次建立保险库后应立即备份。

可以在 Windows 或 Linux 上运行吗

当前产品范围明确为 macOS。部分底层代码具有非 macOS 回退实现,但快捷启动、钥匙串、截图、窗口行为、系统目录和测试流程均以 macOS 为准,暂不承诺其他平台可用。

项目结构

Personal_Workstation/
├── app/                    # 仪表盘、模块界面、领域逻辑和数据桥接
├── desktop/                # Tauri 使用的静态前端入口
├── src-tauri/              # macOS 外壳、SQLite、保险库和系统能力
├── docs/                   # 使用、安全、恢复文档与 README 截图
├── scripts/                # 性能、浏览器与完整本地验收
├── tests/                  # 产品、领域和桌面结构测试
├── public/                 # App 图标与网页静态资源
└── .github/workflows/      # macOS 持续集成

技术栈:React 19、TypeScript、Vite/Vinext、Tauri 2、Rust、SQLite。

参与改进

欢迎通过 Issue 描述问题或建议。提交修改前请:

  1. 保持 macOS 本地优先和最小权限边界。
  2. 不提交真实个人数据、数据库、保险库备份或环境文件。
  3. 为行为变化补充测试。
  4. 运行 npm run verify:local,并在 Pull Request 中说明未能执行的检查。

License

栖屿以 MIT License 开源。你可以使用、修改和分发源码,但软件按“原样”提供,不附带担保。

About

A local personal workstation for the macOS system.

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages