Dsh Web UI Release
ningbainb/deepseek-harness-desktop
Release and publish the dsh-web-ui monorepo (DSH Web GUI plugin family + skin collection) — bump all packages to one unified version, commit and tag, push the vX.Y.Z tag that triggers the GitHub…
Launches, restarts and troubleshoots the real AO Electron desktop app from a checkout, with isolated or real local data and checks for stale processes.
$ npx skills add OrchestratorInc/agent-orchestrator --skill ao-desktop-dev -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install OrchestratorInc/agent-orchestrator ao-desktop-dev --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/OrchestratorInc/agent-orchestrator.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/ao-desktop-dev .claude/skills/ao-desktop-dev && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "ao-desktop-dev" agent skill from https://github.com/OrchestratorInc/agent-orchestrator/tree/main/.agents/skills/ao-desktop-dev into .claude/skills/ao-desktop-dev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ao-desktop-dev", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/OrchestratorInc/agent-orchestrator/tree/main/.agents/skills/ao-desktop-devType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add OrchestratorInc/agent-orchestrator --skill ao-desktop-dev -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install OrchestratorInc/agent-orchestrator ao-desktop-dev --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OrchestratorInc/agent-orchestrator.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/ao-desktop-dev .agents/skills/ao-desktop-dev && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ao-desktop-dev" agent skill from https://github.com/OrchestratorInc/agent-orchestrator/tree/main/.agents/skills/ao-desktop-dev into .agents/skills/ao-desktop-dev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ao-desktop-dev", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add OrchestratorInc/agent-orchestrator --skill ao-desktop-dev -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install OrchestratorInc/agent-orchestrator ao-desktop-dev --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OrchestratorInc/agent-orchestrator.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/ao-desktop-dev .cursor/skills/ao-desktop-dev && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ao-desktop-dev" agent skill from https://github.com/OrchestratorInc/agent-orchestrator/tree/main/.agents/skills/ao-desktop-dev into .cursor/skills/ao-desktop-dev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ao-desktop-dev", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/OrchestratorInc/agent-orchestrator.git --path .agents/skills/ao-desktop-dev--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add OrchestratorInc/agent-orchestrator --skill ao-desktop-dev -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install OrchestratorInc/agent-orchestrator ao-desktop-dev --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OrchestratorInc/agent-orchestrator.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/ao-desktop-dev .gemini/skills/ao-desktop-dev && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ao-desktop-dev" agent skill from https://github.com/OrchestratorInc/agent-orchestrator/tree/main/.agents/skills/ao-desktop-dev into .gemini/skills/ao-desktop-dev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ao-desktop-dev", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install OrchestratorInc/agent-orchestrator ao-desktop-devInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add OrchestratorInc/agent-orchestrator --skill ao-desktop-dev -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/OrchestratorInc/agent-orchestrator.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/ao-desktop-dev .github/skills/ao-desktop-dev && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ao-desktop-dev" agent skill from https://github.com/OrchestratorInc/agent-orchestrator/tree/main/.agents/skills/ao-desktop-dev into .github/skills/ao-desktop-dev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ao-desktop-dev", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add OrchestratorInc/agent-orchestrator --skill ao-desktop-dev -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install OrchestratorInc/agent-orchestrator ao-desktop-dev --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OrchestratorInc/agent-orchestrator.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/ao-desktop-dev .opencode/skills/ao-desktop-dev && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ao-desktop-dev" agent skill from https://github.com/OrchestratorInc/agent-orchestrator/tree/main/.agents/skills/ao-desktop-dev into .opencode/skills/ao-desktop-dev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ao-desktop-dev", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ao-desktop-devLaunches, restarts and troubleshoots the real AO Electron desktop app from a checkout, with isolated or real local data and checks for stale processes.
The skill runs the Electron app from the current checkout and verifies it in the native window, keeping the dev daemon, renderer, preload and data mode explicit so nobody reviews a mock or stale build by accident. Isolated mode is the default for implementation and destructive testing, using port 3002 and data under ~/.ao/dev. Real-data mode is used only when you ask to see this machine's actual projects or sessions. It starts the checkout's dev daemon with AO_DATA_DIR pointing at the real data directory, and that daemon is not the installed app's daemon.
In real-data mode the agent warns before actions that create, terminate, rename or change sessions, and advises quitting the packaged app first because two daemons sharing one SQLite database can cross-talk. The dev window is marked Agent Orchestrator (dev) with a dev badge. It never attaches an unpackaged Electron app to a packaged daemon from another checkout. Preflight covers git status, the frontend package, main and forge config files, the Node, npm and Go versions, npm ci only when needed, and inspecting processes for this exact checkout without killing by name alone or ending every Electron process.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 42d304d. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmrgosascriptgitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm and git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
AO Desktop App Launcher loads about 2.4k tokens when it runs. Until then it costs about 109 tokens; SKILL.md has 1,162 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from OrchestratorInc/agent-orchestrator at commit 42d304d, republished under its Apache-2.0 licence (© OrchestratorInc). 1,162 words, ~2,361 tokens.
.claude/skills/ao-desktop-dev/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Run the Electron application from the current checkout and verify it in the native window. Keep the dev daemon, renderer, Electron preload, and selected data mode explicit so the user never reviews a mock or stale build by accident.
Ask only when the request does not make the desired data source clear.
3002, ~/.ao/dev/running.json, ~/.ao/dev/data, and ~/.ao/dev/electron.AO_DATA_DIR at the real AO data directory. This is a separate daemon process using real data; do not describe it as the installed app's daemon.Agent Orchestrator (dev) title, the default Electron dock icon, and an in-app dev badge — verify those markers before acting.git status --short --branch.frontend/package.json, frontend/src/main.ts, and frontend/forge.config.ts when the launch behavior may have changed. Treat source as authoritative over this skill.backend/go.mod are available. Run npm ci in frontend/ only when dependencies are absent or inconsistent; do not reinstall on every launch.On macOS/Linux, inspect checkout-scoped processes and listeners with finite commands:
ps -axo pid=,ppid=,pgid=,lstart=,command= | rg 'frontend/(node_modules/.bin/electron-forge|node_modules/electron/dist/Electron)'
lsof -nP -iTCP:3002 -sTCP:LISTENUse the full command paths and start times to distinguish this checkout from other AO worktrees. On Windows, use Get-CimInstance Win32_Process and Get-NetTCPConnection; preserve the same exact-target rule.
Run Electron Forge in a foreground interactive process so its output and restart input remain available. Do not append &, use a detached shell, or start a browser preview instead.
On macOS/Linux:
cd frontend
env -u AO_DATA_DIR -u AO_RUN_FILE -u AO_PORT npm run devOn PowerShell:
Set-Location frontend
Remove-Item Env:AO_DATA_DIR, Env:AO_RUN_FILE, Env:AO_PORT -ErrorAction SilentlyContinue
npm run devFirst resolve and report the actual data directory. In an AO worker session, AO_DATA_DIR normally already identifies it. Otherwise the repository default is the absolute path corresponding to ~/.ao/data.
Keep the real data directory but remove inherited port/run-file overrides so the dev app retains its own daemon handshake and port:
cd frontend
env -u AO_RUN_FILE -u AO_PORT AO_DATA_DIR="${AO_DATA_DIR:-$HOME/.ao/data}" npm run devPowerShell equivalent:
Set-Location frontend
$realAoData = if ($env:AO_DATA_DIR) { $env:AO_DATA_DIR } else { Join-Path $HOME ".ao/data" }
Remove-Item Env:AO_RUN_FILE, Env:AO_PORT -ErrorAction SilentlyContinue
$env:AO_DATA_DIR = $realAoData
npm run devDo not print unrelated environment variables: AO sessions may carry credentials. It is safe to report only AO_DATA_DIR, AO_RUN_FILE, and AO_PORT.
Wait for all of these signals:
Launched Electron app.daemon listening, normally on 127.0.0.1:3002 unless it explicitly reports another bound port./api/v1/projects and /api/v1/sessions.If several AO windows exist, identify the newest Electron main process belonging to this checkout. On macOS, foreground that exact PID only when needed:
osascript -e 'tell application "System Events" to set frontmost of first process whose unix id is <verified-pid> to true'Do not claim real data from appearance alone. Verify the selected data directory and successful API responses. Do not claim visual success from compilation alone; interact with the requested flow in Electron or ask the user for a screenshot when screen capture is unavailable.
frontend/src/main.ts, preload files, Forge configuration, shared bridge types, or IPC registration require an Electron main-process restart. Type rs into the active Forge terminal or fully stop and relaunch the dev process.aoBridge.<method> is not a function almost always means the renderer hot-reloaded against a stale preload. Restart Electron before changing code to add guards around a bridge method that should exist.After a restart, confirm the new Electron PID/start time and re-check the logs for the original error.
When the user wants to see multiple unmerged PRs together:
Once one PR merges, prefer rebasing the remaining PR onto current main; the normal PR branch then contains both views without a local integration merge.
TERM to that group.ao preview controls the AO Browser panel; it does not launch the desktop shell.
npm run dev:web is useful for browser-only renderer work but does not provide Electron APIs or native chrome.
Renderer URLs can move from 5173 when a port is occupied. Trust Forge's printed URL rather than assuming one.
Multiple dev instances share ~/.ao/dev/electron by default, and Chromium's
singleton lock lives in the profile, so a second checkout's npm run dev
loses requestSingleInstanceLock() and exits immediately with code 0. To run
two worktrees at once, give each its own profile, run file, and data dir:
env -u AO_PORT \
AO_DEV_ELECTRON_DIR="$HOME/.ao/dev/<name>/electron" \
AO_RUN_FILE="$HOME/.ao/dev/<name>/running.json" \
AO_DATA_DIR="$HOME/.ao/dev/<name>/data" \
npm run devWithout all three the instances still collide, on the profile lock, the run file, or the daemon's SQLite data.
An inherited AO_DATA_DIR changes dev mode from isolated data to real data. Always choose and report the mode instead of inheriting it accidentally.
Repeated /healthz/ 404 entries from external probes can be noisy; readiness is determined by Electron's daemon status and successful API traffic, not by log volume.
Report:
© OrchestratorInc, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in .agents/skills/ao-desktop-dev of OrchestratorInc/agent-orchestrator.
Open the folder on GitHubat commit 42d304d
AO Desktop App Launcher next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| AO Desktop App Launcher this skillOrchestratorInc/agent-orchestrator | 13k | — | ~2.4k | Automated safety check: Pass | Apache-2.0 | |
| Dsh Web UI Releaseningbainb/deepseek-harness-desktop | 781 | — | ~1.4k | Automated safety check: Warn | BSD-3-Clause | |
| Cherry Studio Electron DevCherryHQ/cherry-studio | 52k | — | ~739 | Automated safety check: Pass | AGPL-3.0 | |
| UI Visual DebuggingNangoHQ/nango | 13k | — | ~1.3k | Automated safety check: Pass | Custom licence | |
| Skin Developerningbainb/deepseek-harness-desktop | 781 | — | ~1.4k | Automated safety check: Pass | BSD-3-Clause | |
| Code Reviewyaklang/yakit | 7.8k | — | ~1.4k | Automated safety check: Notes | AGPL-3.0 |
ningbainb/deepseek-harness-desktop
Release and publish the dsh-web-ui monorepo (DSH Web GUI plugin family + skin collection) — bump all packages to one unified version, commit and tag, push the vX.Y.Z tag that triggers the GitHub…
CherryHQ/cherry-studio
Develops, debugs and profiles Cherry Studio in a tracked Electron instance, reusing a verified running instance and capturing before and after evidence for each change.
NangoHQ/nango
A skill your agent uses when modifying or visually debugging Nango frontend UI, including packages/webapp, packages/connect-ui, browser interactions, screenshots, and visual regressions.
ningbainb/deepseek-harness-desktop
Build a new skin for the dsh-web-ui skin collection (DSH Web GUI) and publish it into the skin-center plugin — scaffold with scripts/dsh-skin-new, author skin.json plus the apply/dispose +…
yaklang/yakit
对 Yakit 仓库的代码改动做规范化 code review:按代码逻辑、TS 定义、UI 引用与 Props、CSS 样式、依赖版本、配置项六个维度审查,检查测试用例缺失,强制执行 tsc 类型检查与 vitest 测试验证,输出「结果汇总 / 明细解释 / 合并结论」三块报告,经用户确认后写入文件。当用户要求 review、审查、评审代码改动,或在提交、合并、提 PR…
addyosmani/agent-skills
Applies a stop-the-line rule and a step-by-step triage when tests fail, builds break or something stops working, aiming at the root cause instead of guesses.
OrchestratorInc/agent-orchestrator
Helps a reporter describe a bug, searches for duplicates and gathers diagnostic evidence kept separate from a short, human-worded issue draft.
OrchestratorInc/agent-orchestrator
Catalog of the ao command-line tool for Agent Orchestrator: spawning workers, managing sessions and projects, Cues, messages, the shared browser, previews and the daemon.
OrchestratorInc/agent-orchestrator
Documents the ao CLI for spawning, listing, messaging, and killing worker sessions, and for reporting back to an orchestrator from inside a sandbox.
OrchestratorInc/agent-orchestrator
Calculates and keeps up to date the required code, test and other change-count header at the top of a pull request description in this repository.
Categories
Launches, restarts and troubleshoots the real AO Electron desktop app from a checkout, with isolated or real local data and checks for stale processes. The skill runs the Electron app from the current checkout and verifies it in the native window, keeping the dev daemon, renderer, preload and data mode explicit so nobody reviews a mock or stale build by accident.ao/dev.
AO Desktop App Launcher fits situations like: running the real AO desktop app to see a frontend change; reviewing a combined set of PR branches in the desktop UI; troubleshooting stale Electron processes, port conflicts or preload bridge mismatches; opening the app against real local AO data.
Run `npx skills add OrchestratorInc/agent-orchestrator --skill ao-desktop-dev -a claude-code`. Or copy the skill folder (.agents/skills/ao-desktop-dev in OrchestratorInc/agent-orchestrator) into .claude/skills/ao-desktop-dev in your project. Claude Code loads it when a task matches its description.
Run `npx skills add OrchestratorInc/agent-orchestrator --skill ao-desktop-dev -a codex`. Or copy the skill folder (.agents/skills/ao-desktop-dev in OrchestratorInc/agent-orchestrator) into .agents/skills/ao-desktop-dev in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add OrchestratorInc/agent-orchestrator --skill ao-desktop-dev -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ao-desktop-dev, .gemini/skills/ao-desktop-dev, .github/skills/ao-desktop-dev and .opencode/skills/ao-desktop-dev in your project.
Going by SKILL.md and its folder, AO Desktop App Launcher needs the command-line tools its instructions call (npm, rg, osascript and git). Our summary lists: Node.js and npm, with dependencies installed in frontend/; The Go version required by backend/go.mod; A checkout of the agent-orchestrator repository.
SKILL.md contains no URLs. Its commands use npm and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
AO Desktop App Launcher is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with AO Desktop App Launcher: Dsh Web UI Release (ningbainb/deepseek-harness-desktop, 781 stars), Cherry Studio Electron Dev (CherryHQ/cherry-studio, 52k stars), UI Visual Debugging (NangoHQ/nango, 13k stars) and Skin Developer (ningbainb/deepseek-harness-desktop, 781 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
OrchestratorInc (a GitHub organization) maintains it in OrchestratorInc/agent-orchestrator, which has 12,881 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 8, 2026.
Source: OrchestratorInc/agent-orchestrator on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.