1Password 명령줄 도구의 설치와 인증을 확인하고 저장된 비밀번호와 API 키를 명령이나 설정에 전달합니다. 데스크톱 앱 연동과 서비스 계정도 지원합니다.
- 1Password 명령줄 도구 설치
- API 키를 명령에 전달
- CI에서 서비스 계정 인증 사용
코드 구조와 처리 흐름, 성능 차이를 대화형 시각 자료로 설명합니다. OpenClaw 대시보드에 관련 지표와 표를 지속적으로 표시할 수 있습니다.
Create inline visuals for code and explanations, or author persistent OpenClaw dashboard widgets with show_widget.
코드 구조, 처리 흐름, 성능 차이를 그림과 조작 가능한 화면으로 설명합니다. show_widget으로 대화 안의 시각 자료나 OpenClaw 대시보드에 남길 위젯을 만듭니다. 지표·표·간단한 그래프를 모은 화면과 HTML/SVG로 만든 맞춤 화면을 구분해 사용하며, 선택과 필터로 내용을 살펴볼 수 있게 합니다.
글만으로 코드의 관계를 따라가기 어렵거나 여러 실측값을 같은 척도로 비교할 때 사용합니다. UI 시제품을 조작해 확인하거나 관련 지표를 지속적으로 보고 싶을 때도 유용합니다. 관측한 사실과 제안 및 예시 데이터는 구분해 표시합니다.
사용 환경에 show_widget이 필요하며 표시 위치와 권한은 당시 지원 범위를 따릅니다. 갱신용 데이터·작업 API는 고정된 대시보드용입니다. 외부 자료를 불러올 수 있는 출처에는 제한이 있고 엄격한 삽입 모드에서는 스크립트가 비활성화됩니다. 위젯을 만드는 것만으로 앱 구현이 완료되지는 않습니다.
이 소개문은 공개된 SKILL.md를 바탕으로 AI(OpenAI Codex)가 작성했습니다. 정확한 사양은 아래 원문을 확인하세요.
AI가 SKILL.md의 내용만을 근거로 4가지 관점에서 판정했습니다. 스타 수나 인기도는 판정에 넣지 않았습니다.
총점은 각 항목을 A=25점, B=15점, C=5점으로 더한 값입니다. 2026년 10월 19일 기준으로 AI(OpenAI Codex)가 판정했습니다. 참고용이므로 설치 전에 원문도 확인해 주세요.
설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Use show_widget when seeing or interacting with a result helps the user reason
about it. This includes code architecture, execution traces, performance,
comparisons, simulations, UI mockups, and session dashboards. Use prose, a normal
Markdown table, or a supported Mermaid block when that already explains the
answer. A request to implement an application still needs changes in its project;
a widget can illustrate the design but does not complete the implementation.
pin: true for an explicit dashboard request
or multiple non-code visualizations that belong together. Read the current
board first and reuse its names and tabs. Use the control-ui skill when
organizing sessions, tabs, placement, or dashboard presentation.report input with pin: true for
dashboard text, metrics, tables, simple charts, and links. Omit widget_code,
kind, capabilities, and presentation.target. Reports do not render inline.widget_code for interactive HTML/SVG. Reuse an
explicit name with pin: true to replace a pinned widget's content. A same-name
update cannot change its content owner; inspect before converting HTML to a report.Use only tools, source kinds, and presentation targets advertised in this turn.
On a pinned-only surface, set pin: true and omit presentation.target. If the
tool is unavailable, explain the limitation instead of inventing a render call.
Restart recovery can be pinned-only even when the original turn supported inline
widgets; follow the current tool schema instead of earlier delivery instructions.
Send the markup itself in widget_code. Use an HTML or SVG fragment, optionally
including <style> and <script>; OpenClaw supplies the document shell, theme,
and host bridges. Do not send a file path, Markdown fence, full HTML document, or
another application's visualization directive. title is host metadata: start
with useful content rather than repeating the title or drawing dashboard chrome.
Keep a useful initial state in the markup. Use local JavaScript for selections,
filters, parameter changes, and animation. Give the root a unique ID and scope
styles and selectors to it. Insert labels and external data with textContent
instead of interpolating untrusted strings into markup or executable code.
Keep source compact: widget_code is limited to 262,144 characters, pinned HTML
to 256 KiB after wrapping, and Discord source to 48 KiB. Aggregate large datasets
and load a suitable library instead of embedding its distribution in the call.
Scripts, ES modules, stylesheets, and fonts can load from these HTTPS origins:
https://cdnjs.cloudflare.comhttps://cdn.jsdelivr.nethttps://esm.shhttps://unpkg.comhttps://fonts.googleapis.comhttps://fonts.gstatic.comhttps://fonts.bunny.netUse version-pinned library URLs. For example, load D3 with
<script src="https://cdn.jsdelivr.net/npm/d3@7.9.0/dist/d3.min.js" crossorigin="anonymous"></script>
before the inline script that uses d3. Use a module script for ESM imports.
Transitive imports, font files, and redirects must also stay on allowed origins.
No library, icon set, or font is preloaded. Choose native SVG/CSS for simple
visuals; load a library when its scales, layout, or interaction justify it.
Provide readable fallback content and a visible failure state if an asset fails
to load. Avoid eval-based libraries; unsafe-eval, remote frames, and arbitrary
resource hosts remain unavailable. Images must be embedded as data URLs or drawn
locally. CDN URLs are for public assets, never private data or credentials.
CDN loading does not grant fetch, WebSocket, or host API access. Retrieve data
with the agent's available tools and embed the needed observations for inline
visuals. Use dashboard capabilities for refreshable data, as described below.
For code explanations, emphasize the relationship being discussed: aligned lanes for concurrent work, labeled edges for ownership and data flow, or shared scales for performance comparisons. Keep source details that support the conclusion; avoid decorative metrics or diagrams of unrelated modules.
For dashboards, make each widget useful on its own and keep related measures comparable. Show data freshness, units, loading, empty, and error states where they affect interpretation. Preserve the last successful data when refresh fails. Use a mockup's product context for its inner controls while retaining the host's theme for the surrounding surface.
OpenClaw styles native headings, controls, tables, and code. It provides .card,
.row, .metric, .muted, .badge with .ok/.warn/.danger/.info, and
button.primary. Use these when they fit; do not assume another host's classes.
Colors and typography use --text, --text-strong, --muted, --surface,
--card, --elevated, --border, --border-strong, --accent, --accent-fill,
--accent-fg, --ok, --warn, --danger, --info, --radius, --font-body,
and --font-mono. Keep the outer background transparent and avoid extra cards
around a whole plot. Pair colors with labels or shapes. Canvas libraries need
resolved computed colors and redraws when the host theme changes.
Fit the actual container, including narrow chat and resized dashboard columns. Use fluid widths, wrapping controls, and stacked panels; reserve horizontal scrolling for code, tables, or diagrams that require exact geometry. Size SVGs from their container and keep labels readable instead of shrinking a desktop layout. Include axes and units for plots, accessible names, visible control labels, keyboard operation, and touch targets. Honor reduced-motion preferences.
Keep presentation-only changes local. A clearly labeled user-clicked control can
call openclaw.prompt.send(text) to ask the agent to investigate selected values.
Include those values and the requested action. In the Control UI, prompts need a
real user activation in the visible, focused widget; text must be nonempty, at
most 4,000 characters, and cannot start with /. Do not trigger prompts on load
or on every filter change, and do not assume the widget can read the agent reply.
Native renderers do not provide the Control UI conversation bridge.
Only pinned dashboard widgets have the ticket-bound data and action APIs:
openclaw.data.read(bindingId, params?) reads an advertised Gateway binding.openclaw.action.run(actionId, params?) invokes an advertised action.openclaw.cron.trigger(jobId) requires cron.trigger:<jobId>.openclaw.state.emit(payload) emits a bounded session notice.Use the current tool schema for binding/action IDs and their parameter shapes.
Declare required grants in capabilities.tools. For browser API fetches, declare
exact HTTPS origins in capabilities.netOrigins; the browser still requires
CORS. Use host bindings for authenticated data; never embed tokens in HTML.
Inline previews do not inherit dashboard grants. Check capabilityState and
report pending or rejected access; saving a widget does not prove a data read.
Updated content may require approval again.
Use normal dashboard links with target="_blank" rel="noopener noreferrer".
window.open and nested external iframes do not work. For Control UI links,
read openclaw.host.controlUiBaseUrl at click time; it is null before dashboard
initialization and outside that host.
Fix reported inline-script syntax errors and call the tool again. Script errors thrown after an inline widget renders in the Control UI are reported back to this session. Agent browser tools normally run a separate profile without the viewer's Control UI session, so opening the chat there reaches sign-in, not the widget; do not use them to inspect inline widgets. When a browser or device tool can load the rendered surface itself, verify libraries and fonts loaded, important controls work, and content fits the intended width and theme. For live dashboards, exercise the data read in the actual pinned frame. Strict embed mode disables scripts. Report any concrete visual or platform verification gap; successful hosting alone proves neither rendering nor data access.
Follow result.presentation when present. A status: "pinned" result means the
widget is on the session dashboard. Use the available dashboard tool to focus its
tab in the current session. Do not navigate to widget hosting URLs in the Browser
panel as a substitute for presentation.
Keep the final prose focused on the useful conclusion or remaining limitation, without repeating the entire visual. Do not promise PNG exports preserve externally loaded styles or fonts without checking the exported image.
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
1Password 명령줄 도구의 설치와 인증을 확인하고 저장된 비밀번호와 API 키를 명령이나 설정에 전달합니다. 데스크톱 앱 연동과 서비스 계정도 지원합니다.
OpenClaw에 전달한 자연어 요청을 Claude Code 같은 외부 코딩 에이전트로 연결합니다. ACP나 acpx로 작업을 시작하거나 이어가며 대화 맥락을 유지합니다.
OpenClaw에 모델 제공업체를 추가하고 실제 응답을 확인합니다. 인증 정보는 환경 변수나 파일 참조로 다루며 설정 검증과 결과 보고도 진행합니다.
AI 에이전트의 작업 로그를 GitHub PR이나 이슈에 첨부할 기록으로 정리합니다. 관련 내용을 추리고 민감한 정보를 제거해 미리 보며, 별도 승인을 받아 게시합니다.
에이전트에서 macOS의 Apple Notes 메모를 생성, 검색, 편집, 삭제합니다. 폴더 간 이동과 HTML 또는 Markdown 내보내기도 지원합니다.
Mac에서 Apple Reminders의 기한이 있는 할 일을 확인하고 추가·편집합니다. 목록 관리와 완료·삭제를 통해 iPhone이나 iPad에서 보는 작업을 정리합니다.