Aller au contenu
Documentation : Installer avec rmk

Installer avec rmk

Comment les éléments arrivent dans vos outils d'IA, et comment les garder à jour.

La documentation fournie avec Ronne AI Marketplace 0.3.0, traduite de l'anglais.

Ce que fait rmk

rmk est l'outil en ligne de commande de Ronne AI Marketplace. Il installe des éléments de ce marketplace dans un projet, ou dans votre dossier personnel, en écrivant les fichiers propres à chaque outil d'IA, et les garde à jour. L'onglet Overview de chaque élément affiche ses commandes, avec un --target rapide pour chaque outil où il fonctionne :

rmk install @platform/secure-coding
rmk install @platform/[email protected]

Il note ce qu'il a installé dans un fichier de verrouillage, pour que tout le monde sur le projet obtienne les mêmes versions, et il n'écrase jamais un fichier ou un réglage que vous avez écrit vous-même. Rien de ce que contient un élément ne s'exécute à l'installation : les hooks et les scripts sont écrits, pas exécutés.

rmk --help liste toutes les commandes, et --json fait répondre n'importe laquelle par un seul objet JSON, pour les scripts et les agents.

Il fonctionne aussi dans l'autre sens : rmk export envoie à ce marketplace, sous forme de brouillon, un élément que vous avez écrit dans votre outil d'IA. Exporter vos propres éléments.

Obtenir rmk

rmk est sur npm sous le nom @ronneai/rmk (le nom sans portée était déjà pris; la commande reste rmk). Il faut Node.js 22.12 ou plus récent :

npm install --global @ronneai/rmk
rmk --version

npm update --global @ronneai/rmk obtient une version plus récente. Si vous l'aviez compilé à partir d'une copie du dépôt et lié, supprimez d'abord ce lien (npm unlink --global @ronneai/rmk), pour que le rmk que vous lancez soit celui installé par npm. Les contributeurs peuvent toujours le lancer depuis une copie du dépôt : après pnpm install et pnpm build, c'est node packages/cli/dist/bin.js.

Se connecter

rmk login --registry https://ronne.example

Il demande votre courriel et votre mot de passe, et enregistre un jeton pour ce registre dans ~/.config/rmk/config.json, lisible par vous seul. Avec un jeton créé sous Access tokens, ou en CI, utilisez rmk login --token rmk_…, ou définissez RMK_TOKEN et RMK_REGISTRY. RMK_TOKEN n'est envoyé qu'à un registre que vous avez choisi (RMK_REGISTRY, --registry, votre registre par défaut, ou un registre auquel vous vous êtes connecté), jamais à un registre que seuls le rmk.config.json ou le rmk.lock d'un projet désignent : rmk s'arrête alors avec token_withheld. rmk whoami indique qui vous êtes, sur quel registre, et pourquoi celui-là; rmk logout révoque le jeton.

Vous pouvez être connecté à plusieurs registres à la fois. Chaque commande utilise le premier qu'elle trouve :

  1. --registry sur la ligne de commande;
  2. RMK_REGISTRY;
  3. celui du projet : registry dans rmk.config.json, sinon dans rmk.lock. rmk install l'y inscrit, pour qu'un projet garde son registre et que vos coéquipiers l'utilisent aussi;
  4. votre registre par défaut : celui auquel vous vous êtes connecté en dernier avec --registry.

Pour faire passer un projet à un autre registre, lancez rmk install --registry <url> : la commande met à jour les deux fichiers.

Le jeton ne circule qu'en https, sauf vers localhost.

Installer

rmk install @platform/code-reviewer          # latest
rmk install @platform/code-reviewer@^1.4.0   # a range
rmk install @platform/code-reviewer@next     # a tag
rmk install                                  # exactly the lockfile
  1. Cible. Quels outils d'IA : --target claude-code, codex, cursor, plusieurs (claude-code,cursor), les targets de rmk.config.json, ou ceux que le projet semble utiliser. rmk platforms liste les outils et ce que chacun prend en charge; un type qu'un outil ne peut pas recevoir donne un avertissement, et le reste se poursuit.
  2. Résoudre. Le registre choisit une version de chaque élément, dépendances comprises, comme l'explique Dépendances.
  3. Télécharger et vérifier. La somme de contrôle de chaque paquet est vérifiée avant que rien ne soit écrit; une différence arrête l'installation. Une version déjà présente dans rmk.lock doit aussi avoir la somme de contrôle qui y est enregistrée, car une version publiée ne change jamais : si le registre fournit d'autres octets pour cette version, rmk s'arrête (checksum_mismatch). Pour les accepter quand même, retirez l'élément de rmk.lock (avec --scope user, ~/.config/rmk/user.lock).
  4. Écrire. Les fichiers que chaque outil lit, puis le fichier de verrouillage et le fichier d'état. Les versions dépréciées affichent leur message, et les serveurs MCP listent les variables d'environnement qu'il vous reste à définir.

rmk install sans rien après installe exactement ce que contient le fichier de verrouillage, pour qu'un coéquipier obtienne les mêmes fichiers. --scope user installe dans votre dossier personnel au lieu du projet.

Garder les éléments à jour

rmk outdated
rmk update                    # everything, within its ranges
rmk update @platform/code-reviewer
rmk remove @platform/code-reviewer
  • rmk outdated affiche, pour chaque élément que vous avez demandé, la version verrouillée, la plus récente que permet sa plage, et la plus récente publiée.
  • rmk update fait passer les éléments à la version la plus récente que permettent leurs plages, et réécrit leurs fichiers. Les éléments que vous ne nommez pas restent où ils sont.
  • rmk remove supprime les fichiers et les réglages d'un élément, et ceux de toute dépendance dont rien d'autre n'a besoin.
  • rmk list affiche ce que le projet demande; rmk list --installed, ce que contient le fichier de verrouillage.

Les fichiers qu'il écrit

FichierCe qu'il contientÀ versionner?
rmk.config.jsonCe que vous avez demandé : chaque élément avec sa plage ou son étiquette, les cibles et le registre.Oui
rmk.lockCe qui a été résolu : une version et une somme de contrôle par élément.Oui
.rmk/state.jsonChaque fichier et réglage que rmk a écrit, avec un hachage, pour pouvoir mettre à jour ou supprimer exactement ceux-là.Oui : le rmk d'un coéquipier en a besoin pour savoir ce qui lui appartient.
~/.config/rmk/Votre jeton, ainsi que le fichier de verrouillage et l'état des installations dans le dossier personnel.Non

Les téléchargements sont mis en cache sous ~/.cache/rmk/, par somme de contrôle.

Vos propres modifications

Chaque fichier que rmk écrit porte une marque managed by rmk, et chaque réglage qu'il ajoute est suivi dans le fichier d'état. Avant d'en modifier ou d'en supprimer un, il vérifie que le fichier ou le réglage est toujours celui qu'il a écrit.

  • Un fichier ou un réglage que rmk n'a pas écrit n'est jamais touché. Si une installation a besoin de sa place, c'est un conflit : rmk s'arrête, les liste et quitte avec le code 3.
  • Un fichier ou un réglage que vous avez modifié depuis que rmk l'a écrit est aussi un conflit, à la mise à jour comme à la suppression.
  • --force les remplace; sinon, déplacez-les ailleurs et relancez.
  • Un fichier ou un réglage que vous avez supprimé est considéré comme retiré exprès : rmk l'oublie, et ne l'écrit de nouveau que lorsque vous installez ou mettez à jour.

Pour renvoyer vos modifications vers l'élément, lancez rmk export : une installation modifiée devient une proposition de changement pour la version que vous avez installée.

Les jetons et l'API

rmk et le serveur MCP du registre lisent le registre par son API, avec un jeton d'accès personnel. Vous en créez un sous Access tokens dans votre compte, ou rmk login en crée un pour vous. Un jeton agit comme vous : il peut lire tout ce qui est publié, chercher et télécharger des éléments, et il peut créer des brouillons en votre nom. Il ne peut pas se connecter à ce site web, et vous pouvez le révoquer en tout temps.

curl -H 'Authorization: Bearer rmk_…' \
  https://ronne.example/api/v1/items?q=security

Chaque téléchargement d'un élément, comme celui que fait rmk install, compte comme une installation. Chaque carte du catalogue et de la page d'accueil affiche ce décompte, la page d'accueil classe Most used selon celui-ci, et le Sort du catalogue peut mettre les plus installés en premier. Rien n'est conservé sur qui l'a installé.

Un brouillon créé avec un jeton (POST /api/v1/drafts, avec ses fichiers) est comme un brouillon que vous commencez ici : vous seul le voyez, sous Submissions, et rien n'arrive à un réviseur tant que vous ne l'avez pas soumis. Un jeton peut créer des brouillons tant que vous en avez moins de 50 (soumettez-en ou supprimez-en pour faire de la place), et mettre à jour vos propres brouillons (PUT /api/v1/drafts/…), au plus 30 téléversements en 10 minutes. Il peut aussi soumettre vos brouillons à la revue (rmk submit), que les réviseurs voient alors. Chaque téléversement et chaque soumission est inscrit au journal d'audit avec le nom du jeton et celui du brouillon, que root peut lire; ses fichiers, non.

Le serveur MCP du registre, rmk-mcp, utilise le jeton que rmk login a enregistré, ou RMK_TOKEN : il peut faire ce que le jeton peut faire, et ne l'affiche jamais.

Vos outils d'IA

rmk écrit pour un outil d'IA ou plusieurs. Chaque outil a sa propre page : où va chaque type d'élément, et ce qu'il faut savoir avant que l'outil l'utilise.

OutilCibleDétecté quand le projet contient
Claude Codeclaude-code.claude/ ou CLAUDE.md
Codexcodex.codex/
Cursorcursor.cursor/

Si un seul outil est détecté, rmk l'utilise; s'il y en a plusieurs, il demande lequel, ou vous l'indiquez avec --target. --target claude-code,codex écrit pour les deux, et un fichier que deux outils lisent est écrit une seule fois et noté pour les deux. rmk platforms liste tous les outils et ce que chacun prend en charge.

Avant que vous installiez, la page d'un élément indique, dans son onglet Works in, vers lesquels de ces outils il va, et où : pris en charge, en partie, désactivé par le ronne.yaml de l'élément lui-même, ou ignoré. Les Filters du catalogue (Works in) listent les éléments qu'un outil accepte, tout comme rmk search <query> --target codex, et rmk info affiche le niveau de chaque outil pour une version.

Depuis votre outil d'IA

Vous pouvez aussi demander à votre outil d'IA de chercher et d'installer des éléments, par le serveur MCP du registre, rmk-mcp : il vous montre d'abord un plan, puis écrit exactement ce plan, comme le ferait rmk. Il peut exporter de la même façon, sous forme de brouillon, un élément que vous avez écrit. Serveur MCP du registre explique comment le configurer et ce qu'il peut faire.

Sous forme de plugins

Claude Code peut aussi installer lui-même les éléments de ce marketplace, sous forme de plugins, depuis /plugin. Deux commandes mettent cela en place :

  • rmk plugin-setup claude-code ajoute ce marketplace aux réglages de Claude Code (--scope project pour ceux du projet, --remove pour le retirer). Comme pour tout réglage que rmk écrit, il ne remplace jamais une entrée que vous avez créée ou modifiée.
  • rmk auth headers affiche votre jeton sous forme d'en-tête Authorization, et rien d'autre. Claude Code l'exécute pour lire le marketplace; vous n'avez pas à le faire.

Pour Codex et Cursor, qui n'ajoutent des marketplaces qu'à partir de dépôts git, rmk feed build --out <folder> écrit les plugins de ce marketplace sous forme de dépôt, à versionner et à pousser, et --print-workflow github ou gitlab affiche un fichier de CI qui le garde à jour.

Marketplaces de plugins explique tout cela, et quand utiliser des plugins plutôt que rmk install.

Signalement de l'utilisation

Quand l'instance recueille des données d'utilisation, rmk lui envoie des décomptes quotidiens des installations, des désinstallations et des exécutions des éléments qu'il a installés, et le signale la première fois. rmk telemetry status affiche la politique de chaque instance, et rmk telemetry off arrête l'envoi là où les gens peuvent choisir. Données d'utilisation indique exactement ce qui est envoyé.