← Back to Plugins
Tools

Deskui

FluxeniteMC By FluxeniteMC 👁 40 views ▲ 0 votes

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.

Homepage GitHub

Install

openclaw plugins install ./openclaw

README

# deskui

[![check](https://github.com/FluxeniteMC/deskui/actions/workflows/check.yml/badge.svg)](https://github.com/FluxeniteMC/deskui/actions/workflows/check.yml)
[![License: MIT](https://img.shields.io/badge/license-MIT-23a094?style=flat-square)](LICENSE)
[![Version](https://img.shields.io/badge/version-1.3.0-black?style=flat-square)](CHANGELOG.md)
[![Agents](https://img.shields.io/badge/agents-34-ff90e8?style=flat-square)](agents.json)
[![Dependencies](https://img.shields.io/badge/dependencies-0-7eb8ff?style=flat-square)](bin/deskui-skill.mjs)
[![Docs: live](https://img.shields.io/badge/docs-live%20site-ffd23f?style=flat-square)](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

Loading comments...