Guide de la barre de menus
Comment chaque type d'outil s'affiche dans le menu Runyard, et ce que fait chaque action.
Toute l'interface de Runyard réside dans la barre de menus. Cette page décrit ce que vous voyez et comment interagir avec chaque élément.
L'icône Runyard
Cliquez sur l'icône Runyard dans la barre de menus pour ouvrir le menu déroulant. Le clic droit (ou clic avec Contrôle) équivaut au clic gauche — il n'existe pas de menu contextuel caché.
À côté de l'icône, selon vos réglages, vous pourrez voir :
- Un court texte d'état (par exemple
2 actifsouDémarrage Backend, Frontend…) — activable dans Réglages → General → Menu Bar. - Un triangle rouge ⚠︎ dès qu'une sonde de vérification d'état est en échec.
- Une infobulle dynamique (au survol) listant chaque service actif avec son port détecté.
Pour tout ce qui précède, voyez le guide de la fenêtre Réglages. Le statut par outil s'affiche à l'intérieur du menu — les quatre états sont listés ci-dessous.
Les quatre types d'outils
Runyard propose quatre types d'outils. Ils s'affichent différemment dans le menu.
Service
Un service est un processus géré — un backend, un serveur de développement, une pile Docker. C'est le type le plus courant.
Un service s'affiche ainsi :
- Une ligne d'en-tête en gras avec le nom de l'outil et un indicateur d'état.
- Un bouton Start ou Stop.
- Un élément View Logs.
- Toutes les actions définies (Ouvrir URL, Exécuter commande, etc.), filtrées selon l'état courant.
Indicateurs d'état :
- Pastille grise + « Stopped » — l'outil n'est pas en cours d'exécution.
- Pastille jaune + « Starting… » — les processus démarrent, ou Runyard interroge la vérification d'état.
- Pastille verte + numéro de port (par exemple,
:3000) — l'outil est en bon état et écoute sur le port détecté. - Pastille verte + « Running » — en bon état, mais aucun port n'a été détecté.
- Pastille rouge + « Error » — une erreur est survenue (installation, démarrage ou vérification d'état).
- Pastille jaune + « Stopping… » — Runyard envoie SIGTERM ou exécute vos commandes d'arrêt personnalisées.
Raccourci
Un raccourci (shortcut) est une liste d'actions à plat sous un en-tête en gras. Aucune gestion de processus, aucun démarrage/arrêt, aucun état. Utilisez-le pour des liens rapides (Grafana, Jira, tableaux de bord internes) ou des scripts ponctuels.
{
"name": "Raccourcis",
"type": "shortcut",
"actions": [
{ "label": "Ouvrir Grafana", "url": "https://grafana.example.com" },
{ "label": "Ouvrir Jira", "url": "https://jira.example.com" }
]
}
Groupe
Un groupe (group) est un sous-menu. Le nom de l'outil devient un élément parent ; le survol déploie un sous-menu contenant les actions propres au groupe ainsi que tous les services et raccourcis imbriqués.
Utilisez un groupe pour regrouper des outils apparentés — par exemple, toutes les composantes d'une même pile applicative.
{
"name": "QA Stack",
"type": "group",
"actions": [
{ "label": "Ouvrir le tableau de bord", "url": "https://qa.example.com" }
],
"tools": [
{ "name": "API Server", "type": "service", "...": "..." },
{ "name": "Liens", "type": "shortcut", "...": "..." }
]
}
Les services imbriqués fonctionnent exactement comme les services de premier niveau — ils ont leur propre indicateur d'état, leur bouton Start/Stop et leurs journaux. Les groupes ne peuvent pas être imbriqués dans d'autres groupes.
Vérification d'état (sonde)
Une sonde (probe) interroge un point d'accès HTTP ou TCP à intervalle fixe et affiche son état en direct dans le menu. Utilisez-la pour surveiller un service tiers, une API interne ou toute autre cible que vous ne gérez pas comme un processus.
Une sonde s'affiche sur une seule ligne avec :
- Une pastille d'état — verte (en bon état), rouge (en échec) ou grise (inconnu / en pause).
- Le nom de la sonde.
- Un bouton pause/reprise (⏸ / ▶) qui suspend ou relance le sondage sans redémarrer Runyard. L'état est conservé entre les rechargements — la pause écrit
autoStart: falsedansconfig.json. - Un sous-menu avec le point d'accès interrogé, l'horodatage et le résultat du dernier contrôle, Check Now pour déclencher un sondage immédiat, et View Logs pour ouvrir le journal de la sonde.
Les sondes n'ont ni Start/Stop ni actions propres. Leur failureThreshold (nombre d'échecs consécutifs avant le passage au rouge) et leur interval se règlent dans Réglages → Tools ou directement dans config.json. Voir Référence config.json → Vérifications d'état pour le schéma complet.
{
"name": "Apple Status",
"type": "probe",
"interval": 60,
"failureThreshold": 2,
"http": { "url": "https://www.apple.com/support/systemstatus/" }
}
Lorsqu'une sonde est en échec, un triangle rouge ⚠︎ apparaît également à côté de l'icône Runyard dans la barre de menus.
Actions
Les actions ajoutent des éléments de menu personnalisés à un outil. Chaque action possède un label et exactement un type :
| Type | Champ | Ce qu'il fait |
|---|---|---|
| Ouvrir URL | url |
Ouvre l'URL dans votre navigateur par défaut. Prend en charge les espaces réservés {{port}}. |
| Exécuter commande | command + args |
Exécute une commande shell (dans le dossier de l'outil par défaut). La sortie est écrite dans un journal d'action. |
| Afficher dans le Finder | reveal |
Ouvre un dossier dans le Finder. Les chemins relatifs partent du directory de l'outil. |
| AppleScript inline | applescript |
Exécute un extrait AppleScript. |
| Fichier AppleScript | applescriptFile |
Exécute un fichier .applescript. |
| Vérification d'état | healthCheck |
Lance une sonde HTTP ou TCP ponctuelle et affiche le résultat sur l'élément de menu pendant ~3 secondes. Voir Référence config.json → Vérifications d'état. |
Espaces réservés de port dans les URL
Les URL d'action peuvent inclure les espaces réservés {{port}} et {{port:Label}} :
{{port}}— remplacé par le port détecté du dernier processus de l'outil (généralement celui qui est utilisé par l'utilisateur).{{port:Backend}}— remplacé par le port détecté d'un processus précis, identifié par son étiquetteBackend.
{ "label": "Ouvrir le frontend", "url": "http://localhost:{{port}}/" }
{ "label": "API Docs", "url": "http://localhost:{{port:Backend}}/swagger" }
Si l'outil n'est pas en cours d'exécution (aucun port encore détecté), l'espace réservé reste inchangé et le lien ne s'ouvre pas.
Contrôler quand les actions apparaissent
Pour les outils de type service, chaque action dispose d'un champ showWhen :
"running"(valeur par défaut) — visible uniquement quand le service est en cours d'exécution."stopped"— visible uniquement quand il est arrêté ou en erreur."always"— visible dans les deux cas.
Cela permet de garder le menu ordonné : placez « Ouvrir dans le navigateur » sous running et « Amorcer la base de données » sous stopped, par exemple.
showWhen est ignoré pour les actions de shortcut et de group — elles sont toujours visibles.
Garder le menu ouvert
Par défaut, cliquer sur un élément du menu le referme. Si vous voulez observer le démarrage d'un outil sans que le menu se ferme, définissez keepMenuOpen: true :
- Sur un outil — s'applique aux boutons Start/Stop.
- Sur une action — s'applique uniquement à cette action.
Le menu reste alors ouvert jusqu'à ce que vous cliquiez ailleurs ou appuyiez sur Échap.
Détection du port
Runyard utilise lsof pour surveiller l'arborescence de PID de chaque processus lancé et relève le premier port TCP sur lequel il commence à écouter. Le port détecté :
- S'affiche à côté du nom de l'outil dans le menu (par exemple
Mon app • :3001). - Est injecté automatiquement dans les URL
startupCheckqui n'incluent pas de port explicite (par exemplehttp://localhost/api/healthdevienthttp://localhost:3001/api/health). - Remplace les espaces réservés
{{port}}dans les URL d'action.
Si votre serveur de développement choisit des ports différents à chaque lancement, vous n'avez rien à faire — Runyard s'adapte.
Repli : si la détection automatique échoue (cas rare — certains outils forkent de manière inhabituelle), définissez startupFallbackPort sur le processus. Runyard l'utilise comme indice.
Start, Stop et Logs
Start
L'action Start effectue :
- L'exécution de
installCommandsi le fichier de marquage (par défaut :node_modules) n'existe pas. - Le lancement de chaque
startCommanddans l'ordre. Les commandes avecwaitFor: "AutreLabel"patientent jusqu'à ce que l'autre processus ait passé sa vérification d'état. - L'interrogation de la vérification d'état (si elle est configurée).
L'outil passe de starting à running une fois tous les processus en bon état.
Stop
L'action Stop :
- Exécute vos
stopCommandspersonnalisés dans l'ordre, puis force la fermeture des processus résiduels. - Ou, si aucun
stopCommandsn'est configuré, envoie SIGTERM → patiente → envoie SIGKILL.
View Logs
Chaque processus écrit dans son propre fichier journal sous ~/Library/Logs/Runyard/. Le sous-menu View Logs répertorie chacun d'eux ; un clic ouvre le fichier dans Console. Consultez Dépannage → Journaux pour la convention complète des chemins.
Éléments de menu globaux
Au bas du menu déroulant :
- Settings… — ouvre la fenêtre Réglages (General, Tools, Advanced, About).
- Edit Configuration — ouvre
config.jsondans votre éditeur par défaut. - Reload Configuration — relit
config.jsonet reconstruit le menu. Les outils en cours d'exécution sont arrêtés au préalable. - Quit Runyard — arrête tous les outils et quitte l'application.