mcpField
W
wendy

wendy

github.com/wendylabsincクラウド・DevOps6273 回インストール5 週間前に更新
リポジトリ

wendy について

wendy は、エッジデバイスや VM 向けの WendyOS でアプリを開発・実行するためのスキルです。Wendy CLI によるプロジェクト作成、デプロイ、デバイス管理、権限設定、デバッグ、テレメトリーを扱います。

主な機能

  1. 01Wendy Lite プロジェクトの初期化と実行
  2. 02デバイス検出と WiFi 設定
  3. 03WendyOS デバイスのインストールと更新
  4. 04wendy.json でのアプリ権限設定
  5. 05リモートデバッグとテレメトリー出力

活用シーン

  1. 01Swift アプリのビルドとエッジデバイスへのデプロイ
  2. 02デバイスの検出や WiFi 接続
  3. 03アプリでの GPU またはカメラ利用の有効化
  4. 04デバイス上で動作するアプリのデバッグ

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/wendylabsinc/claude-skills --skill wendy

インストール後、Claude Code で/wendyを入力して読み込まれたか確認します。

同梱ファイルreferences/wendy.json.md

詳細

WendyOS

WendyOS は、エッジコンピューティング向けの組み込み Linux オペレーティングシステムです。以下をサポートしています。

  • NVIDIA Jetson デバイス(OTA アップデートによる本番運用)
  • Raspberry Pi 4/5(エッジデバイス)
  • ARM64/AMD64 VM(開発用)

Wendy について学ぶ

Wendy のコマンドを使う前に、以下を実行して利用可能なすべてのコマンドを確認してください。

wendy --experimental-dump-help

すべてのコマンド、フラグ、ドキュメントを含む JSON 構造が出力されます。

wendy コマンドを実行する際は、JSON 構造のオプションを使って構造化 JSON 出力を指定してください。これにより、対話型ダイアログやエラーも回避できます。JSON 出力を指定するには、--json または -j を使います。

よくあるタスク

  • アプリを実行する:wendy run
  • 新しいプロジェクトを作成する:wendy init
  • デバイスを検出する:wendy discover
  • エージェントを更新する:wendy device update
  • WiFi を設定する:wendy device wifi connect
  • 外部ドライブに WendyOS をインストールする:wendy os install
  • wendy device set-default を使ってデバイスをデフォルトに設定する
wendy init — 新しい Wendy Lite プロジェクトを作成する

必要なひな形を含む新しい Wendy Lite プロジェクトを作成します。

wendy init

wendy.json 設定ファイルと、Wendy Lite アプリのビルドおよびデプロイに必要な構成を含む新しいプロジェクトディレクトリが作成されます。

wendy run — Wendy Lite プロジェクトを実行する

Wendy Lite プロジェクトをビルドし、アップロードして、接続されたデバイス上で実行します。

wendy run

このコマンドは、アプリのコンパイル、バイナリのデバイスへの転送、実行の開始まで、開発サイクル全体を処理します。ビルドの詳細な出力を確認するには、--verbose を使います。

wendy device wifi connect — WiFi を設定する

接続されたデバイスの WiFi 認証情報を設定します。

wendy device wifi connect

WiFi の SSID とパスワードをデバイスに送信し、ローカルネットワークに接続できるようにします。最初に、USB または既存の接続経由でデバイスにアクセスできる状態にする必要があります。

セットアップと設定

Wendy CLI は、gRPC(TCP)ポート 50051 経由でデバイスに接続します。Wendy CLI がまだインストールされていない場合は、brew install wendy を使ってインストールできます。

デバイスは USB または LAN 経由で検出されます。デバイスが見つからない場合は、接続を確認するか、USB 経由で接続するようユーザーに依頼してください。 デバイスにまだインストールされていない場合は、wendy os install を使って外部ドライブに OS をインストールしてください。NVIDIA Jetson デバイスでは、通常 NVMe に OS をインストールします。

開発

WendyOS は Linux ベースのコンテナ化されたオペレーティングシステムです。Linux コンテナを使ってアプリを実行します。

WendyOS では、主な言語として Swift.org を採用しています。Swift Package Manager と Swift Container Plugin を使ってアプリをビルドし、実行します。Wendy CLI が Swift をクロスコンパイルします。

その他のプログラミング言語もサポートされていますが、アプリのビルドには Dockerfile が必要です。

エンタイトルメント

WendyOS は、wendy.json で管理するエンタイトルメントシステムを使って、アプリの権限を管理します。これは、デバイス上でコンテナをどのように構成するかを反映します。

詳しいエンタイトルメントの設定については、references/wendy.json.md を参照してください。

クイックスタート
  1. 新しい Swift プロジェクトを作成するか、既存のプロジェクトに移動します
  2. wendy.json を初期化します:wendy project init
  3. 必要なエンタイトルメントを追加します(例:Web サーバーの場合):wendy project entitlements add network --mode host
  4. デバイス上で実行します:wendy run
よく使われるエンタイトルメント
エンタイトルメント用途
network(host モード)Web サーバー、HTTP API、着信接続
gpuML 推論、コンピュータービジョン(Jetson のみ)
videoカメラアクセス、動画キャプチャ
audioマイク、スピーカー
bluetoothBLE デバイス、Bluetooth 通信

リモートデバッグ

WendyOS には、Swift アプリのリモートデバッグ機能が組み込まれています。wendy run --debug を使うと、デバッグセッションを含めて起動できます。 これにより、ポート 4242 で GDB サーバーが公開されます。

VS Code から接続する
  1. wendy run --debug を実行します
  2. VS Code で CodeLLDB 拡張機能を使います
  3. <device-ip>:4242 に接続します

可観測性

WendyOS は、各デバイス上でローカルの OpenTelemetry コレクターを実行します。アプリはこのローカルコレクターにテレメトリー(ログ、メトリクス、トレース)を送信してください。

設定

OTel のエクスポートには HTTP プロトコルを使用してください(gRPC ではありません)。

import OTel

var config = OTel.Configuration.default
config.traces.otlpExporter.protocol = .httpProtobuf
config.traces.otlpExporter.endpoint = "http://localhost:4318"
config.metrics.otlpExporter.protocol = .httpProtobuf
config.metrics.otlpExporter.endpoint = "http://localhost:4318"
config.logs.otlpExporter.protocol = .httpProtobuf
config.logs.otlpExporter.endpoint = "http://localhost:4318"

let observability = try OTel.bootstrap(configuration: config)

環境変数を使う場合:

OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318

ローカルコレクターが、テレメトリをバックエンドインフラストラクチャに転送します。

トラブルシューティング

問題解決策
デバイスが見つからないUSB/LAN 接続を確認し、wendy discover を実行してください
ネットワークアクセスが拒否されるホストモードでネットワークのエンタイトルメントを追加してください
GPU が検出されないGPU のエンタイトルメントを追加してください(Jetson のみ)
カメラが見つからないビデオのエンタイトルメントを追加し、カメラが /dev/video0 にあることを確認してください
ビルドに失敗するSwift のバージョンとの互換性を確認し、wendy run --verbose を試してください

参照ファイル

特定のトピックに応じて、必要なファイルを読み込んでください。

  • references/wendy.json.md - アプリの設定、エンタイトルメント(ネットワーク、GPU、ビデオ、オーディオ、Bluetooth)、一般的な設定、CLI コマンド

関連資料

WendyOS のドキュメント:https://wendy.sh/docs/

コメント