본문으로 건너뛰기
cccskills
무료GitHub에 공개한국어 소개

ComputerUse

Mac 작업을 화면 구조·접근성 정보·CLI·API로 처리할 수 있는지 판단해 적절한 방식으로 보냅니다. 픽셀만으로 조작하는 경우 앱과 단계, 시간을 제한하고 별도 검증기로 결과를 확인합니다.

원문원문 설명 보기

Front door for driving this Mac: anything with a DOM, AX, CLI, or API handle routes to Interceptor; pixel-only GUI work goes to a vision agent, OpenAI Astra via codex exec or a tool-less Claude acting through Interceptor's bridge, picked per task class by a measured bake-off, under a deny list, step caps, and a read-back that decides pass/fail. USE WHEN computer use, drive the computer, control the mac, operate this app for me, do it in the GUI, pixel-only app, no API for this, canvas UI, computer-use bake-off, Claude vs OpenAI computer use. NOT FOR DOM/AX handles or web verification (Interceptor), scraping (a scraping skill, BrightData).

danielmiessler/LifeOS스타 19,635(GitHub 19,635 + cccskills 0)
연동 도구OpenAI

실행 점수 미검증

설치 방법 보기

이럴 때 유용합니다

  • 화면 조작만 가능한 앱을 다룰 때
  • 캔버스 화면에서 편집하거나 만들 때
  • GUI 작업 결과를 별도 방식으로 확인할 때
  • 작업에 맞는 Mac 조작 방식을 고를 때

한국어 소개

할 수 있는 일

ComputerUse는 Mac 작업에 사용할 수 있는 조작 방식에 따라 요청을 분류합니다. 화면 구조, 접근성 정보, CLI 또는 API로 처리할 수 있는 작업은 Interceptor에 맡깁니다. 픽셀만 보고 조작해야 하는 작업에는 대상 앱별 비교 결과를 바탕으로 시각 에이전트를 선택합니다. 시각 에이전트가 접근할 수 있는 앱을 허용 목록으로 제한하고, 조작 횟수와 시간에도 상한을 둡니다. 결과는 에이전트의 자체 보고가 아니라 미리 정한 검증 방식으로 확인합니다.

이럴 때 유용합니다

전용 API나 화면 구조로 조작할 수 없어 GUI만 지원하는 앱이나 캔버스를 다룰 때 사용할 수 있습니다. Mac 작업에 어떤 조작 방식을 쓸지 정하기 어렵거나 GUI 조작 뒤 요청한 화면 상태가 되었는지 확인하고 싶을 때도 유용합니다.

사용 예시

  • “Shortcuts.app에서 입력을 그대로 반환하는 단축어를 만들어 주세요.”
  • “CMS 페이지에서 게시 버튼을 눌러 주세요.”
  • “배포 결과가 올바르게 표시되는지 확인해 주세요.”

주의 사항

설정 파일이 없거나 검증 방식을 지정할 수 없으면 실행되지 않습니다. 시각 에이전트를 사용하려면 Codex 데스크톱 앱 또는 설정에 맞는 환경이 필요합니다. 전송, 구매, 삭제, 게시 작업은 명시적으로 요청된 경우에만 허용됩니다.

이 소개문은 공개된 SKILL.md를 바탕으로 AI(OpenAI Codex)가 작성했습니다. 정확한 사양은 아래 원문을 확인하세요.

문서 점검

AI가 SKILL.md의 내용에서 주의가 필요한 작업과 도입 전제를 확인했습니다. 점수는 실제로 실행한 결과(실행 검증)만으로 매깁니다.

안전성전송·삭제·명령 실행 등을 명시하고 있는가
A양호필수 설정이 없으면 거부하며, 전송·구매·삭제·게시에는 명시적 요청이 필요합니다.
도입의 용이성필요한 도구나 API 키가 적고 적혀 있는가
B일부 부족설정, Codex 앱, 플러그인과 권한이 필요하며 요구 사항은 일부만 설명됩니다.

점수에는 넣지 않았습니다. 2026년 10월 28일 기준으로 AI(OpenAI Codex)가 판정했습니다. 참고용이므로 설치 전에 원문도 확인해 주세요.

평가가 다르다고 생각되면 재검토를 요청하기

어느 항목이 왜 다르다고 생각하는지 적어 주세요. 로그인은 필요 없습니다. SKILL.md와 대조해 평가를 다시 만들고 이곳에 반영합니다.

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

포함된 파일(14)

  • SKILL.md12.4 KB
  • Config.example.md1021 B
  • Instructions.md1.0 KB
  • Intents/BakeOff.md1.7 KB
  • Intents/Drive.md2.2 KB
  • Intents/Probe.md1.3 KB
  • References/VisionLegs.md1.4 KB
  • Setup.md4.2 KB
  • Tools/BakeOff.ts10.6 KB
  • Tools/ClaudeLeg.ts13.5 KB
  • Tools/Probe.ts2.8 KB
  • Tools/Route.ts3.9 KB
  • Tools/Run.ts35.1 KB
  • Tools/WindowBounds.ts4.1 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

ComputerUse

Contents: Ideal State · Intent Routing · The routing table · The supervised run · Data & Config · Gotchas · Examples

One skill routes every computer-use task by a rule you can read, then supervises the run so the vision leg never grades itself, never sees what it must not, and never runs away.

Ideal State

  • Every task is routed by the readable rule before anything runs: verification and anything with a DOM, AX, CLI or API handle go to Interceptor, and only pixel-only work goes to the measured vision pick.
  • A vision run's verdict comes only from its declared verifier, never from the agent's own report, and no run starts without one.
  • The vision leg never sees a running credential app, a visible communications app or a denied host, never acts outside its allowlisted app, and stops at its step and wall-clock caps.
  • Send, buy, delete, publish or confirm happens only when the principal named that exact action, and every refusal is reported rather than worked around.

Intent Routing

IntentTriggerFile
Drive"do this in the GUI", "drive <app>", "computer use for <task>"Intents/Drive.md
Probe"is Astra computer use working", "probe the vision leg"Intents/Probe.md
BakeOff"bake-off", "which vision agent is better", "Claude vs OpenAI computer use", "re-score the vision legs"Intents/BakeOff.md
FileRead when
Instructions.mdchanging what the Astra leg is told; the runner passes it as model_instructions_file on every spawn
Config.example.mdsetting up the deny lists, caps and Focus shortcuts in the USER Config.md
Tests/changing routing, deny rules, caps or spawn flags (fixtures under Tests/fixtures/ are synthetic; source tree only, not in the release payload)
Setup.mdfirst-time setup: the Config.md fields, the Codex app and plugin, permissions, and a dry-run proof
References/VisionLegs.mdchanging or debugging how the Astra or Claude leg is spawned and confined: codex flags, the Claude leg step loop, its tool restrictions, env drops, pixel-to-point mapping

The routing table

IntentHandle?BackendWhy
verify / evidenceanyInterceptor, alwaysConstitutional №2: Interceptor is the only sanctioned evidence path. No failure count or backend state changes this row.
actyes (DOM, AX element, CLI, API)InterceptorDeterministic is cheaper, faster, and auditable.
actnothe vision pick for the target app: Astra or ClaudePixel-only authoring, canvas UIs, unscripted cross-app GUI flows.
actyes, but 2 Interceptor failures on this stepthe vision pick for that stepBounded escalation, logged once. Never the reverse direction.
anyInterceptor preflight failedrefusedA broken evidence path is "tool broken", never "no handle".
act, vision—Claude only when vision_pick names it for that app (or as default)The pick is written from Tools/BakeOff.ts results, never by hand-waving. Unpicked or unmeasured classes stay Astra.

Code: Tools/Route.ts (pure, tested). Runner: Tools/Run.ts.

The supervised run

Both vision legs run under the same supervise() in Tools/Run.ts (--backend astra|claude; without it, the vision_pick for the target app). The deny scan, watcher, caps, headless refusal and verifier below are shared.

  • Refuses on a headless channel (exit 3), on a failed Interceptor preflight (exit 4), without a declared verifier (exit 5), and when the deny list fires (exit 2, naming the app or host).
  • Deny list (your Config.md): credential-class apps may not be running; communications apps may not be visible (hidden with Cmd+H is fine); browser tabs on denied hosts block. Enforced before spawn and by a watcher every poll interval during the run.
  • Per-run app allowlist (default: the target app alone); the watcher kills the child when the frontmost app leaves it.
  • Step cap and wall clock, enforced by the runner. Defaults 60 steps / 10 minutes; override per run. A step is one completed computer-use tool call on the Astra leg (one call can bundle several clicks, so the wall clock is the hard bound) and one executed action on the Claude leg.
  • A missing Config.md is refused (exit 2), never run with empty deny lists.
  • Optional Focus (Do Not Disturb) on/off Shortcuts wrap the run so banners cannot enter a frame.
  • Every exit path, aborts included, runs the declared verifier. The run record's verdict is written only from the verifier's exit code; the leg's own report is stored as text and never counts.
  • Voice line before the first action and at finish. No approval gate for the task you named; send, buy, delete, publish are excluded by the leg's instructions (Instructions.md for Astra, the step prompt in Tools/ClaudeLeg.ts for Claude) and stop the run.

Data & Config

User data lives outside the skill: LIFEOS/USER/CUSTOMIZATIONS/SKILLS/ComputerUse/Config.md (deny lists, caps, Focus shortcut names) and .../runs/ (run records). Template: Config.example.md. The public skill ships no app names, hosts, or paths from any installation. First-time setup (accounts, keys, config, a proof it works) is in Setup.md.

Gotchas

  • bun:ffi corrupts CoreFoundation tagged pointers returned as ptr (2026-10-06). Small CFNumbers and CFStrings on Apple Silicon are tagged pointers with the high bit set; a ptr return is a double and loses bits, and the next CF call segfaults. WindowBounds.ts declares every CF value return and argument as u64.
  • A locked Mac blocks input and Apple Events but not screenshots or window lists (2026-10-06). Frontmost reads loginwindow; macos script run and macos vision time out; clicks post without effect. Screenshots and CoreGraphics window frames still work, so a dry check passes while a live run cannot. Check interceptor macos frontmost before any live mission.
  • The Astra leg needs the Codex desktop app, not just codex-cli (2026-09-07). codex features list says computer_use stable true, but the tool (mcp__cua_repl.js) comes from the app's bundled computer-use@openai-bundled plugin: install the app (codex app), then codex plugin add computer-use@openai-bundled; after that headless codex exec mounts the tool. Without the app the CLI, the interactive TUI, and every config table all show no computer-use tool. Tools/Probe.ts is the check after any codex or app upgrade.
  • codex sends the user's global ~/.codex/AGENTS.md to the model on every spawn (2026-09-07, quoted back verbatim by the model), and neither model_instructions_file nor project_doc_max_bytes=0 stops it. Hooks (~/.codex/hooks.json), memories, and ~/.codex/skills ride along the same way. The runner therefore spawns codex with CODEX_HOME pointed at its own isolated home (ensureCodexHome: links to auth, the plugin cache, and the computer-use client; a minimal config; nothing else), and an invariant refuses a home that has grown an AGENTS.md, hooks, or a user skill. Probe after any codex upgrade: ask the model to quote anything mentioning your system by name; the answer must be NONE. Before the fix, a probe answered as the DA: Run.ts passes features.hooks=false and overrides model_instructions_file with Instructions.md on every spawn (a spawn without that override is not a ComputerUse run), both asserted by Tests/Spawn.test.ts.
  • Per-app access is a codex elicitation that headless mode auto-denies. First use of an app returns "Computer Use was not approved to use X". Grant it once in an interactive codex session (choose "Always allow"; the store is not a file I could find, but it persists across processes), then headless runs pass. Each new target app needs this once.
  • The service drives apps in the background and never brings them frontmost. Good: the principal's keystrokes never land in Astra's window. Consequence: an allowlist rule that waits for the target to become frontmost kills every run; the watcher arms on first entry, only once the target has been front, and not arming is never an abort. At spawn the front app is whatever the principal was using, so live runs died at spawn before the fix. grace_seconds (default 20) is still read from Config.md, but the watcher no longer waits on it (Run.ts arming comment, observed 2026-09-07).
  • cua.getApp times out (-10005 timeoutReached) when the target app has zero windows. Give the target a window before the run (open a file into it); a windowless TextEdit process also had to be quit and relaunched.
  • codex's approvals_reviewer = "auto_review" reviews every cua action and can veto one as "unacceptable risk", including a corrective click. A second safety layer worth keeping; write tasks so the first attempt is right (TextEdit: Cmd+Shift+G in the Save dialog, or the typed path becomes an iCloud filename).
  • Verifiers share the UI session and can hang. shortcuts run blocks forever while the Mac is locked (ioreg -n Root -d1 -a → CGSSessionScreenIsLocked), so the runner caps every verifier at 120s and counts a timeout as fail. shortcuts view prints nothing for any shortcut on this OS; prove a shortcut by running it with a nonce input.
  • open <signed .shortcut> produced no import dialog anywhere Interceptor could see (2026-09-05): Shortcuts' AX tree reads empty and macos vision timed out on TCC. Do not assume the "Add Shortcut" click path works on every machine; verify with shortcuts list after import. The one "Add Shortcut" click is bridge-routed Interceptor (interceptor macos find "Add Shortcut" --app Shortcuts, then act), never osascript.
  • bun test from the repo root walks the whole tree and can fail with EMFILE on the preload; run this skill's tests from its own directory: cd skills/ComputerUse && bun test Tests/ (source tree only; tests are not in the release payload). The ISA's Test Strategy rows do exactly that.
  • interceptor macos inspect is the visibility source: isHidden per app. interceptor macos windows lists AX windows even for hidden apps, so it cannot tell hidden from visible. A window on a second display has a negative y; it is still visible.
  • ~/Library/DoNotDisturb/ is TCC-protected; you cannot read Focus state from bash. Assert Focus through a Get Current Focus Shortcut, never the DB.
  • A frame can reach the vendor in the interval before the watcher's kill lands. The deny list bounds exposure; it does not eliminate it. Credential apps must not be running for exactly this reason.

Examples

Example 1: pixel-only task

User: "Build a shortcut in Shortcuts.app that echoes its input, call it CU Probe Echo"
→ Route: act, no handle → the vision pick for Shortcuts (Astra). Allowlist: Shortcuts. Verifier: `shortcuts run "CU Probe Echo" --input-path /tmp/in.txt | rg -q ping`.
→ Deny scan passes, Focus on, voice line, codex runs, watcher polls, verifier runs, record written, Focus off, voice line.
→ "Done: verifier passed (exit 0). Record: runs/2026-09-05T….json"

Example 2: task with a handle

User: "Click the Publish button on the CMS page"
→ Route: act, has handle (DOM) → Interceptor. Astra is never spawned.

Example 3: verification

User: "Verify the deploy looks right"
→ Route: verify → Interceptor, regardless of anything else.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

AnnualReports

무료요약 있음

여러 업체와 공공기관의 사이버 보안 보고서를 검색하고 가져와 위협, 랜섬웨어, 침해 통계 등의 추세를 비교합니다. 분석에는 출처별 업체, 연도, 보고서를 표시하고 자료 간 차이도 따로 다룹니다.

  • 분류별 위협 보고서를 찾을 때
  • 특정 업체의 보고서를 가져올 때
  • 여러 업체의 랜섬웨어 동향을 비교할 때
danielmiessler/LifeOS2만2026년 10월 28일 업데이트

ApertureOscillation

무료요약 있음

기능이나 구성 요소 자체의 설계 요구와 시스템 전체의 목표를 세 단계로 비교합니다. 설계상의 충돌과 적절한 구현 범위를 정리하고, 제안한 설계가 전체 방향과 맞는지 평가합니다.

  • 서비스나 라이브러리를 분리할지 판단하기
  • 기능 요구와 제품 방향 비교하기
  • 새 구성 요소와 기존 시스템의 정합성 확인하기
danielmiessler/LifeOS2만2026년 10월 28일 업데이트

Aphorisms

무료요약 있음

글의 주제에 맞는 격언과 인용문을 찾아 저자와 선정 이유를 함께 제안합니다. 출처가 있는 인용문을 추가하고, 사상가의 말을 주제별로 조사하며, 사용 기록을 관리해 같은 인용문을 반복하지 않도록 돕습니다.

  • 뉴스레터에 어울리는 인용문 찾기
  • 출처와 함께 중복 없이 인용문 저장하기
  • 주제별로 사상가의 말 조사하기
danielmiessler/LifeOS2만2026년 10월 28일 업데이트

Art

무료요약 있음

블로그 삽화, 기술 도표, 비교 그림, 만화, 아이콘 등을 용도에 맞는 절차로 제작합니다. 구도와 색상, 이미지 모델을 정하고 검토용 이미지를 출력합니다.

  • 블로그 제목 이미지를 만들 때
  • 시스템 구조를 그림으로 설명할 때
  • 비교나 연대표를 시각화할 때
danielmiessler/LifeOS2만2026년 10월 28일 업데이트

ArtDirection

무료요약 있음

브리프와 제작 기준에 따라 이미지, 영상, 슬라이드, 사이트 화면 캡처의 시각 품질을 평가합니다. 두 비전 심사자가 점수와 결함 우선순위를 제시하고, 정해진 횟수 안에서 수정을 돕습니다. 평가를 통과한 결과물만 전달할 수 있으며, 사람의 점수와 의견은 별도 기록해 심사 보정에 활용합니다.

  • 이미지 수정 항목의 우선순위 정리
  • 기준에 따라 영상이나 슬라이드 평가
  • 공개 전 시각 품질 점검
danielmiessler/LifeOS2만2026년 10월 28일 업데이트

ArXiv

무료요약 있음

주제, 연구 분야, 논문 ID로 arXiv 논문을 찾고 제목, 저자, 초록, 링크를 정리합니다. 새 논문을 확인하고, 제공되는 경우 AlphaXiv의 AI 생성 개요도 가져옵니다.

  • AI·머신러닝 분야의 새 논문 확인
  • 특정 주제의 논문 검색
  • 논문 ID나 arXiv 주소로 조회
danielmiessler/LifeOS2만2026년 10월 28일 업데이트

danielmiessler의 스킬 모두 보기

이 스킬의 문제 신고