Jedes apps.json-Feld: Typ, Standardwert und Wirkung
Der Dialog „App bearbeiten“ zeigt dieselben Felder unter denselben Namen. Felder, die für
den gewählten Typ nicht gelten, sind im Dialog abgedunkelt, werden aber trotzdem gespeichert, mit einer Ausnahme:
stopCommand wird nur gespeichert, solange killMode auf command steht.

- Die Auswahl
killMode. Felder, die sie nicht nutzt, bleiben abgedunkelt.
| Feld | Typ | Pflicht | Verwendet von | Wirkung |
|---|---|---|---|---|
id |
string | ja | alle | Eindeutiger Schlüssel. Buchstaben, Ziffern, ., _, -, darf nicht mit - beginnen. Siehe Übersicht. |
name |
string | ja | alle | Bezeichnung in der Seitenleiste. Nicht leer. |
group |
string | ja | alle | Überschrift in der Seitenleiste, unter der die App steht. Bei einer Handänderung nicht leer; der Dialog speichert eine leere Gruppe als Apps. Beliebiger Text; ein neuer Name legt eine neue Gruppe an. |
type |
string | ja | alle | web, desktop, static oder cli. Siehe App-Typen. |
command |
string | alle außer static |
alle | Wird in einem Terminal ausgeführt, um die App zu starten, über cmd /c unter Windows und $SHELL -c sonst (/bin/sh, wenn SHELL nicht gesetzt ist). Für static optional. |
cwd |
string | nein | alle mit einem command |
Ordner, in dem der Befehl läuft. Standard ist der eigene Arbeitsordner von Moonpool. Unterstützt Token und ./. Siehe Pfade und Umgebung. |
port |
integer, 1 bis 65535 | nein | beliebig | Läuft, solange etwas auf diesem Port auf localhost antwortet (IPv4 oder IPv6). Wird von killMode port gelesen. |
processName |
string | nein | beliebig, vor allem desktop |
Läuft, solange ein Prozess mit diesem Namen existiert. Ohne Beachtung der Groß-/Kleinschreibung, mit oder ohne .exe, sodass my-app auf my-app.exe passt. Unter Linux höchstens 15 Zeichen. Wird von killMode processName gelesen. |
mcpProcessName |
string | nein | beliebig mit einem processName |
Platzhaltermuster für den Prozessnamen des MCP-Servers dieser App. * steht für eine beliebige Zeichenfolge, ? für genau ein Zeichen. Ohne Beachtung der Groß-/Kleinschreibung, verglichen mit dem ganzen Namen, und .exe ist optional. Ein passender Prozess zählt als MCP-Server der App (die MCP-Unterzeile in der Seitenleiste) und braucht mcp nicht als erstes Argument. Siehe mcpProcessName. |
url |
string | nur static |
web, static |
Seite, die geöffnet wird. Nur URLs mit http://, https://, mailto: und file:// werden geöffnet. |
openBrowser |
boolean, Standard false |
nein | jeder Typ mit einer url (der Dialog dunkelt es für desktop und cli ab) |
Öffnet url automatisch, sobald Moonpool erkennt, dass die App oben ist (siehe unten). |
killMode |
string | nein | alle | Zusätzliche Aufräumschritte bei Stoppen und Neu starten: processName, port, command oder none. Siehe Stoppen und neu starten. |
stopCommand |
string | nein | killMode command |
Befehl, der beim Stoppen ausgeführt wird. In jedem anderen Modus ignoriert. |
env |
object of strings | nein | alle | Zusätzliche Umgebungsvariablen. Der Dialog bearbeitet sie als eine KEY=VALUE pro Zeile. |
icon |
string | nein | alle | Bild in der Seitenleiste: ein Dateipfad, eine http(s)-URL oder ein data:-URI. Setzen Sie es über Symbol wählen… im Kontextmenü der App oder von Hand. |
note |
string | nein | alle | Tooltip, wenn Sie in der Seitenleiste über die App fahren. |
Ein Eintrag mit env und killMode:
{ "id": "api", "name": "API", "group": "Web apps", "type": "web", "command": "npm start", "port": 3000, "env": { "PORT": "3000", "NODE_ENV": "development" }, "killMode": "port"}Wie port und killMode zusammenarbeiten, steht unter
Den Prozess finden und beenden, der einen Port belegt.
mcpProcessName
Abschnitt betitelt „mcpProcessName“Standardmäßig behandelt Moonpool einen Prozess als MCP-Server der App, wenn sein Name zu
processName passt und sein erstes Argument mcp ist, etwa notes-app.exe mcp. Setzen Sie
mcpProcessName, wenn der Server unter einem anderen Namen läuft: eine App, die eine exe überwacht,
während ihr MCP-Server eine andere ist (mog.exe mcp), oder eine umbenannte Kopie des Servers.
Der Wert ist ein Platzhaltermuster. * steht für eine beliebige Zeichenfolge (auch keine) und ?
für genau ein Zeichen. Es wird ohne Beachtung der Groß-/Kleinschreibung mit dem ganzen Prozessnamen verglichen, und ein
Muster ohne .exe passt auch auf den Namen mit .exe. Ein leerer Wert gilt als nicht gesetzt.
{ "id": "destiny", "name": "Destiny", "group": "Desktop apps", "type": "desktop", "processName": "destiny", "mcpProcessName": "destiny-mcp-*"}Das passt auf eine umbenannte Kopie wie destiny-mcp-2706210170.exe. Ein Prozess, der auf
mcpProcessName passt, ist der Server, egal ob er mit mcp gestartet wurde, und er zählt nie
als Lauf der App selbst. Passt das Muster auch auf processName selbst (zum Beispiel
destiny*), verlangt Moonpool weiterhin das Argument mcp, sodass die eigentliche App nie mit
ihrem MCP-Server verwechselt wird. Siehe MCP-Einrichtung.
openBrowser
Abschnitt betitelt „openBrowser“Moonpool öffnet url einmal, wenn eine App, die Moonpool gestartet hat, erstmals als „läuft“ erkannt wird. Dafür
braucht es einen port oder processName zur Erkennung. Ohne beides bedeutet „läuft“ nur, dass der
Terminalprozess lebt, und der Browser wird nicht automatisch geöffnet. Schalten Sie openBrowser
aus, wenn Ihr Befehl selbst einen Browser öffnet. Ein static-Eintrag ohne Befehl öffnet url
bei jedem Druck auf Starten, unabhängig von openBrowser.
Zwei Apps mit demselben port werden in der Seitenleiste markiert.
Symbole
Abschnitt betitelt „Symbole“Das Symbol einer App ist das erste der folgenden, das existiert:
- Das Feld
icon. icons\<id>.<ext>im Konfigurationsordner, zum Beispielicons\site.png.- Eine Symboldatei im eigenen Ordner der App (ihr
cwdoder der Ordner einerfile:///-url). - Bei
desktopdas Symbol der gebauten oder laufenden.exe. - Bei
webundstaticdie/favicon.icoder Seite, sobald der Server oben ist. - Ein Glyph für den Typ.
Die meisten Apps brauchen keine Symboleinstellung.
Moonpool ist freie Software von FasterDB