Offene Plugin-Plattform · API v1.5

Bringen Sie Ihren Workflow ins Finder-Kontextmenü.

Unabhängige Plugins mit JavaScript oder TypeScript entwickeln – ohne Xcode-Projekt, Apple-Developer-Konto oder Änderung am RightMenu-Quellcode.

01

Offen konzipiert, ohne Host-Autorität abzugeben.

Ein RightMenu-Plugin ist ein unabhängig gepflegtes JavaScript-Paket. Der Host kontrolliert Validierung, Installation, Zustimmung und Ausführung; das Plugin erhält nur für die aktuelle Aktion deklarierte und freigegebene Fähigkeiten.

Sicherheitsgrenze

Plugins besitzen keine Umgebungsrechte und laden keinen nativen Code. Dateizugriff, Änderungen, KI-Offenlegung und Systemberechtigungen bleiben getrennte Host-Entscheidungen.

Unabhängiger Lebenszyklus

Host und Plugins haben getrennte Repositories, Versionen und Veröffentlichungen. Geschäftslogik, Texte, Symbole, Assets und Release Notes gehören ins Plugin-Repository.

Der aktuelle Umfang umfasst offene Entwicklung, lokalen Import und Nutzervertrauen – ohne Marktplatz, Community-Index oder automatische Updates.

02

Schnellstart

Nach der RightMenu-Installation erzeugen Sie mit dem signierten, in der App enthaltenen CLI ein Projekt und führen doctor aus.

Pfad des integrierten CLI

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

Ein lauffähiges Projekt erzeugen

init überschreibt keinen vorhandenen Pfad. Das Projekt enthält ein lauffähiges Plugin, das API-v1.5-Schema und die passende TypeScript-Deklaration.

CLI="/Applications/RightMenu.app/Contents/Helpers/rightmenu-pluginctl"
"$CLI" init ./MyPlugin \
  --id dev.example.my-plugin \
  --name "My Plugin"
"$CLI" doctor ./MyPlugin
Optional Mit einem KI-Agent entwickeln

Kopieren Sie diese Standardanweisung in Codex, Claude Code, Cursor oder einen anderen Agent. Er liest zuerst die lokalen Projektverträge und verwendet einen erfolgreichen doctor-Lauf als Abschlusskriterium.

Entwickeln Sie im aktuellen Verzeichnis ein RightMenu Plugin API v1.5 Plugin.

Plugin-Anforderung: [Funktion hier beschreiben]

Anforderungen:
- Lesen Sie zuerst README.md, schema/rightmenu-plugin-manifest-v1.5.schema.json und types/rightmenu-plugin-api-v1.5.d.ts.
- Ändern Sie nur dieses Plugin-Projekt, nicht den RightMenu-Host-Quellcode.
- Erzeugen Sie JavaScriptCore-kompatible Ausgabe, bündeln Sie alle Imports und verwenden Sie weder Node.js require noch nativen Code.
- Deklarieren Sie requiredCapabilities für jede action und uiContribution und halten Sie permissions minimal.
- Aktualisieren Sie nach Änderungen an Nutzdateien byteCount und SHA-256 in files von manifest.json.
- Führen Sie abschließend "/Applications/RightMenu.app/Contents/Helpers/rightmenu-pluginctl" doctor . aus.
- Fertig ist die Arbeit nur bei Exit-Code 0 und validation.ok.
- Ohne ausdrücklichen Auftrag keine privaten Schlüssel erzeugen, nicht signieren und nicht packen.

03

Erzeugte Paketstruktur

Plugin-Pakete enden auf .rightmenuplugin. manifest.json deklariert Einstieg, Aktionen, Zugriffe und alle Nutzdateien; verteilt wird nur gebündeltes, reines 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 und API v1.5

Jede Finder-Aktion und UI contribution deklariert requiredCapabilities; ohne Bedarf wird ein leeres Array verwendet. Jede Fähigkeit muss in permissions stehen, ungenutzte breite Berechtigungen werden abgelehnt.

{
  "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 verbessert Editorhinweise. Für Dateisicherheit, Digests, Querverweise, Kompatibilität und Signaturen bleibt rightmenu-pluginctl doctor maßgeblich.

05

Mit doctor entwickeln und prüfen

Nach JavaScript-Änderungen aktualisieren Sie byteCount und SHA-256 jeder geänderten Datei im Manifest und führen doctor aus. Es gibt höchstens 32 begrenzte Diagnosen und bei Fehlern einen Exit-Code ungleich null.

  1. 1

    JavaScriptCore-kompatible Ausgabe erstellen, alle Imports bündeln und keine Node.js-require-Aufrufe belassen.

  2. 2

    Byteanzahl und SHA-256 in files aktualisieren; manifest.json selbst nie aufführen.

  3. 3

    doctor bis validation.ok ausführen und API-, Fähigkeits-, Signatur- oder Paketdiagnosen beheben.

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

06

Lokaler Import und Entwicklermodus

Öffnen Sie RightMenu → Einstellungen → Plugins. Signierte Pakete über Import Signed Plugin importieren. Für ein unsigniertes Verzeichnis den Entwicklermodus ausdrücklich aktivieren und Import Unsigned Development Plugin wählen. Beide Speicherorte sind physisch getrennt.

Paket validieren → Herausgeber prüfen → installieren → Plugin Access prüfen → aktivieren → ausführbare Aktionen im Finder anzeigen

Installation ist keine Zustimmung. Der Host validiert vor und nach dem Kopieren und schließt erst nach dem finalen Verschieben ab. Ohne Entwicklermodus laufen unsignierte Plugins nicht.

07

Aktionsbezogener Zugriff

API v1.5 bewertet Fähigkeiten pro Aktion. Eine fehlende Freigabe blendet nur abhängige Aktionen aus; andere freigegebene Aktionen bleiben verfügbar. Jede Freigabe ist widerrufbar.

selection.readAuswahlinformationen · ausdrückliche Freigabe
vision.recognizeTextLokale Texterkennung · ausdrückliche Freigabe
files.rename.*Dateiumbenennung · ausdrückliche Freigabe plus Änderungsbestätigung
ai.generateStructuredStrukturierte KI · ausdrückliche Freigabe plus Offenlegungszustimmung pro Plugin/Anbieter
ui.flashScreen / desktopItems.toggleVisibilityBildschirmeffekt und Schreibtischsichtbarkeit · automatisch, widerrufbar
diagnostics.logDiagnose · ausdrückliche Freigabe

08

Herausgebersignatur und Fingerabdruck

Die Produktion nutzt Ed25519. Beim ersten Import eines unbekannten selbst ausgestellten Herausgebers vergleicht der Nutzer den vollständigen SHA-256-Fingerabdruck, bevor er Trust & Install wählt. Signaturidentität gewährt keine Laufzeitfähigkeit.

"$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

Privaten Schlüssel außerhalb des Projekts sicher sichern und niemals committen oder verteilen. Bei Verlust können vorhandene Installationen keine Updates derselben Identität annehmen.

Updates derselben Plugin-ID müssen exakt denselben Signaturschlüssel verwenden. Auch ein anderer vertrauter Schlüssel darf nicht übernehmen. Automatische Updates und Schlüsselrotation sind nicht enthalten.

09

Häufige Diagnosecodes

Automatisierung soll stabilen code und Prozessstatus verwenden, nicht Erklärungstexte parsen.

validation.okManifest, Dateigrößen und Digests bestanden.
api.current / api.legacyAktuelle oder kompatible ältere API.
capability.unsupportedDer Host bietet eine deklarierte Fähigkeit nicht an.
signature.missingUnsigniert, nur Entwicklermodus.
signature.self-issued-validSelbst ausgestellte Identität und Signatur gültig.
manifest.*Begrenzter Manifest-Vertragsfehler.
package.*Begrenzter Paketstruktur-, Integritäts- oder Limitfehler.
invocation.*Begrenztes Host- oder Runner-Lebenszyklusergebnis.

10

Kompatibilität und Laufzeitgrenzen

Neue Projekte verwenden API v1.5 und benötigen RightMenu 0.1.41 oder neuer. v1.0–v1.4 bleiben kompatibel und behalten paketweite Zugriffe. Ziel ist JavaScriptCore; Schleifen, Rekursion, Speicher und Ausgabe müssen begrenzt sein.

Finder-Aktionen unterstützen geeignete Auswahlen von 1–20 lokalen regulären Dateien. Vor dem Aufruf scannt und validiert der Host Aktion und exakte Freigaben erneut.

11

Versionsgebundene Referenzdateien

Diese Dateien sind bytegenaue Kopien aus Documentation von RightMenu 0.1.41 (Commit 9a25a54). Ein Prüfskript verhindert Abweichungen von der Host-Quelle.