Skip to main content

heige-codex-skin-studio

One-click theme & skin switcher for OpenAI Codex Desktop using CDP injection — custom images, 12 built-in themes, persistent across restarts

설치로 이동

소스 정보

저장소
reason-machines/codex-skills
최근 소스 활동
2026년 7월 30일 03:08
감지된 SKILL.md 언어
영어
스타
0
포크
1

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
heige-codex-skin-studio
description
One-click theme & skin switcher for OpenAI Codex Desktop using CDP injection — custom images, 12 built-in themes, persistent across restarts
triggers
["how do I theme Codex Desktop","customize Codex Desktop appearance","apply custom skin to Codex","change Codex Desktop theme","use HeiGe Codex Skin Studio","create custom Codex theme from image","enable persistent theming in Codex","troubleshoot Codex skin not loading"]
# HeiGe Codex Skin Studio > Skill by [ara.so](https://ara.so) — Codex Skills collection. **HeiGe Codex Skin Studio** is a theme and skin switcher for OpenAI Codex Desktop (macOS/Windows) that injects custom CSS and backgrounds through Chrome DevTools Protocol (CDP) on loopback `127.0.0.1:9341`. It does **not** modify `app.asar`, binaries, or signature resources. One image becomes a theme; a top menu (`🎨`) switches themes instantly and controls persistence across restarts. ## What It Does - **12 built-in themes**: Hatsune Miku, Genshin Impact (2), Wuthering Waves (2), Naruto (2), Love and Deepspace (2), Dragon Ball (2), easter egg - **Custom image themes**: Upload any PNG/JPG/WebP, auto-extracts color palette and generates dark/light variants - **Persistent skin**: Optional launch agent (macOS LaunchAgent / Windows scheduled task) reapplies theme on every Codex restart - **Reading enhancement**: 90% transparent adaptive background for replies, toggled in theme center - **AI-assisted theme creation**: `.skill` file enables Codex to generate images and apply them as themes end-to-end ## Installation ### macOS ```bash cd /path/to/heige-codex-skin-studio open scripts/install.command ``` This installs the launcher and applies the default Miku theme. The `🎨` menu appears in Codex Desktop's top bar. ### Windows ```cmd cd \path\to\heige-codex-skin-studio scripts\windows\install.bat ``` For daily use, run `scripts\windows\apply.ps1` or the compatibility alias `scripts\windows\enable-skin.bat` to restore the current session. To enable persistence (launch on login), use the `🎨` menu's "Persistent Skin" toggle. **Uninstall** (Windows): ```cmd scripts\windows\uninstall.bat ``` Removes scheduled tasks, Start Menu shortcuts, AppData state, and stable installation directory. ## Key Commands & Scripts | Script | Purpose | |--------|---------| | `scripts/install.command` (macOS) | Initial install, sets up launcher | | `scripts/windows/install.bat` | Initial install (Windows) | | `scripts/apply.command` (macOS) | Restore skin for current session, `--restart` flag to force quit & relaunch | | `scripts/windows/apply.ps1` | Restore skin (Windows) | | `scripts/pause.command` / `scripts/pause.ps1` | Temporarily disable skin (current session) | | `scripts/resume.command` / `scripts/resume.ps1` | Re-enable skin (current session) | | `scripts/restore.command` / `scripts/restore.ps1` | Remove skin, restore native UI | | `scripts/windows/close-codex.bat` | Safely quit Codex/GPT Desktop, preserve persistence settings | | `scripts/windows/uninstall.bat` | Complete uninstall (Windows) | | `customize.command` | Generate theme from local image file | **Command-line options** (for `apply.command` / `apply.ps1`): ```bash # macOS ./scripts/apply.command --restart # Force quit Codex & relaunch with skin ./scripts/apply.command --theme miku # Apply specific built-in theme ./scripts/apply.command --custom /path/to/image.png # Apply custom image theme # Windows (PowerShell) .\scripts\windows\apply.ps1 -Restart .\scripts\windows\apply.ps1 -Theme "genshin-night" .\scripts\windows\apply.ps1 -CustomImage "C:\path\to\image.jpg" ``` ## Creating Custom Themes ### Method 1: Top Menu Upload 1. Click `🎨` in Codex Desktop 2. Select `+ Custom Image` 3. Upload PNG/JPG/JPEG/WebP 4. Auto-extracts palette, generates light/dark variants 5. Theme is saved to user library and persists if "Persistent Skin" is enabled ### Method 2: Command-Line Generator ```bash # macOS ./customize.command # Prompts for image path, generates theme in output/custom-theme/ ``` ### Method 3: AI-Assisted (Codex Skill) Install `output/heige-codex-skin-studio.skill` in Codex Desktop, then prompt: > "Generate a cyberpunk neon cityscape, then create a Codex theme from it" Codex will generate the image, extract colors, and apply the theme automatically. ## Theme JSON Format Themes are stored in `themes/<theme-name>/theme.json`: ```json { "name": "Miku 488137", "author": "HeiGe AI", "version": "2.0.0", "description": "High-fidelity Hatsune Miku theme", "background": { "light": "miku-light.webp", "dark": "miku-dark.webp" }, "colors": { "light": { "primary": "#39C5BB", "secondary": "#5DCECD", "accent": "#7FD9D8", "background": "#E8F8F8", "surface": "#FFFFFF", "text": "#1A1A1A", "textSecondary": "#666666", "border": "#D0E8E8" }, "dark": { "primary": "#39C5BB", "secondary": "#2DB5B0", "accent": "#5DCECD", "background": "#0A1A1A", "surface": "#162828", "text": "#E8F8F8", "textSecondary": "#A0B8B8", "border": "#2D4848" } }, "codexAppearance": { "light": "light", "dark": "dark" } } ``` **Key fields**: - `background.light` / `background.dark`: relative paths to background images - `colors.light` / `colors.dark`: 8-color palette (primary, secondary, accent, background, surface, text, textSecondary, border) - `codexAppearance`: maps theme mode to Codex's native light/dark setting ## Configuration & Persistence **Persistent skin** is controlled via the `🎨` menu toggle: - **macOS**: Creates `~/Library/LaunchAgents/com.heigeai.codex-skin-controller.plist` - **Windows**: Creates scheduled task `HeiGeAI_CodexSkinController` for current user login **User theme library**: Custom uploaded themes are stored in: - macOS: `~/Library/Application Support/HeiGeCodexSkin/user-themes/` - Windows: `%APPDATA%\HeiGeCodexSkin\user-themes\` **State file** (tracks current theme, persistence status): - macOS: `~/Library/Application Support/HeiGeCodexSkin/skin-state.json` - Windows: `%APPDATA%\HeiGeCodexSkin\skin-state.json` ```json { "currentTheme": "miku", "persistenceEnabled": true, "readingEnhancement": true, "lastApplied": "2026-07-29T12:34:56.789Z" } ``` ## Common Patterns ### Apply a Built-in Theme Programmatically ```javascript // In src/injector/theme-manager.js (or your own script) const ThemeManager = require('./src/injector/theme-manager.js'); const tm = new ThemeManager(); await tm.applyTheme('genshin-night'); // Built-in theme ID ``` ### Generate & Apply Custom Theme from Image ```javascript const { generateThemeFromImage } = require('./src/utils/theme-generator.js'); const ThemeManager = require('./src/injector/theme-manager.js'); const imagePath = '/path/to/wallpaper.jpg'; const outputDir = './output/my-custom-theme'; // Extract colors, generate theme.json + CSS await generateThemeFromImage(imagePath, outputDir, { themeName: 'My Custom Theme', author: 'Your Name' }); // Apply it const tm = new ThemeManager(); await tm.applyTheme(outputDir); // Pass directory path for custom themes ``` ### Inject CSS Directly via CDP ```javascript const CDP = require('chrome-remote-interface'); const client = await CDP({ port: 9341 }); const { Page, Runtime } = client; await Page.enable(); await Runtime.enable(); const css = ` body { background-image: url('file:///path/to/bg.png'); background-size: cover; } .chat-message { background-color: rgba(57, 197, 187, 0.9) !important; } `; await Runtime.evaluate({ expression: ` (function() { const style = document.createElement('style'); style.id = 'heige-custom-skin'; style.textContent = ${JSON.stringify(css)}; document.head.appendChild(style); })(); ` }); await client.close(); ``` ### Read Current Theme State ```javascript const fs = require('fs'); const path = require('path'); const os = require('os'); const stateDir = process.platform === 'win32' ? path.join(process.env.APPDATA, 'HeiGeCodexSkin') : path.join(os.homedir(), 'Library', 'Application Support', 'HeiGeCodexSkin'); const statePath = path.join(stateDir, 'skin-state.json'); const state = JSON.parse(fs.readFileSync(statePath, 'utf-8')); console.log('Current theme:', state.currentTheme); console.log('Persistence enabled:', state.persistenceEnabled); ``` ### Toggle Reading Enhancement ```javascript // In injected context (via CDP Runtime.evaluate) window.heigeReadingEnhancement = !window.heigeReadingEnhancement; // Reload theme to apply const themeId = document.documentElement.dataset.heigeTheme; window.heigeApplyTheme(themeId); ``` ## Environment Variables - `HEIGE_CODEX_CDP_PORT` — Override CDP port (default: `9341`) - `HEIGE_CODEX_THEME_DIR` — Custom theme directory (default: `./themes`) - `HEIGE_LOG_LEVEL` — `debug` | `info` | `warn` | `error` (default: `info`) Example: ```bash export HEIGE_CODEX_CDP_PORT=9342 export HEIGE_LOG_LEVEL=debug ./scripts/apply.command ``` ## Troubleshooting ### Skin not appearing after restart 1. Check persistence is enabled: `🎨` menu → "Persistent Skin" should be green 2. Verify launch agent exists: - macOS: `ls ~/Library/LaunchAgents/com.heigeai.codex-skin-controller.plist` - Windows: `schtasks /Query /TN HeiGeAI_CodexSkinController` 3. Re-run install script ### Codex window becomes sluggish (low FPS, input lag) ```bash # macOS ./scripts/apply.command --restart # Windows .\scripts\windows\apply.ps1 -Restart ``` Force-quit and relaunch Codex with fresh CDP session. ### Custom image theme not saving - Ensure image is PNG/JPG/JPEG/WebP, <10MB - Check user theme directory exists and is writable: - macOS: `~/Library/Application Support/HeiGeCodexSkin/user-themes/` - Windows: `%APPDATA%\HeiGeCodexSkin\user-themes\` - Review logs: `tail -f ~/.heige-codex-skin.log` (macOS) or `%TEMP%\heige-codex-skin.log` (Windows) ### CDP connection refused - Codex must be launched with `--remote-debugging-port=9341` - Check Codex is running: `ps aux | grep Codex` (macOS) or `tasklist | findstr Codex` (Windows) - Firewall/antivirus may block loopback port — whitelist `127.0.0.1:9341` ### "Persistent Skin" toggle stuck on "Waiting..." - macOS: Check LaunchAgent plist syntax: `plutil -lint ~/Library/LaunchAgents/com.heigeai.codex-skin-controller.plist` - Windows: Run `schtasks /Query /TN HeiGeAI_CodexSkinController /V /FO LIST` to verify task exists and is enabled - Re-run install script to repair ### Theme colors not matching preview - Verify `theme.json` color keys are correct (primary, secondary, accent, background, surface, text, textSecondary, border) - Check Codex's native appearance setting — theme applies `codexAppearance.light` or `codexAppearance.dark` to the app - Some UI elements may use Codex's built-in styles — skin only overrides injected CSS ### Uninstall doesn't remove all files ```bash # macOS rm -rf ~/Library/Application\ Support/HeiGeCodexSkin rm ~/Library/LaunchAgents/com.heigeai.codex-skin-controller.plist launchctl remove com.heigeai.codex-skin-controller # Windows schtasks /Delete /TN HeiGeAI_CodexSkinController /F rd /s /q "%APPDATA%\HeiGeCodexSkin" rd /s /q "%LOCALAPPDATA%\Programs\HeiGeCodexSkin" ``` ## Security Notes - CDP on loopback (`127.0.0.1:9341`) has **no authentication** — any local process with same user privileges can connect - Injection only occurs during local debugging session; native Codex signature is **not modified** - Full security policy: `SECURITY.md` in project root - Asset provenance (themes, images): `ASSET_PROVENANCE.md` ## Real-World Example: AI-Driven Theme Pipeline ```javascript // Install the .skill file in Codex Desktop first: // output/heige-codex-skin-studio.skill // Then in Codex chat, prompt: // "Generate a pastel sakura landscape, 1920x1080, then create a Codex theme" // Codex will execute (simplified):
GitHub에서 보기
이 SKILL.md는 매우 커서 SkillsMP가 여기에는 첫 섹션만 미리 보여줍니다. GitHub에서 보기