Tools
Deskui
Desktop UI/UX design and engineering Agent Skill for Tauri 2 + Electron - a multi-agent plugin marketplace for Claude Code, Codex, Cursor, OpenClaw and 34 agents. Zero dependencies, MIT.
Install
openclaw plugins install ./openclaw
README
# deskui
[](https://github.com/FluxeniteMC/deskui/actions/workflows/check.yml)
[](LICENSE)
[](CHANGELOG.md)
[](agents.json)
[](bin/deskui-skill.mjs)
[](https://fluxenitemc.github.io/deskui/)
Desktop UI/UX design and engineering **Agent Skill** for **Tauri 2** and **Electron** apps,
packaged as a multi-agent plugin marketplace — Claude Code, Codex, Cursor, Grok Bot, Qoder,
and OpenClaw get native plugin manifests, while OpenCode, Gemini CLI, GitHub Copilot, and
~30 more agents are covered by the cross-agent installer.
**Live docs:** [fluxenitemc.github.io/deskui](https://fluxenitemc.github.io/deskui/) ·
install in 60 seconds (below) — and if deskui makes your app feel native, ⭐ star the repo
so more builders find it.
```
.
├── plugin/ # the plugin payload (single source of truth)
│ ├── .claude-plugin/plugin.json # Claude Code payload manifest
│ ├── .codex-plugin/plugin.json # Codex payload manifest
│ ├── .cursor-plugin/plugin.json # Cursor payload manifest
│ ├── .qoder-plugin/plugin.json # Qoder payload manifest
│ └── skills/deskui/ # SKILL.md + references/ + assets/ (+ agents/openai.yaml)
├── .claude-plugin/ # repo-root Claude Code marketplace + mirror manifest
├── .codex-plugin/plugin.json # repo-root Codex bundle manifest
├── .cursor-plugin/marketplace.json # repo-root Cursor marketplace
├── .grok-plugin/plugin.json # repo-root Grok Bot manifest
├── .qoder-plugin/plugin.json # repo-root Qoder manifest
├── .agents/plugins/marketplace.json# agents/Codex personal-marketplace convention
├── openclaw/ # native OpenClaw package
│ ├── openclaw.plugin.json
│ └── skills/deskui/ # generated copy (deskui-skill pack)
├── install/ # installer entry points (bash + node)
├── bin/deskui-skill.mjs # installer / packer / version sync / validator (no deps)
├── agents.json # skill-directory registry for 34 agents
├── configs/ # per-ecosystem config templates
├── docs/ # neobrutalist docs site (generated + hand-authored)
├── CHANGELOG.md · CLAUDE.md # release notes · agent repo guide
└── package.json # npm package (bin: deskui-skill)
```
The repo follows the [claude-mem](https://github.com/thedotmack/claude-mem) layout: the
repository root **is** the marketplace, `plugin/` is the payload, and the native
per-ecosystem manifests at the root point into it.
Nothing is installed on your machine by cloning this repo. The installer is a **dry run**
until you pass `--apply`.
## Claude Code
The repo root is a Claude Code marketplace:
```text
/plugin marketplace add FluxeniteMC/deskui (or a local clone path)
/plugin install deskui@deskui
```
Or load the payload directly without any marketplace:
```bash
claude --plugin-dir /path/to/this/repo/plugin
```
Plain-skill alternative (no plugin system): `node bin/deskui-skill.mjs install --agent claude-code --apply`.
## OpenAI Codex
Route A — personal marketplace pointing at a clone (recommended):
```bash
git clone https://github.com/FluxeniteMC/deskui ~/deskui
mkdir -p ~/.agents/plugins
# merge if the file already exists:
cp ~/deskui/.agents/plugins/marketplace.json ~/.agents/plugins/marketplace.json
codex plugin add deskui@deskui-local
codex plugin list
```
The entry path (`./plugin`) resolves relative to the marketplace root (your home dir), which
is why the clone lives at `~/deskui`.
Route B — plugin copy only (no clone kept): copy `plugin/` to `~/plugins/deskui` and use
[`configs/codex-marketplace.personal.json`](./configs/codex-marketplace.personal.json)
(path `./plugins/deskui`) as the marketplace entry.
Plain-skill alternative (no plugins at all): `node bin/deskui-skill.mjs install --agent codex --apply`
writes `~/.codex/skills/deskui/` **and** `~/.agents/skills/deskui/` (Codex versions have
disagreed about which directory they scan).
Start a new Codex thread after installing. When iterating on the plugin locally, bump the
`version` to `<base>+codex.<token>` (Codex cachebuster convention) and re-run
`codex plugin add deskui@deskui-local`.
## Cursor
`plugin/` is a Cursor bundle (`.cursor-plugin/plugin.json`, skills at `./skills/`), and the
repo root carries `.cursor-plugin/marketplace.json` listing it — point Cursor's plugin /
marketplace UI at this repository. Plain-skill alternative:
`node bin/deskui-skill.mjs install --agent cursor --apply`.
## Grok Bot and Qoder
Repo-root manifests (`.grok-plugin/plugin.json`, `.qoder-plugin/plugin.json`) declare
`skills: ./plugin/skills/` in the bundle format those products consume. Install through
their respective plugin tooling; the plain-skill installer also supports them via
`agents.json`.
## OpenClaw
Three install routes, all recognized by OpenClaw:
```bash
# Native OpenClaw package (openclaw.plugin.json):
openclaw plugins install ./openclaw
openclaw plugins inspect deskui
# Bundle route (OpenClaw auto-detects the Claude/Codex/Cursor bundle markers in plugin/):
openclaw plugins install ./plugin
# Claude-marketplace route:
openclaw plugins marketplace list <path-or-git-source>
openclaw plugins install deskui --marketplace <source>
```
Publish to ClawHub from the `openclaw/` folder (single `categories` entry, empty
`configSchema`, no exclusive `kind`). Plain-skill alternative:
`node bin/deskui-skill.mjs install --agent openclaw --apply` (global `~/.openclaw/skills/`)
or `--scope project` (workspace `skills/`).
## Everything else (OpenCode, Gemini CLI, Antigravity, Copilot, Cursor, …)
```bash
node bin/deskui-skill.mjs agents # full agent/path table
node bin/deskui-skill.mjs install --agent opencode gemini-cli github-copilot # dry run
node bin/deskui-skill.mjs install --agent opencode gemini-cli github-copilot --apply
node bin/deskui-skill.mjs list
node bin/deskui-skill.mjs install --scope project --dir ./my-app --apply # project scope
```
`agents.json` lists global and project skill directories for 34 agents (OpenCode, Claude
Code, Codex, OpenClaw, Gemini CLI, Antigravity ×2, GitHub Copilot, Cursor, Windsurf, Cline,
Continue, Roo, Qwen, iFlow, Goose, Crush, AiderDesk, OpenHands, Kiro, Kilo, Zed, Trae,
Junie, Droid, Augment, MCPJam, Zencoder, Vibe, CodeBuddy, Kode, Kimi, ZCode, universal).
`~/.agents/skills` is the highest-value single copy (read by Codex, OpenCode, Cursor, Cline,
Zed, Kilo, Droid, and others).
Config templates for agents with real config surfaces:
- [`configs/opencode.jsonc`](./configs/opencode.jsonc) — OpenCode skill **permissions**
(OpenCode has no skills-path config; discovery locations are fixed).
- [`configs/gemini-skills.json`](./configs/gemini-skills.json) — Gemini-family discovery
list (`~/.gemini/config/skills.json`); add a path pointing at any folder containing `deskui/`.
- [`configs/codex-marketplace.personal.json`](./configs/codex-marketplace.personal.json) —
Codex personal marketplace entry for the plugin-copy route.
Installer entry points: [`install/install.sh`](./install/install.sh) (bash, curl-able with an
`npx` fallback) and [`install/installer.js`](./install/installer.js) (node).
## Docs site
`docs/` is a zero-dependency static site: a neobrutalist landing page plus the skill and every
reference rendered to HTML. **Live:** https://fluxenitemc.github.io/deskui/ (GitHub Pages
serves the `docs/` folder). Open `docs/index.html` directly in a browser (no server needed),
or serve the folder over HTTP.
```bash
node docs/build.mjs # regenerate docs/skill.html + docs/references/*.html + docs/docs.html
npm run docs # same thing
```
`docs/index.html` and `docs/style.css` are hand-authored. The skill page, the eight reference
pages, and the docs index are **generated** from the markdown in `plugin/skills/deskui/` —
edit the sources, then rebuild.
## Repository maintenance
The version lives in exactly one place — `metadata.version` in
`plugin/skills/deskui/SKILL.md`:
```bash
node bin/deskui-skill.mjs sync # propagate the version to every manifest
node bin/deskui-skill.mjs pack # refresh openclaw/skills/deskui from the payload
node bin/deskui-skill.mjs check # validate manifests, skill roots, versions, wire-up
```
The same checks run in CI on every push (`.github/workflows/check.yml`), plus a docs-freshness
check that rebuilds the site and fails if the generated pages drift.
Codex plugin validation (when Codex's system skills are available):
```bash
python "$HOME/.codex/skills/.system/plugin-creator/scripts/validate_plugin.py" plugin
```
## npm
The repo is also an npm package (`deskui-skill`; the npm name is kept distinct from the
plugin id `deskui` to avoid registry collisions):
```bash
npm pack # inspect the tarball
npm publish --access public
npx deskui-skill install --agent claude-code --apply
```
`.npmignore` keeps the tarball to manifests, payload, installer, and docs.
## Notes & caveats
- Creating this repo configured nothing: `install`/`uninstall` are dry runs without
`--apply`, and `pack`/`sync`/`check` only touch files inside the repository.
- The skill's frontmatter `description` is ~615 characters; some ecosystems soft-recommend
shorter blurbs. It loads everywhere; trim your installed copy if a tool complains.
- Cursor/Grok/Qoder manifest shapes mirror the reference claude-mem layout; those products'
plugin ingestion may evolve — the plain-skil
... (truncated)
tools
Comments
Sign in to leave a comment