代码书架 - 本地项目管理工具
随着开发者参与的项目日益增多,本地存储着大量的代码仓库。这些项目分散在不同目录,使用不同的远程托管平台(GitHub、Gitee、GitLab),管理和维护变得愈发困难。开发者常常面临以下困境:
- 找不到某个项目在哪里
- 忘记哪些项目有未提交或未推送的代码
- 需要频繁在文件管理器、终端、编辑器之间切换
- 难以直观了解自己的编码活动和贡献情况
前往 Releases 页面 下载适用于 Windows、macOS 或 Linux 的最新安装包或便携版。
- 框架: React 19 + TypeScript
- 构建: Vite
- 样式: TailwindCSS v4
- 状态: Zustand + TanStack Query
- 图标: Lucide React
- 框架: Tauri 2.x
- 语言: Rust
- 数据库: SQLite (tauri-plugin-sql)
| 环境 | 版本要求 | 安装方式 |
|---|---|---|
| Node.js | >= 20.x | nodejs.org |
| Rust | >= 1.77 | rustup.rs |
| Tauri CLI | >= 2.x | cargo install tauri-cli |
无需额外安装,确保已安装 WebView2(Windows 10/11 通常已预装)。
xcode-select --installsudo apt update
sudo apt install -y \
pkg-config \
libgtk-3-dev \
libwebkit2gtk-4.1-dev \
libjavascriptcoregtk-4.1-dev \
libsoup-3.0-dev \
libappindicator3-dev \
librsvg2-devgit clone https://github.com/en-o/codeshelf.git
cd codeshelf# 安装前端依赖
npm install
# 安装 Tauri CLI(如果尚未安装)
cargo install tauri-cli# 启动 Tauri 开发服务器
npm run tauri dev开发服务器启动后:
- 前端服务:http://localhost:1420
- Tauri 应用会自动打开桌面窗口
npm run tauri build构建产物位置:
- Windows:
src-tauri/target/release/bundle/msi/和nsis/ - macOS:
src-tauri/target/release/bundle/dmg/和macos/ - Linux:
src-tauri/target/release/bundle/deb/和appimage/
便携版无需安装,解压即用,不支持自动更新。
# 方式 1:运行脚本
scripts\build-portable.bat
# 方式 2:npm 命令
npm run build:portable构建完成后在项目根目录生成:
CodeShelf-Portable-vX.X.X-x64.zip
├── CodeShelf.exe # 主程序
└── .portable # 便携版标记(禁用自动更新)
推送前校验:在推到
release/**分支之前,本地先跑一遍npm run verify:release这条命令会串联跑
npm ci→npm run build(tsc + vite)→cargo check --release --lib --bins,严格对齐.github/workflows/release.yml里tauri-action实际跑的编译环节(不包 bundle,~30s)。clippy 不强制,想另外跑:(cd src-tauri && cargo clippy --release)。要真·复现 CI 的 macOS ARM 产物:
npm run tauri build -- --target aarch64-apple-darwin --config src-tauri/tauri.release.conf.json
使用发版脚本自动更新版本号并触发 GitHub Actions 构建:
# Windows
scripts\release.bat 0.2.0
# Linux/macOS
./scripts/release.sh 0.2.0发版脚本会:
- 更新
package.json、tauri.conf.json、Cargo.toml中的版本号 - 创建
release/x.x.x分支并推送 - 触发 GitHub Actions 自动构建并发布
发布产物包括:
- 安装版(
.msi、.exe、.dmg、.deb、.AppImage) - 便携版(
CodeShelf-Portable-vX.X.X-x64.zip) - 自动更新文件(
latest.json)
用于管理 OpenAI 兼容的 AI 供应商与模型,并提供验证聊天能力。
- 供应商卡片:展示 Base URL、模型数量、API Key 配置状态、默认模型。
- 状态徽章:默认/启用状态以高对比徽标展示,便于快速识别。
- 新增/编辑抽屉:在右侧抽屉完成新增与编辑,避免页面过长。
- 会话历史路径:顶部入口调整存储路径并迁移历史(目标目录需为空)。
- 验证聊天:右下角悬浮球打开验证聊天,支持多会话与流式输出。
相关页面:src/pages/AiProviders/index.tsx、src/pages/Settings/AiProviderSettings.tsx
codeshelf/
├── src/ # 前端源代码
│ ├── components/ # React 组件
│ │ ├── layout/ # 布局组件(MainLayout, Sidebar)
│ │ ├── project/ # 项目组件(卡片、详情、扫描)
│ │ └── ui/ # 基础 UI 组件(Button, Input, Heatmap)
│ ├── pages/ # 页面组件
│ │ ├── Shelf/ # 项目书架页
│ │ ├── Dashboard/ # 数据统计页
│ │ └── Settings/ # 设置页
│ ├── services/ # API 服务层
│ │ ├── db/ # 数据库操作
│ │ └── git/ # Git 操作
│ ├── stores/ # Zustand 状态管理
│ ├── types/ # TypeScript 类型定义
│ └── styles/ # 全局样式
├── src-tauri/ # Tauri/Rust 后端
│ ├── src/ # Rust 源代码
│ │ ├── commands/ # Tauri Commands
│ │ ├── db/ # 数据库模块
│ │ └── git/ # Git 操作模块
│ ├── capabilities/ # 权限配置
│ ├── Cargo.toml # Rust 依赖
│ └── tauri.conf.json # Tauri 配置
├── DEVELOPMENT.md # 开发文档
├── API.md # API 文档
└── README.md # 项目说明
- 开发文档 - 详细的开发指南和项目结构说明
- API 文档 - 完整的 API 接口文档
- Tauri 命令开发指南 - 前后端通信开发指南
欢迎提交 Issue 和 Pull Request!
- Fork 本项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
| 命令 | 说明 |
|---|---|
npm run dev |
启动前端开发服务器 |
npm run build |
构建前端生产版本 |
npm run verify:release |
推送前本地校验:tsc + vite + cargo check(对齐 release.yml 的编译环节) |
npm run tauri dev |
启动 Tauri 开发模式 |
npm run tauri build |
构建桌面应用(安装版) |
npm run build:portable |
构建便携版(绿色版) |
npm run tauri build -- --debug |
构建调试版本 |
- 确保系统依赖已安装
- 清理缓存后重新构建:
rm -rf node_modules src-tauri/target npm install npm run tauri build
确保 Vite 开发服务器在 1420 端口运行,检查 vite.config.ts 配置。
确保安装了正确版本的 WebKitGTK:
pkg-config --modversion webkit2gtk-4.1- Tauri - 跨平台桌面应用框架
- React - UI 框架
- TailwindCSS - CSS 框架
- Lucide - 图标库




