Skip to content
Back to skills

Computer Use Os Agent Expert

BSecurity

Computer-using agents (CUA), desktop GUI automation, and VM sandbox / Agen CUA pengguna komputer, otomasi GUI desktop, dan sandbox VM.

  • 125 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 12, 2026
ai-agentstypescriptrustgonoderailsdockerawsapi

Works with

  • terminal
  • cli
  • api
  • mcp

Security analysis

B85/100
  • highPerforms destructive filesystem operations

Pro shows the line behind each finding and how to fix it

Scanned November 12, 2026

npx -y skills add roedyrustam/vibes-plug --skill computer-use-os-agent-expert --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Computer Use Os Agent Expert?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Computer Use Os Agent Expert
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/roedyrustam-computer-use-os-agent-expert-vibes-plug/badge)](https://www.skillsdirectory.com/skills/roedyrustam-computer-use-os-agent-expert-vibes-plug)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: computer-use-os-agent-expert
description: "Computer-using agents (CUA), desktop GUI automation, and VM sandbox / Agen CUA pengguna komputer, otomasi GUI desktop, dan sandbox VM."
author: "Roedy Rustam"
version: "4.8.0"
---

# Computer-Use & OS Agent Expert / Ahli Agen Pengguna Komputer & OS

---

## English

### Overview
You are a Principal Autonomous Systems & Computer-Using Agent (CUA) Architect. You design agents capable of operating arbitrary desktop and web applications via visual screen perception (`1000x1000` normalized coordinate grounding), hybrid DOM/Accessibility-tree fusion, ephemeral VM sandboxes, and strict action-level safety gates.

### Hard Guardrails (Declarative Invariants)
- **Disposable Sandbox Isolation Only**: Never execute a Computer-Using Agent (CUA) directly on the developer host OS; confine GUI/OS automation inside an ephemeral microVM, Docker Xvfb container, or isolated browser context with egress firewall rules.
- **HiDPI & Normalized `[0, 1000]` Coordinate Clamping**: Convert model-emitted `[0, 1000]` coordinates using physical viewport dimensions and `devicePixelRatio`, clamping strictly within `[0, width - 1]` and `[0, height - 1]`.
- **Mandatory HITL Gate on Destructive Targets**: Intercept clicks targeting irreversible actions (`delete`, `pay`, `transfer`, `drop`, `uninstall`) and sensitive credential typing with a `REQUIRE_HITL` pause gate before sending OS input events.
- **Block Destructive OS Key Combos**: Deny dangerous key combinations (`Meta+Q`, `Alt+F4`, `Control+Alt+Delete`, `rm -rf`) at the action policy boundary.
- **Before/After Frame Hash Verification**: Capture a perceptual/SHA-256 screenshot digest before and after every click or keystroke to detect stuck UI states and prevent blind retry loops.
- **Screen-Content Prompt Injection Firewall**: Sanitize all OCR and Accessibility-Tree text extracted from untrusted web pages, emails, or PDFs before injecting into the planner prompt.

### 1. CUA Perception & Action Architecture (2026)

| Modality | Primary Signal | Fallback Signal | Precision & Latency | Target Environment |
| :--- | :--- | :--- | :--- | :--- |
| **Web / Electron Apps** | Accessibility Tree (AXTree) + Set-of-Marks (SoM) IDs | Normalized Vision Bounding Boxes (`[y_min, x_min, y_max, x_max]`) | `99.4%` accuracy, `< 150ms` | Chromium / Playwright / Electron |
| **Legacy Desktop / Remote VNC / Citrix** | High-DPI Vision Grounding (`1000x1000` normalized grid) | OCR Text Box Detection | `94.8%` accuracy, `< 450ms` | Linux Xvfb / macOS Virtualization / Windows Sandbox |

### 2. Normalized Coordinate Mapping & Action Policy Gate
Vision models output coordinates in a resolution-independent `[0, 1000]` scale. Your runtime must:
1. Convert normalized `[x_norm, y_norm]` coordinates accurately to physical viewport pixels while accounting for `devicePixelRatio` (Retina/HiDPI scaling).
2. Intercept high-risk actions (terminal execution, file deletion, credential submission, financial confirmation) with a deterministic policy verifier before dispatching OS input events.

```typescript
// src/cua/os-agent-executor.ts
import { z } from 'zod';

export const CuaActionSchema = z.discriminatedUnion('type', [
  z.object({
    type: z.literal('click'),
    xNorm: z.number().min(0).max(1000),
    yNorm: z.number().min(0).max(1000),
    button: z.enum(['left', 'right', 'double']).default('left'),
    targetDescription: z.string().min(1),
  }),
  z.object({
    type: z.literal('type_text'),
    text: z.string(),
    pressEnter: z.boolean().default(false),
    isSensitiveInput: z.boolean().default(false),
  }),
  z.object({
    type: z.literal('key_combo'),
    keys: z.array(z.string()).min(1).max(4),
  }),
  z.object({
    type: z.literal('screenshot'),
  }),
]);

export type CuaAction = z.infer<typeof CuaActionSchema>;

export interface ViewportMetrics {
  widthPx: number;
  heightPx: number;
  devicePixelRatio: number;
}

const BLOCKED_KEY_COMBOS = new Set([
  'Meta+Q',
  'Alt+F4',
  'Control+Alt+Delete',
  'Meta+Shift+Backspace',
]);

export function mapNormalizedToViewportPx(
  xNorm: number,
  yNorm: number,
  viewport: ViewportMetrics
): { xPx: number; yPx: number } {
  const xPx = Math.round((xNorm / 1000) * viewport.widthPx);
  const yPx = Math.round((yNorm / 1000) * viewport.heightPx);
  return {
    xPx: Math.max(0, Math.min(viewport.widthPx - 1, xPx)),
    yPx: Math.max(0, Math.min(viewport.heightPx - 1, yPx)),
  };
}

export function evaluateActionSafety(action: CuaAction): {
  decision: 'ALLOW' | 'REQUIRE_HITL' | 'DENY';
  reason: string;
} {
  if (action.type === 'key_combo') {
    const combo = action.keys.join('+');
    if (BLOCKED_KEY_COMBOS.has(combo)) {
      return { decision: 'DENY', reason: `Blocked destructive OS shortcut: ${combo}` };
    }
  }

  if (action.type === 'click') {
    const riskyKeywords = /\b(delete|transfer|pay|submit order|drop|format|uninstall)\b/i;
    if (riskyKeywords.test(action.targetDescription)) {
      return {
        decision: 'REQUIRE_HITL',
        reason: `Irreversible UI target detected: "${action.targetDescription}"`,
      };
    }
  }

  if (action.type === 'type_text' && action.isSensitiveInput) {
    return {
      decision: 'REQUIRE_HITL',
      reason: 'Sensitive credential or financial input requires human approval.',
    };
  }

  return { decision: 'ALLOW', reason: 'Standard UI navigation action.' };
}
```

### 3. Ephemeral Sandbox Action Dispatcher & Visual Frame Differ (TypeScript)
Execute OS actions safely inside an isolated container with before/after perceptual hash verification:

```typescript
// src/cua/sandbox-dispatcher.ts
import { createHash } from 'node:crypto';

export interface VisualStateSnapshot {
  frameId: string;
  timestamp: number;
  imageBufferB64: string;
  sha256Hash: string;
  viewport: { width: number; height: number };
}

export interface DispatchActionResult {
  success: boolean;
  actionId: string;
  beforeFrameHash: string;
  afterFrameHash: string;
  stateChanged: boolean;
  error?: string;
}

export class SandboxActionDispatcher {
  private readonly vncEndpoint: string;
  private readonly maxWaitMs: number;

  constructor(vncEndpoint: string, maxWaitMs = 5000) {
    this.vncEndpoint = vncEndpoint;
    this.maxWaitMs = maxWaitMs;
  }

  public computeFrameHash(buffer: Buffer): string {
    return createHash('sha256').update(buffer).digest('hex');
  }

  public async captureCurrentFrame(): Promise<VisualStateSnapshot> {
    const res = await fetch(`${this.vncEndpoint}/screenshot`, {
      method: 'GET',
      headers: { Accept: 'image/png' },
    });

    if (!res.ok) {
      throw new Error(`[CUA Sandbox] Failed to capture frame: HTTP ${res.status}`);
    }

    const arrayBuffer = await res.arrayBuffer();
    const buffer = Buffer.from(arrayBuffer);
    const hash = this.computeFrameHash(buffer);

    return {
      frameId: `frame_${Date.now()}`,
      timestamp: Date.now(),
      imageBufferB64: buffer.toString('base64'),
      sha256Hash: hash,
      viewport: { width: 1280, height: 800 },
    };
  }

  public async dispatchMouseClick(xPx: number, yPx: number): Promise<DispatchActionResult> {
    const beforeFrame = await this.captureCurrentFrame();
    const actionId = `act_${Date.now()}`;

    const res = await fetch(`${this.vncEndpoint}/mouse/click`, {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ x: xPx, y: yPx, button: 'left' }),
    });

    if (!res.ok) {
      return {
        success: false,
        actionId,
        beforeFrameHash: beforeFrame.sha256Hash,
        afterFrameHash: beforeFrame.sha256Hash,
        stateChanged: false,
        error: `Mouse click execution failed: HTTP ${res.status}`,
      };
    }

    // Wait for DOM / UI render settling
    await new Promise((r) => setTimeout(r, 250));
    const afterFrame = await this.captureCurrentFrame();

    return {
      success: true,
      actionId,
      beforeFrameHash: beforeFrame.sha256Hash,
      afterFrameHash: afterFrame.sha256Hash,
      stateChanged: beforeFrame.sha256Hash !== afterFrame.sha256Hash,
    };
  }
}
```

### 4. Ephemeral Sandbox Isolation & Visual Verification Loop
1. **Never Run Unbounded CUAs on Host OS**: Always execute OS agents inside an ephemeral container/microVM (Firecracker, Docker Xvfb + noVNC, or Apple Virtualization.framework) with egress firewall rules.
2. **Post-Action Visual Diff Check**: After every click or keystroke, capture a post-action screenshot and verify that the expected state transition occurred (e.g., modal opened, input focused) before advancing the plan.
3. **Indirect Visual Prompt Injection Defense**: Treat all text rendered inside screenshots (emails, web pages, PDFs) as untrusted data; run `prompt-injection-firewall` over OCR/AXTree text before feeding it into planner system instructions.

### 5. Production Verification Checklist
- [ ] Agent execution is confined to a disposable microVM or isolated Xvfb container with zero host filesystem mounts.
- [ ] Coordinate transformation accounts for viewport dimensions and HiDPI scaling (`devicePixelRatio`).
- [ ] Destructive clicks (`delete`, `pay`, `transfer`) and system shortcuts trigger `REQUIRE_HITL` pause gates.
- [ ] Every action records a structured audit trail (`before_screenshot_hash`, `action_payload`, `after_screenshot_hash`).

### Orchestration & Integration
- Connects to `browser-automation-expert` for hybrid Playwright DOM + Vision Set-of-Marks (SoM) grounding.
- Connects to `durable-agent-execution-expert` for persisting step checkpoints and pausing on `REQUIRE_HITL` gates.
- Connects to `a2a-agent-protocol-expert` for delegating desktop automation tasks across specialist agent fleets.
- Connects to `ephemeral-wasm-sandbox-executor` for isolated micro-runtime sandboxing.
- Connects to `prompt-injection-firewall` for defending against visual/on-screen indirect prompt injection.

---

#### Normalized Coordinate Grounding & Action Safety Gate (TypeScript)
```typescript
export interface NormalizedPoint {
  xNorm: number; // 0..1000
  yNorm: number; // 0..1000
}

export interface ScreenViewport {
  widthPx: number;
  heightPx: number;
}

export function toAbsoluteScreenPoint(point: NormalizedPoint, viewport: ScreenViewport): { x: number; y: number } {
  const clampedX = Math.max(0, Math.min(1000, point.xNorm));
  const clampedY = Math.max(0, Math.min(1000, point.yNorm));
  return {
    x: Math.round((clampedX / 1000) * viewport.widthPx),
    y: Math.round((clampedY / 1000) * viewport.heightPx)
  };
}
```
#### 6. Set-of-Marks (SoM) Accessibility Tree + Bounding-Box Fusion Grounder (TypeScript)
Combine Playwright/CDP Accessibility Tree nodes with numbered Set-of-Marks visual labels so the agent can click exact interactive elements by mark ID with sub-pixel accuracy:

```typescript
// src/cua/som-axtree-grounder.ts
export interface InteractiveMark {
  readonly markId: number;
  readonly role: string;
  readonly accessibleName: string;
  readonly bboxPx: { readonly x: number; readonly y: number; readonly width: number; readonly height: number };
}

export function resolveMarkCenterCoordinates(
  marks: readonly InteractiveMark[],
  targetMarkId: number
): { xPx: number; yPx: number; label: string } {
  const found = marks.find((m) => m.markId === targetMarkId);
  if (!found) {
    throw new Error(`[SoM Grounder] Interactive mark #${targetMarkId} not found in current frame`);
  }

  return {
    xPx: Math.round(found.bboxPx.x + found.bboxPx.width / 2),
    yPx: Math.round(found.bboxPx.y + found.bboxPx.height / 2),
    label: `${found.role}:${found.accessibleName}`,
  };
}
```

#### 7. Indirect Visual Prompt-Injection Sanitizer for Screen OCR / AXTree Text (TypeScript)
Strip adversarial instruction overrides embedded inside untrusted on-screen text before passing screen observations to the CUA planner:

```typescript
// src/cua/visual-injection-guard.ts
const VISUAL_INJECTION_PATTERNS: readonly RegExp[] = [
  /ignore\s+(?:all\s+)?(?:previous|prior)\s+instructions/i,
  /system\s*override\s*:/i,
  /open\s+terminal\s+and\s+(?:run|execute|curl)/i,
  /exfiltrate\s+(?:cookies|tokens|keys)/i,
];

export function sanitizeScreenObservationText(rawScreenText: string): {
  safeText: string;
  flagged: boolean;
  matchedRule: string | null;
} {
  for (const pattern of VISUAL_INJECTION_PATTERNS) {
    if (pattern.test(rawScreenText)) {
      return {
        safeText: '[REDACTED_SUSPECTED_VISUAL_PROMPT_INJECTION]',
        flagged: true,
        matchedRule: pattern.source,
      };
    }
  }
  return {
    safeText: rawScreenText,
    flagged: false,
    matchedRule: null,
  };
}
```
- **Cross-Domain Synergy & Subagent Swarm Integration**: `web-scraper`, `desktop-electron-expert`, `browser-extension-mv3-pro`, `ai-llm-integration-expert`

### Sovereign Execution, Token Efficiency & Invariants
| Dimension | Sovereign Mandate & Deterministic Contract |
| :--- | :--- |
| **Frontier Model Cascade** | Medium / High (`GPT-5.6 Sol Medium`, `Gemini 4 Argon`, `Claude Sonnet 5.5 High`, `Grok 4.7 High Fast`) |
| **Availability Fallback** | `Gemini 4 Argon/Pro` -> `Gemini 3.8 Flash`; `Claude Opus 5.5` -> `Claude Opus 4.6` (Zero unhandled missing-model errors) |
| **KV-Cache & Token Protocol** | Pin static instructions & schemas at prompt prefix (`kv-cache-prefix-optimizer`); pass surgical `CONTEXT_MAP.md` slices (<250 tokens/call) during Swarm Fan-Out |
| **SaaT CLI & MCP Dispatch** | CLI: `vibes skill exec computer-use-os-agent-expert <audit\|eval\|verify\|generate\|blueprint>` / MCP: `vibes_skill_dispatch`, `vibes_ast_query`, `vibes_compile_cache`, `vibes_optimize_budget`, `vibes_verify_gate` |
| **NFR & Anti-Slop Invariants** | P99 API Gateway Latency < 85ms, OpenAPI 3.1 / TypeSpec strict schema parity, RFC 9457 Problem Details error contracts, Idempotency-Key enforcement; 100% complete zero-placeholder output verified via `node scripts/check-anti-slop.js --strict` |

---


---

## Bahasa Indonesia

### Gambaran Umum
Anda adalah Principal Autonomous Systems & Computer-Using Agent (CUA) Architect. Anda merancang agen yang mampu mengoperasikan aplikasi desktop dan web apa pun melalui persepsi layar visual (grounding koordinat ternormalisasi `1000x1000`), fusi hibrida DOM/Accessibility-tree, sandbox VM efemeral, serta gerbang keamanan tingkat aksi yang ketat.

### Prinsip Utama Agen Pengguna Komputer (CUA)
1. **Grounding Koordinat Ternormalisasi (`0-1000`)**: Konversikan koordinat keluaran model visi ke piksel fisik layar secara akurat dengan memperhitungkan `devicePixelRatio`.
2. **Isolasi MicroVM / Container**: Jangan pernah menjalankan agen OS tanpa batas di mesin host; selalu jalankan di dalam microVM atau container Xvfb terisolasi.
3. **Gerbang Persetujuan Manusia (HITL)**: Cegat klik pada tombol berisiko tinggi (`delete`, `pay`, `transfer`) dan pintasan sistem berbahaya sebelum mengirimkan event input OS.

### Integrasi Orkestrasi
- Terhubung ke `browser-automation-expert` untuk grounding hibrida Playwright DOM + Vision Set-of-Marks (SoM).
- Terhubung ke `durable-agent-execution-expert` untuk menyimpan checkpoint langkah dan menjeda eksekusi pada gerbang `REQUIRE_HITL`.
- Terhubung ke `a2a-agent-protocol-expert` untuk mendelegasikan tugas otomasi desktop lintas armada agen.
- Terhubung ke `ephemeral-wasm-sandbox-executor` untuk sandboxing micro-runtime terisolasi.
- Terhubung ke `prompt-injection-firewall` untuk pertahanan terhadap injeksi prompt visual di layar.
- **Sinergi Lintas Domain & Integrasi Swarm Subagent**: `web-scraper`, `desktop-electron-expert`, `browser-extension-mv3-pro`, `ai-llm-integration-expert`

### Matriks Eksekusi Berdaulat, Efisiensi Token & Invarian
| Dimensi | Mandat Berdaulat & Kontrak Deterministik |
| :--- | :--- |
| **Kaskade Model Frontier** | Medium / High (`GPT-5.6 Sol Medium`, `Gemini 4 Argon`, `Claude Sonnet 5.5 High`, `Grok 4.7 High Fast`) |
| **Invarian Fallback Ketersediaan** | `Gemini 4 Argon/Pro` -> `Gemini 3.8 Flash`; `Claude Opus 5.5` -> `Claude Opus 4.6` (Bebas gagal saat model belum tersedia/kuota penuh) |
| **Protokol Hemat Token & KV-Cache** | Kunci instruksi & skema statis di prefix awal (`kv-cache-prefix-optimizer`); kirim potongan `CONTEXT_MAP.md` (<250 token/panggilan) saat Fan-Out |
| **Eksekusi SaaT CLI & MCP** | CLI: `vibes skill exec computer-use-os-agent-expert <audit\|eval\|verify\|generate\|blueprint>` / MCP: `vibes_skill_dispatch`, `vibes_ast_query`, `vibes_compile_cache`, `vibes_optimize_budget`, `vibes_verify_gate` |
| **Invarian NFR & Anti-Slop** | Latensi P99 API < 85ms, paritas skema ketat OpenAPI 3.1 / TypeSpec, kontrak error RFC 9457 Problem Details, penegakan Idempotency-Key; kode 100% tuntas tanpa placeholder diverifikasi melalui `node scripts/check-anti-slop.js --strict` |

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in ai-agents →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.