Agent skill · software engineering · aradotso
qclaw-openclaw-desktop
qclaw-openclaw-desktop — an agent skill for coding agents.
Why this skill is useful
Provides specific commands and workflows for managing OpenClaw models and integrations that the AI wouldn't reliably generate on its own.
What it needs
Requires node installed locally. About 7k tokens when loaded. Last updated 2026-07-09. 70 stars on the source repository.
What this skill does
bash git clone https://github.com/qiuzhi2046/Qclaw.git cd Qclaw npm install Start dev server (Electron + Vite hot reload) npm run dev Type check npm run typecheck Run tests npm test Build production app npm run build electron/ main/ # Main process: window, CLI calls, IPC handlers preload/ # Preload scripts (secure IPC bridge) src/ pages/ # React pages: wizard steps, Dashboard, Chat components/ # Shared UI components lib/ # Business logic: channel/provider registration shared/ # Config workflows, gateway diagnostics assets/ # Icons and static assets docs/ # Architecture docs, changelogs scripts/ # Build, signing, notarization, versioning, COS release build/ # App icons and packaging resources ┌─────────────────────────────────────────────┐ │ Qclaw │ │ │ │ Main Process (Node.js) ◄─IPC─► Renderer │ │ ┌──────────────────┐ (React) │ │ │ cli.ts │ │ │ │ OpenClaw CLI │ Wizard pages │ │ │ invocation │ Dashboard │ │ ├──────────────────┤ Chat UI │ │ │ File I/O │ │ │ │ Process mgmt │ │ │ │ System integration│ │ │ └────────┬─────────┘ │ │ │ │ │ ▼ │ │ OpenClaw CLI (~/.openclaw/) │ └─────────────────────────────────────────────┘ typescript import { contextBridge, ipcRenderer } from 'electron' contextBridge.exposeInMainWorld('electronAPI', { // Invoke main process handlers invoke: (channel: string, ...args: unknown[]) => ipcRenderer.invoke(channel, ...args), // Subscribe to events from main on: (channel: string, callback: (...args: unknown[]) => void) => { ipcRenderer.on(channel, (event, ...args) => callback(...args)) }, // Remove listeners removeAllListeners: (channel: string) => { ipcRenderer.removeAllListeners(channel) }, }) typescript import { ipcMain } from 'electron' import { runOpenClawCli } from './cli' // Handle CLI invocation from renderer ipcMain.handle('openclaw:start', async (event, config) => { try { const result = await runOpenClawCli(['start', '--config', config]) return { success: true, output: result } } catch (error) { return { success: false, error: (error as Er …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills aradotso/qclaw-openclaw-desktop