An open API service indexing awesome lists of open source software.

https://github.com/astrbotdevs/astrbot-desktop


https://github.com/astrbotdevs/astrbot-desktop

Last synced: 30 days ago
JSON representation

Awesome Lists containing this project

README

          

![AstrBot-Logo-Simplified](https://github.com/user-attachments/assets/ffd99b6b-3272-4682-beaa-6fe74250f7d9)

# AstrBot Desktop

AstrBot 桌面应用(Tauri)。


上游项目仓库
·
官方文档



Tauri 2.10.0
Rust 1.86+
CPython 3.12
AstrBotDevs/AstrBot

## 一键安装(推荐)

如果你只想使用软件,不需要本地构建,请直接从 [`Releases`](https://github.com/AstrBotDevs/AstrBot-desktop/releases/latest) 下载对应系统的安装包。

版本说明:

- [正式版](https://github.com/AstrBotDevs/AstrBot-desktop/releases/latest):适合大多数用户日常使用。
- [Nightly 版](https://github.com/AstrBotDevs/AstrBot-desktop/releases/tag/nightly):基于上游最新提交自动构建,适合提前体验新改动。
- 下载时请按操作系统与 CPU 架构选择对应安装包。

## 开源协议

本项目采用 `AGPL-3.0` 开源协议,协议全文见:[`LICENSE`](./LICENSE)。

## 手动构建

推荐直接使用 Makefile:

```bash
make deps
make prepare
make dev
make build
```

可用命令总览:

```bash
make help
```

构建产物默认在 `src-tauri/target/release/bundle/`。

## 常用维护命令

```bash
make lint
make test
make doctor
make clean
make prune
```

`make test` 会执行:

- Rust 全量单元测试(`cargo test --locked`)
- 资源准备脚本行为测试(`pnpm run test:prepare-resources`,若本地无 `pnpm` 会跳过并提示)

## 版本维护(重要)

- `make update`:从上游同步版本(推荐日常使用)。
- `make sync-version`:从当前解析到的 AstrBot 源同步版本(会受本地环境变量影响)。
- `make build`:默认使用当前 `package.json` 的版本,可用 `ASTRBOT_DESKTOP_VERSION=...` 覆盖(支持 `v` 前缀,写入时会自动去掉)。

桌面端版本会同步到:
- `package.json`
- `src-tauri/Cargo.toml`
- `src-tauri/tauri.conf.json`

### 常用环境变量

- `ASTRBOT_SOURCE_GIT_URL` / `ASTRBOT_SOURCE_GIT_REF`:指定上游仓库与分支/标签(默认 `https://github.com/AstrBotDevs/AstrBot.git` + `master`)。
- `ASTRBOT_SOURCE_DIR`:指定本地 AstrBot 源码目录(用于 `sync-version`/资源准备,`build` 也会读取)。
- `ASTRBOT_BUILD_SOURCE_DIR`:仅用于本次 `make build` 的源码目录,优先级高于 `ASTRBOT_SOURCE_DIR`。
- `ASTRBOT_DESKTOP_VERSION`:覆盖写入桌面版本号(支持 `v` 前缀,内部会归一化为无 `v`)。

示例:

```bash
make update
make update ASTRBOT_SOURCE_GIT_REF=v4.17.5
make build ASTRBOT_DESKTOP_VERSION=v4.17.5
make build ASTRBOT_BUILD_SOURCE_DIR=/path/to/AstrBot
```

清理构建相关环境变量:

```bash
make clean-env
source .astrbot-reset-env.sh
```

## CI 版本同步策略

- 定时构建(`schedule`)检测到上游新 tag 时,会先自动同步版本文件并提交,再继续构建。
- 手动触发(`workflow_dispatch`)默认只构建,不自动回写版本文件。

## 构建流程说明

`src-tauri/tauri.conf.json` 配置了 `beforeBuildCommand=pnpm run prepare:resources`。构建时会自动完成:
1. 拉取/更新 AstrBot 源码
2. 构建并同步 `resources/webui`
3. 准备 `resources/backend`(含运行时与启动脚本)
4. 执行 Tauri 打包

## 常见问题

### macOS 提示“应用已损坏”或无法打开

如果你是从网络下载的安装包,macOS 可能给 `AstrBot.app` 打上 quarantine 标记。可执行:

```bash
xattr -dr com.apple.quarantine /Applications/AstrBot.app
```

然后重新启动应用。如果应用不在 `/Applications`,请替换为实际路径。

### 缺少 Node.js / npx / uvx

部分 MCP 工具依赖 `node`/`npx` 或 `uvx`。可按下面方式安装并校验。

1. 安装 Node.js(`npx` 随 npm 一起提供)

- macOS(Homebrew):

```bash
brew install node
```

- Windows:
使用 Node.js 官方安装器安装 LTS 版本:
- Linux(Debian/Ubuntu):

```bash
sudo apt-get update
sudo apt-get install -y nodejs npm
```

2. 安装 uv(提供 `uvx`)

- macOS(Homebrew):

```bash
brew install uv
```

- 其他系统请参考官方安装文档:

3. 校验命令可用

```bash
node -v
# Debian/Ubuntu 某些环境中可执行文件名可能是 nodejs
nodejs -v
npm -v
npx -v
uvx --version
```

说明:有时会把 `npx` 误写为 `nvx`,正确命令是 `npx`。