Skip to content

Commit 41f0c38

Browse files
committed
feat: release CodexUI wallpaper manager
0 parents  commit 41f0c38

77 files changed

Lines changed: 7646 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/release.yml‎

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
name: Build and publish desktop apps
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*"
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
release:
13+
name: ${{ matrix.name }}
14+
runs-on: ${{ matrix.os }}
15+
strategy:
16+
fail-fast: false
17+
matrix:
18+
include:
19+
- name: Windows x64
20+
os: windows-latest
21+
target: x86_64-pc-windows-msvc
22+
args: --target x86_64-pc-windows-msvc --bundles nsis,msi
23+
- name: macOS Apple Silicon
24+
os: macos-latest
25+
target: aarch64-apple-darwin
26+
args: --target aarch64-apple-darwin --bundles dmg,app
27+
- name: macOS Intel
28+
os: macos-latest
29+
target: x86_64-apple-darwin
30+
args: --target x86_64-apple-darwin --bundles dmg,app
31+
32+
steps:
33+
- name: Check out repository
34+
uses: actions/checkout@v4
35+
36+
- name: Set up PNPM
37+
uses: pnpm/action-setup@v4
38+
with:
39+
version: 10
40+
run_install: false
41+
42+
- name: Set up Node.js
43+
uses: actions/setup-node@v4
44+
with:
45+
node-version: 22
46+
cache: pnpm
47+
48+
- name: Install Rust
49+
uses: dtolnay/rust-toolchain@stable
50+
with:
51+
targets: ${{ matrix.target }}
52+
53+
- name: Cache Rust build
54+
uses: swatinem/rust-cache@v2
55+
with:
56+
workspaces: ./src-tauri -> target
57+
58+
- name: Install frontend dependencies
59+
run: pnpm install --frozen-lockfile
60+
61+
- name: Build and publish Tauri bundles
62+
uses: tauri-apps/tauri-action@v0
63+
env:
64+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
65+
APPLE_SIGNING_IDENTITY: ${{ startsWith(matrix.os, 'macos') && '-' || '' }}
66+
with:
67+
tagName: ${{ github.ref_name }}
68+
releaseName: CodexUI ${{ github.ref_name }}
69+
releaseBody: Download the installer for your operating system from the assets below.
70+
releaseDraft: true
71+
prerelease: false
72+
generateReleaseNotes: true
73+
args: ${{ matrix.args }}

‎.gitignore‎

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Frontend
2+
node_modules/
3+
dist/
4+
.vite/
5+
6+
# Rust / Tauri
7+
src-tauri/target/
8+
src-tauri/gen/schemas/
9+
target/
10+
11+
# Environment and secrets
12+
.env
13+
.env.*
14+
!.env.example
15+
*.pem
16+
*.p12
17+
*.pfx
18+
*.key
19+
*.cer
20+
*.crt
21+
*.mobileprovision
22+
AuthKey_*.p8
23+
24+
# IDE and OS
25+
.idea/
26+
.vscode/
27+
.DS_Store
28+
Thumbs.db
29+
Desktop.ini
30+
*.swp
31+
*.swo
32+
33+
# Logs, tests and temporary files
34+
*.log
35+
*.tmp
36+
*.temp
37+
coverage/
38+
39+
# Local Codex files
40+
.codex/
41+
.agents/

‎LICENSE‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 CodexUI contributors
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

‎README.md‎

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# CodexUI
2+
3+
![Tauri 2](https://img.shields.io/badge/Tauri-2-24C8DB?logo=tauri&logoColor=white)
4+
![Platforms](https://img.shields.io/badge/platform-Windows%20%7C%20macOS-6f62d9)
5+
![License](https://img.shields.io/badge/license-MIT-green)
6+
7+
CodexUI 是一款轻量、开源的 ChatGPT/Codex Desktop 壁纸管理器。它通过仅监听本机回环地址的 Chrome DevTools Protocol(CDP)向桌面客户端注入背景样式,不修改官方安装文件、应用签名或用户的原始图片。
8+
9+
> CodexUI 是社区项目,与 OpenAI 无隶属或背书关系。ChatGPT、Codex 和 OpenAI 是其各自所有者的商标。
10+
11+
## 效果展示
12+
13+
### 壁纸管理器
14+
15+
![CodexUI 壁纸管理界面](docs/images/codexui-app.png)
16+
17+
### 应用后的 Codex Desktop
18+
19+
![Codex Desktop 壁纸效果](docs/images/codex-wallpaper-demo.png)
20+
21+
## 功能
22+
23+
- 自动发现并启动官方 ChatGPT/Codex Desktop
24+
- 通过本机 CDP 连接桌面客户端
25+
- 导入、预览、切换、删除和取消壁纸
26+
- 调节壁纸透明度、背景模糊和暗色遮罩
27+
- 将注入严格限制在主窗口,不影响宠物等透明置顶辅助窗口
28+
- 页面导航或重绘后自动恢复壁纸
29+
- 所有图片均保存在本地
30+
31+
## 安装与使用
32+
33+
从仓库的 **Releases** 页面下载适合系统的安装包:
34+
35+
- Windows:NSIS `-setup.exe` 或 MSI
36+
- Apple Silicon Mac:`aarch64` DMG
37+
- Intel Mac:`x86_64` DMG
38+
39+
使用步骤:
40+
41+
1. 打开 CodexUI。
42+
2. 如果 ChatGPT/Codex 已运行,先保存正在进行的工作,然后点击“重启并连接”。
43+
3. 点击“添加壁纸”,选择 PNG、JPG、WebP、GIF 或 BMP 图片。
44+
4. 调整显示参数,点击图片应用;点击“取消壁纸”恢复官方外观。
45+
46+
Windows 使用 `127.0.0.1:9335`。壁纸复制到 `%LOCALAPPDATA%\CodexUI\wallpapers`,原始图片不会被修改。
47+
48+
## 安全与隐私
49+
50+
- CDP 仅绑定 `127.0.0.1`,不会暴露到局域网。
51+
- 开启 CDP 时,同一系统用户下的其他本地程序理论上可以访问调试端口;请勿同时运行不可信软件。
52+
- CodexUI 不读取聊天内容、API Key、访问令牌或账户信息。
53+
- 仓库和 Actions workflow 不包含证书、密码或签名私钥。
54+
55+
## 本地开发
56+
57+
需要 Node.js 22+、PNPM 10+、Rust stable,以及对应平台的 [Tauri 2 系统依赖](https://v2.tauri.app/start/prerequisites/)。
58+
59+
```bash
60+
pnpm install --frozen-lockfile
61+
pnpm tauri dev
62+
```
63+
64+
构建当前平台安装包:
65+
66+
```bash
67+
pnpm tauri build
68+
```
69+
70+
## 发布
71+
72+
推送形如 `v0.1.0` 的标签后,[GitHub Actions](.github/workflows/release.yml) 会自动创建 Release,并并行构建 Windows x64、macOS Apple Silicon 和 macOS Intel 安装包。应用版本应先在 `src-tauri/tauri.conf.json`、`src-tauri/Cargo.toml` 和 `package.json` 中保持一致。
73+
74+
默认构建不需要自定义密钥,只使用 GitHub 自动提供的 `GITHUB_TOKEN`。面向最终用户正式分发时,建议配置代码签名,详见 [发布签名说明](docs/CODE_SIGNING.md)。
75+
76+
## 贡献
77+
78+
欢迎提交 Issue 和 Pull Request。提交前请至少运行:
79+
80+
```bash
81+
pnpm build
82+
cargo check --manifest-path src-tauri/Cargo.toml
83+
```
84+
85+
## License
86+
87+
[MIT License](LICENSE)

‎app-icon.svg‎

Lines changed: 8 additions & 0 deletions
Loading

‎docs/CODE_SIGNING.md‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Release signing
2+
3+
The default GitHub Actions workflow builds unsigned Windows installers and ad-hoc signed macOS bundles. It does not require repository secrets and never writes credentials into build artifacts or logs.
4+
5+
## macOS signing and notarization
6+
7+
For trusted distribution outside the Mac App Store, create an Apple Developer ID Application certificate and configure these encrypted GitHub Actions secrets:
8+
9+
- `APPLE_CERTIFICATE`: base64-encoded `.p12` certificate
10+
- `APPLE_CERTIFICATE_PASSWORD`: certificate password
11+
- `APPLE_SIGNING_IDENTITY`: certificate identity, such as `Developer ID Application: ...`
12+
- `APPLE_ID`: Apple developer account email
13+
- `APPLE_PASSWORD`: app-specific password
14+
- `APPLE_TEAM_ID`: Apple Developer Team ID
15+
16+
Do not commit any certificate, private key, password, provisioning profile, or `.env` file. Update the workflow to expose these values only through its `env` mapping after the secrets have been configured.
17+
18+
## Windows signing
19+
20+
Windows releases can be built without signing, but SmartScreen may warn users. For production distribution, use a trusted code-signing certificate or a managed signing service. Store the certificate and password as encrypted GitHub Actions secrets, never as repository files.
21+
22+
See the official [Tauri code signing guide](https://v2.tauri.app/distribute/sign/) before enabling either platform's signing configuration.
3.29 MB
Loading

‎docs/images/codexui-app.png‎

458 KB
Loading

‎index.html‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<!doctype html><html lang="zh-CN"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><title>CodexUI</title></head><body><div id="root"></div><script type="module" src="/src/main.tsx"></script></body></html>

‎package.json‎

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{
2+
"name": "codex-ui",
3+
"private": true,
4+
"version": "0.1.0",
5+
"type": "module",
6+
"scripts": {
7+
"dev": "vite",
8+
"build": "tsc && vite build",
9+
"tauri": "tauri"
10+
},
11+
"dependencies": {
12+
"@tauri-apps/api": "^2.8.0",
13+
"@tauri-apps/plugin-dialog": "^2.4.0",
14+
"lucide-react": "^0.468.0",
15+
"react": "^19.0.0",
16+
"react-dom": "^19.0.0"
17+
},
18+
"devDependencies": {
19+
"@tauri-apps/cli": "^2.8.0",
20+
"@types/react": "^19.0.0",
21+
"@types/react-dom": "^19.0.0",
22+
"@vitejs/plugin-react": "^4.3.4",
23+
"typescript": "^5.7.2",
24+
"vite": "^6.0.5"
25+
},
26+
"packageManager": "pnpm@10.33.4"
27+
}

0 commit comments

Comments
 (0)