オープンプラグイン基盤 · API v1.5

あなたのワークフローを Finder の右クリックへ。

JavaScript または TypeScript で独立したプラグインを構築できます。Xcode プロジェクト、Apple Developer アカウント、RightMenu ソース変更は不要です。

01

オープンでも、ホスト権限は渡しません。

RightMenu プラグインは独立管理される JavaScript パッケージです。検証、導入、同意、実行境界はホストが所有し、プラグインは現在のアクションで宣言され、ユーザーが許可した能力だけを受け取ります。

セキュリティ境界

プラグインに環境権限はなく、ネイティブコードも読み込めません。ファイルアクセス、変更、AI 開示、システム認可はホストが個別に制御します。

独立したライフサイクル

ホストと各プラグインは別々のリポジトリ、バージョン、公開周期を持ちます。業務ロジック、文言、アイコン、資産、リリースノートはプラグイン側に置きます。

現段階はオープン開発、ローカル導入、ユーザー信頼のみです。マーケット、コミュニティ索引、自動更新は含みません。

02

クイックスタート

RightMenu をインストール後、App に同梱された署名済み CLI でプロジェクトを生成し doctor を実行します。

同梱 CLI のパス

/Applications/RightMenu.app/Contents/Helpers/rightmenu-pluginctl

実行可能なプロジェクトを生成

init は既存パスを上書きしません。生成物には実行可能なプラグイン、API v1.5 Schema、対応 TypeScript 宣言が含まれます。

CLI="/Applications/RightMenu.app/Contents/Helpers/rightmenu-pluginctl"
"$CLI" init ./MyPlugin \
  --id dev.example.my-plugin \
  --name "My Plugin"
"$CLI" doctor ./MyPlugin
オプション AI Agent で開発

次の標準指示を Codex、Claude Code、Cursor などの Agent に貼り付けます。Agent はプロジェクト内の仕様を先に読み、doctor の成功を完了条件にします。

現在のディレクトリで RightMenu Plugin API v1.5 プラグインを開発してください。

プラグイン要件:[ここに機能を記述]

要件:
- 最初に README.md、schema/rightmenu-plugin-manifest-v1.5.schema.json、types/rightmenu-plugin-api-v1.5.d.ts を読んでください。
- 現在のプラグインプロジェクトだけを変更し、RightMenu ホストのソースは変更しないでください。
- JavaScriptCore 互換の出力にし、すべての import をバンドルして、Node.js require やネイティブコードを使わないでください。
- すべての action と uiContribution に requiredCapabilities を宣言し、permissions を最小限にしてください。
- ペイロード変更後、manifest.json の files にある byteCount と SHA-256 を更新してください。
- 最後に "/Applications/RightMenu.app/Contents/Helpers/rightmenu-pluginctl" doctor . を実行してください。
- doctor が終了コード 0 で validation.ok を出力した場合のみ完了です。
- 明示的な依頼がない限り、秘密鍵の生成、署名、pack は行わないでください。

03

生成される構成

プラグインは .rightmenuplugin で終わります。manifest.json が入口、アクション、権限、全ペイロードを宣言し、配布物はバンドル済みの通常 JavaScript です。

MyPlugin/
├── README.md
├── plugin/
│   └── my-plugin.rightmenuplugin/
│       ├── manifest.json
│       └── main.js
├── schema/
│   └── rightmenu-plugin-manifest-v1.5.schema.json
└── types/
    └── rightmenu-plugin-api-v1.5.d.ts

04

Manifest と API v1.5

すべての Finder アクションと UI contribution は requiredCapabilities を宣言します。不要なら空配列です。能力は permissions に存在する必要があり、未使用の広い権限は拒否されます。

{
  "apiVersion": "1.5",
  "permissions": [{
    "capability": "selection.read",
    "reason": "Reads metadata for selected Finder items."
  }],
  "actions": [
    { "id": "about", "title": "About", "requiredCapabilities": [] },
    { "id": "inspect", "title": "Inspect", "requiredCapabilities": ["selection.read"] }
  ],
  "uiContributions": []
}
globalThis.rightMenuPlugin = Object.freeze({
  run(actionID, input) {
    if (actionID !== "inspect") return { handled: false };
    return RightMenu.call("selection.read", {});
  }
});

JSON Schema は編集支援です。ファイル安全性、ダイジェスト、配列間規則、互換性、署名は rightmenu-pluginctl doctor が正本です。

05

doctor による開発と検証

JavaScript を変更したら manifest の byteCount と SHA-256 を更新し doctor を実行します。診断は最大 32 件で、エラーがあれば非ゼロ終了です。

  1. 1

    JavaScriptCore 互換の出力にし、すべての import をバンドルして Node.js require を残しません。

  2. 2

    files のバイト数と SHA-256 を更新し、manifest.json 自体は含めません。

  3. 3

    validation.ok まで doctor を実行し、API、能力、署名、構造の診断を解消します。

"$CLI" doctor ./MyPlugin
"$CLI" doctor ./MyPlugin/plugin/my-plugin.rightmenuplugin

06

ローカル導入と開発者モード

RightMenu → 設定 → プラグインを開きます。署名済みは「署名済みプラグインを読み込む」、未署名ディレクトリは開発者モードを有効にして「未署名開発プラグインを読み込む」を使います。保存先は物理的に分離されています。

検証 → 発行者確認 → インストール → Plugin Access 確認 → 有効化 → Finder に実行可能アクションを表示

インストールは権限付与ではありません。ホストはコピー前後に検証し、最終移動後に完了します。開発者モードを切ると未署名プラグインは実行できません。

07

アクション単位の権限

API v1.5 は能力をアクションごとに評価します。許可が欠けても依存アクションだけが非表示になり、他の許可済みアクションは利用できます。許可はいつでも取り消せます。

selection.read選択情報 · 明示許可
vision.recognizeTextローカル文字認識 · 明示許可
files.rename.*ファイル名変更 · 明示許可と変更確認
ai.generateStructured構造化 AI · 明示許可とプラグイン/提供者ごとの開示同意
ui.flashScreen / desktopItems.toggleVisibility画面効果とデスクトップ表示 · 自動、取り消し可能
diagnostics.log診断 · 明示許可

08

発行者署名と指紋

本番配布は Ed25519 を使います。未知の自己発行者を初めて読み込む際、ユーザーは完全な SHA-256 公開鍵指紋を照合してから「信頼してインストール」を選びます。署名は実行能力を付与しません。

"$CLI" keygen ./publisher.private.json "Example Publisher"
"$CLI" sign \
  ./MyPlugin/plugin/my-plugin.rightmenuplugin \
  ./publisher.private.json
"$CLI" inspect-signature \
  ./MyPlugin/plugin/my-plugin.rightmenuplugin
"$CLI" pack \
  ./MyPlugin/plugin/my-plugin.rightmenuplugin \
  ./my-plugin.rightmenuplugin.zip

秘密鍵はプロジェクト外で安全にバックアップし、絶対にコミット・配布しないでください。紛失すると同じ発行者として更新できません。

同じプラグイン ID の更新には、インストール済み版と完全に同じ署名鍵が必要です。別の信頼済み鍵でも引き継げません。自動更新と鍵ローテーションは未提供です。

09

主な診断コード

自動化は安定した code と終了状態を使い、説明文を解析しないでください。

validation.okManifest、サイズ、ダイジェストが合格。
api.current / api.legacy現行または互換旧 API。
capability.unsupported宣言能力をホストが提供しない。
signature.missing未署名。開発者モード専用。
signature.self-issued-valid自己発行者と署名が有効。
manifest.*Manifest 契約エラー。
package.*構造、整合性、制限のエラー。
invocation.*ホストまたは Runner のライフサイクル結果。

10

互換性と実行制約

新規プロジェクトは API v1.5 と RightMenu 0.1.41 以降が必要です。v1.0–v1.4 と後方互換ですが、旧パッケージはプラグイン全体の権限方式です。JavaScriptCore を対象にし、ループ、再帰、メモリ、出力を制限してください。

Finder アクションは 1–20 個のローカル通常ファイルに対応します。呼び出し前にホストが再走査し、アクションと正確な許可集合を再検証します。

11

バージョン固定の参照ファイル

以下は RightMenu 0.1.41(commit 9a25a54)の Documentation からバイト単位で複製したものです。検証スクリプトがホスト正本とのずれを防ぎます。