本文へ移動
cccskills
無料GitHub で公開日本語紹介

preview

Windmillのフロー、スクリプト、アプリを開いて画面で確認するため、開発ページの起動方法や表示先に応じたプレビュー手順を案内します。

原文原文の説明を見る

MUST use when opening the Windmill dev page / visual preview of a flow, script, or app. Triggers on words like preview, open, navigate to, visualize, see the flow/app/script, and after writing a flow/script/app for visual verification.

windmill-labs/windmillスター 18,276(GitHub 18,276 + cccskills 0)

実行スコア 未検証

インストール方法を見る

こんなときに便利

  • フローを画面で確認したいとき
  • スクリプトの開発ページを開きたいとき
  • アプリのプレビューを表示したいとき

日本語での紹介

できること

Windmillのフロー、スクリプト、アプリを開発ページで表示する手順を案内します。通常のブラウザーで開く場合は直接モード、表示ツールがlocalhostのURLだけを受け付ける場合はプロキシモードを選び、対象に応じて wmill dev または wmill app dev を起動します。起動時に表示されたURLを使ってプレビューを開くため、ワークスペースIDや認証情報を推測してURLを組み立てる必要はありません。対応するプレビュー用MCPツールがある場合は、.claude/launch.json を使ってサーバーを起動する方法も扱います。画面での確認ではなく実行結果を確認したい場合は、フローやスクリプトのCLIプレビューを使い分けます。

こんなときに便利

フローの構成やスクリプトエディターを画面で確認したいとき、アプリのプレビューを開きたいとき、作成したものを視覚的にチェックしたいときに向いています。ブラウザーやIDEのプレビュー欄など、URLを表示する場所に応じて起動方法を選べます。

使い方の例

  • 「このフローを開発ページで表示して」
  • 「作成したアプリのプレビューを開いて」
  • 「このスクリプトを画面で確認したい」

注意点

プレビューにはWindmill CLIの wmill が必要です。.claude/launch.json を使う方法は、設定を読み込むプレビュー用MCPツールが利用できる場合に限られます。

この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。

含まれるファイル(1)

  • SKILL.md7.2 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Windmill Preview Workflow

Use this skill any time the user wants to see, open, navigate to, visualize, or preview a flow, script, or app — and any time you've just finished writing one and want to offer visual verification.

The Windmill dev page renders the flow graph / script editor, lets the user step through steps, and live-reloads on every save. It runs locally via wmill dev and is reached on a localhost port.

Two independent decisions

1. Mode: proxy or direct?

wmill dev runs in two modes; pick by asking what kind of URL whatever will display the preview needs.

  • Proxy (--proxy-port <port>) — exposes the dev page on http://localhost:<port>/. Use it when the embedder you'll hand the URL to only accepts localhost URLs (most in-IDE / in-chat preview embedders do, because they sandbox cross-origin loads).
  • Direct (default) — the user's browser loads the dev page from the remote workspace's HTTPS URL; the local wmill dev only runs the WebSocket back-channel for live reload. Use it when the URL will be opened in a regular browser tab.

Default to direct unless you have a specific embedder that needs localhost.

2. Who starts the server?

  • You start it in the background. Spawn wmill dev … (or wmill app dev …) yourself, capture the URL it prints, do whatever's next (open a tab, hand the URL to an embedder).
  • The runtime starts it from .claude/launch.json. Some runtimes (currently the Claude Desktop / Claude Code MCP preview integration — tools prefixed with mcp__Claude_Preview__) can read a launch.json configuration and launch the dev server on demand when you invoke their preview tool. Only take this path if you actually have such a tool — otherwise nothing reads the file and wmill dev never starts.

The two decisions compose. The common cases:

EmbedderNeeds localhost?launch.json runtime?What to do
Regular browser tabNon/aDirect mode, you start it, give URL to user
IDE / chat preview pane that takes any URLNoNoDirect mode, you start it, point the embedder at the printed URL
IDE / chat preview pane that only accepts localhostYesNoProxy mode, you start it, point the embedder at http://localhost:<port>/
Claude Desktop / Code MCP previewYesYesProxy mode, write a launch.json entry, invoke the MCP tool

Never start the proxy "just in case" — it adds the localhost hop for no benefit when no embedder needs it.

Starting the server yourself

Use this when no launch.json-aware runtime is available, regardless of mode.

For flows / scripts:

# Direct mode — gives you the remote dev-page URL
wmill dev --path <wmill_path> --no-open

# Proxy mode — gives you a localhost URL that 302s to the remote dev page
wmill dev --proxy-port 4000 --path <wmill_path> --no-open

For apps:

cd <app_path>__raw_app && wmill app dev --no-open --port 4000

Each command prints the URL on stdout. Line shapes differ:

  • wmill dev --no-open (direct) prints Go to <url> with the full remote URL (workspace, token, path baked in).
  • wmill dev --proxy-port prints Dev proxy listening on http://localhost:<port> — the URL to hand to an embedder is http://localhost:<port>/.
  • wmill app dev --no-open prints 🚀 Dev server running at <url> — the local app server.

Capture the URL with a loose match (the first https?://… token after startup) and either hand it to your embedder or relay it to the user: "Preview is running — open <url> in your browser." Don't construct the URL yourself; you don't have the workspace ID or auth token.

These commands are long-running — start them in the background, don't block waiting.

Letting launch.json start the server (Claude Desktop / Code MCP only)

Take this path when and only when an mcp__Claude_Preview__* MCP tool is exposed in your tool list. Skip it otherwise — without an MCP tool reading the file, wmill dev never starts.

Each flow / script / app gets its own named entry in the user's .claude/launch.json so multiple previews coexist without colliding — each entry pins a different port + path. Never reuse a generic "windmill" entry for different targets.

Step 1 — Reuse or add a per-target entry in .claude/launch.json

Convention: name the entry windmill: <wmill_path> (e.g. windmill: f/test/my_flow).

  • Entry already exists → reuse it; note its port for the next step.
  • Not there → add one. Pick a port not already taken by another entry (start at 4000 and bump). Shape:

For flows / scripts:

{
  "name": "windmill: f/test/my_flow",
  "runtimeExecutable": "bash",
  "runtimeArgs": ["-c", "wmill dev --proxy-port ${PORT:-4000} --path f/test/my_flow --no-open"],
  "port": 4000,
  "autoPort": true
}

For apps (*__raw_app/), wmill app dev is the equivalent — runs from the app folder, no --path:

{
  "name": "windmill: f/test/my_app",
  "runtimeExecutable": "bash",
  "runtimeArgs": ["-c", "cd f/test/my_app__raw_app && wmill app dev --no-open --port ${PORT:-4001}"],
  "port": 4001,
  "autoPort": true
}

If .claude/launch.json doesn't exist yet, create it with the standard shell { "version": "0.0.1", "configurations": [...] }.

Step 2 — Invoke the MCP preview tool

Point it at the entry you just added/found. Use http://localhost:<port>/ as the URL — the proxy's redirect at / is what appends the workspace ID, the auth token, and the path. Do NOT construct a /dev?... URL yourself.

The MCP tool launches the configuration on demand, so you don't need to start the wmill dev process manually.

Non-visual alternative

If the user wants a programmatic test rather than a visual one:

  • Flow: wmill flow preview <path> -d '<args>'
  • Script: wmill script preview <path> -d '<args>'

Both print the job result, are safe to run yourself, and don't deploy.

Anti-patterns to avoid

  • ❌ Writing a .claude/launch.json entry when no mcp__Claude_Preview__* tool is in your tool list. Nothing will read the file; the server never starts. Spawn wmill dev yourself instead.
  • ❌ Starting the proxy when no embedder needs a localhost URL. Direct mode is the right choice — the proxy is overhead with no purpose.
  • ❌ Reusing a single generic launch.json entry for every preview target. Each flow/script/app gets its own named entry on its own port — that's how multiple sessions coexist without one preview clobbering another.
  • ❌ Mutating an existing entry's --path to retarget it. Add a new entry instead.
  • ❌ Constructing http://localhost:<port>/dev?path=<X> yourself. The proxy's / redirect is what appends the workspace ID and auth token; bypassing it gives a broken page. Always use http://localhost:<port>/.
  • ❌ Starting wmill dev in the foreground (you'll hang). Always background.
  • ❌ Listing both "open in IDE pane" and "open in browser" as a menu — pick one based on context.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

adding-a-trigger

無料概要あり

Windmillに新しいTriggerCrud型のトリガーを追加する際、バックエンドからCLI、画面、同期やキャプチャ機能まで必要な変更箇所を確認できる開発チェックリストです。

  • 新しい外部サービスのトリガーを追加したいとき
  • 実装箇所の抜け漏れを点検したいとき
  • トリガー追加のPR前に検証したいとき
windmill-labs/windmill1.8万2026年10月26日 更新

ai-chat

無料概要あり

WindmillのAIチャットを変更するときに、ツールやプロンプト、結果の返し方、コンテキスト量を整理し、評価で変更前後の挙動を比べるための指針です。

  • チャットツールを変更したいとき
  • プロンプトの配置を見直したいとき
  • コンテキスト消費を抑えたいとき
windmill-labs/windmill1.8万2026年10月26日 更新

ai-evals

無料概要あり

WindmillのAI生成モード向けに、実際の利用要求に沿ったベンチマークケースを作成・実行します。生成結果を決定的な検証とLLM評価で確認し、AIチャットやcopilotの変更前後を比較できます。

  • AI生成モードの評価ケースを追加したいとき
  • AIチャットの変更前後を比較したいとき
  • copilotの生成品質を確認したいとき
windmill-labs/windmill1.8万2026年10月26日 更新

cli-commands

無料概要あり

Windmill CLIのコマンドを使い、スクリプトやフローなどの管理、ジョブの実行履歴確認、失敗原因の調査を進めるためのリファレンスです。

  • 失敗したジョブの原因を調べたいとき
  • 実行履歴やジョブログを確認したいとき
  • CLIでスクリプトやフローを管理したいとき
windmill-labs/windmill1.8万2026年10月26日 更新

codebase-design

無料概要あり

モジュールのインターフェースを小さく保ちながら、内部に複雑な処理をまとめる設計を支援します。テストしやすさや変更のしやすさを考え、処理の境目を整理できます。

  • モジュールのインターフェースを設計したいとき
  • 既存モジュールの複雑さを整理したいとき
  • 処理を差し替える境目を決めたいとき
windmill-labs/windmill1.8万2026年10月26日 更新

commit

無料概要あり

変更内容を確認し、対象ファイルだけを選んで、形式や長さの規則に沿ったConventional Commits形式のGitコミットを作成するスキルです。

  • 機能追加をコミットしたいとき
  • バグ修正を記録したいとき
  • 変更内容に合うコミット文を作りたいとき
windmill-labs/windmill1.8万2026年10月26日 更新

windmill-labs のスキルをすべて見る

このスキルの問題を報告する