La ligne de commande ros
Tout ce que fait l'application, scriptable. La CLI et l'application
partagent les mêmes données — elles ne peuvent pas diverger. Cette page
montre d'abord les flux les plus utilisés, puis la liste complète des
commandes ; chaque commande et sous-commande répond à
--help.
Espaces de travail & capture
ros init ~/project # créer un espace de travail
ros status # ce qu'il y a ici
ros run "python train.py --lr 0.05" -n baseline -p lr=0.05 -s 42 -t demo
ros list-runs # le tableau des runs
ros show <run-id> # tout sur un run
ros diff <run-a> <run-b> # ce qui a changé entre deux runs
ros trace <run-id> # provenance d'un run
ros pack <run-id> # pack de repro rejouable
ros replay <pack.zip> # ré-exécuter un pack dans un environnement neuf
ros flow pipeline.yaml # runs multi-étapes, liés
ros run --notebook analysis.ipynb -p lr=0.05 # Jupyter, sans interface + capturé
--notebook exécute le notebook via le Jupyter de votre
propre environnement (papermill, s'il est installé, injecte réellement
les paramètres -p) ; la copie exécutée — sorties
comprises — devient un artefact du run. Dans un notebook interactif,
%load_ext researchos.jupyter fournit la magie de cellule
%%ros : la cellule s'exécute normalement et est
enregistrée comme un run (source archivée, paramètres depuis la ligne
de magie, métriques via ros_log(acc=0.93)) — elle capture
ce que la cellule a fait, pas un pipeline rejouable ; utilisez
--notebook pour cela. La magie nécessite le paquet Python
researchos importable dans le noyau.
Les runs passent automatiquement par l'environnement de votre
projet : un .venv de l'espace de travail, un
environment.yml (conda run), un
uv.lock ou un poetry.lock est détecté — pour
la CLI, l'application et les runs à distance de la même façon
(ROS_NO_VENV=1 désactive) — et la capture enregistre
l'interpréteur que la commande résout réellement, pas celui du démon.
Les commandes non Python sont capturées aussi : les versions de R, de
Julia et de Node sont enregistrées quand la commande ou les lockfiles
de l'espace de travail les désignent.
Connaissances
ros note new "Title" --log --mood 4 --time 90 # entrée de carnet de bord
ros note seal <note-id> # sceau infalsifiable
ros note verify # vérifier toute la chaîne
ros note timestamp <note-id> # ancrage RFC 3161 d'une entrée scellée
ros note probative <note-id> # dossier de preuve autonome
ros bib add 1706.03762 # import arXiv/DOI avec PDF
ros bib import-zotero --path ~/Zotero
ros paper new "Title" && ros paper insert-cite vaswani2017
ros paper check # les figures correspondent-elles toujours à leurs runs ?
ros paper export --pdf
Des figures pour votre article (LaTeX, Word…)
ros assets follow baseline loss.png --as fig-loss.png # suit le dernier run 'baseline'
ros assets add <artifact-id> --as fig3-frozen.png # ou épingle un artefact précis
ros assets export # → paper-assets/ + provenance.{json,md,tex}
ros assets list # les correspondances (dans ros-assets.json)
Votre document inclut les fichiers de paper-assets/
sous leurs noms stables ; relancez l'expérience, exportez, recompilez —
la figure se met à jour sur place. provenance.tex et
.md contiennent le tableau figure-vers-run (identifiant du
run, paramètres, date), prêt à coller en annexe. Fonctionne avec
n'importe quel éditeur — LaTeX, Word, LibreOffice, Beamer — puisque ce
n'est qu'un dossier de fichiers.
Des diapositives pour votre prochaine réunion
ros slides # slides.md (Marp) sur les 14 derniers jours
ros slides --pinned --format beamer -o deck.tex
ros slides --runs run_a,run_b # exactement ces runs
Une diapositive par run — titre, paramètres, résultats, figures, identifiant — plus un tableau de provenance final : chaque affirmation du diaporama reste à un pas de sa preuve. Les diaporamas Markdown se rendent avec Marp (ou tout outil Markdown-vers-diapositives) ; Beamer se compile avec votre chaîne LaTeX habituelle. Disponible aussi depuis l'écran Article de l'application.
Traces & rapports
ros timeline --project aim2 # toute la chronologie, fusionnée
ros report --from 2026-07-01 # brouillon de rapport d'avancement pour une réunion
ros transmission -o handover.zip # transmission complète du projet, formats ouverts
Planification
ros todo add "Write results" --due 2026-08-02 --priority
ros todo add "Backup" --every weekly
ros agenda list # les 14 prochains jours
ros agenda export-ics # vers n'importe quelle app de calendrier
ros overview # tous les espaces de travail à la fois
Synchronisation & compte
# Serveur bêta : https://sync-dev.tramea.org (code d'invitation requis)
ros account register you@lab.org --server https://sync-dev.tramea.org --invite <code>
ros account login you@lab.org --server https://sync-dev.tramea.org
ros account recover you@lab.org --server … # réinitialisation par code de récupération
ros account passphrase # renouveler phrase secrète + code de récupération
ros sync enable # cet espace de travail ⇄ le serveur
ros sync now # un cycle push-pull-blobs
ros sync status # état de synchronisation de cet espace
Sur un second ordinateur, connectez-vous avec le même compte, puis recréez n'importe quel espace synchronisé avec tout son historique :
ros sync spaces # ce qu'il y a sur votre compte
ros sync join my-project -p ~/my-project
Fichiers du projet & runs à distance
ros sync files on # scripts et données voyagent en blobs chiffrés
ros sync files status # ce qui est synchronisé, ce qui est exclu
ros sync remote-exec on # autoriser CETTE machine à exécuter les runs en file
ros run --remote "python train.py --lr 0.07" # mettre en file depuis un autre ordinateur
La synchronisation des fichiers du projet transporte les fichiers de
travail jusqu'à 50 Mo chacun par défaut, respecte un fichier
.rosignore, et exclut toujours .git.
ros run --remote met le run en file sur une machine
exécutrice du même espace synchronisé ; les résultats reviennent comme
un run ordinaire. Détails dans
Synchronisation & sécurité.
Espaces partagés & partage
ros lab create thesis-duo # un espace partagé (Duo), jusqu'à 3 personnes
ros lab invite colleague@lab.org # sceller la clé de l'espace vers ses appareils
ros publish <element-id> --to thesis-duo # partager UN SEUL élément
ros share colleague@lab.org # partager tout un espace de travail
ros invites list # les invitations qui vous attendent
Labs : annuaire, conversations, gouvernance
Un labo complet — des équipes, un annuaire des membres, une
gouvernance — est la couche d'organisation de l'offre Lab, mise en
place à l'intégration. À l'intérieur, le groupe ros lab
s'enrichit d'un outillage d'organisation :
ros lab directory # équipes, personnes et espaces d'équipe
ros lab profile --interests "…" # profil d'expertise opt-in, rédigé à la main
ros lab search diffusion # trouver des collègues par ce qu'ils ont publié
ros lab dm colleague@lab.org "…" # message direct E2EE (fil créé au premier usage)
ros lab conversations # vos MD et discussions de groupe sur cette machine
ros lab messages <space-id> # lire un fil
ros lab team-space NAME --team <id> # espace d'équipe de l'organisation (resp./admin)
ros lab project-space NAME # espace projet inter-équipes (tout membre)
ros lab team-invite colleague@lab.org --team <id> # tous les espaces d'équipe d'un coup
ros lab publish-report # publier votre rapport d'avancement dans l'espace
ros lab overview # admins : vue d'ensemble de l'activité — métadonnées seules
ros lab org-audit # admins : piste d'audit à l'échelle de l'organisation
ros lab announce-sync # inviter les membres absents des annonces
Les invitations de conversation sont acceptées automatiquement par
le démon du destinataire — écrire à un collègue fonctionne
immédiatement, sans étape d'acceptation. Hors d'un labo,
ros lab dm atteint toute personne avec qui vous partagez
déjà un espace (le serveur l'impose). Les messages sont chiffrés de
bout en bout comme tout le reste ; la vue d'ensemble et l'audit des
admins ne voient que des métadonnées.
Le démon, l'API et l'interface web
ros api --daemon # démon d'arrière-plan : API REST, sync, runs à distance
ros api --status # tourne-t-il ?
ros api --stop
ros ui # interface web rendue côté serveur, dans votre navigateur
L'application de bureau parle au démon ; les paquets installés le
démarrent à l'ouverture de session sur Linux et Windows. L'API n'écoute
qu'en boucle locale et est protégée par un jeton bearer — documentation
interactive sur http://127.0.0.1:<port>/v1/docs.
L'assistant (optionnel)
ros ask --provider anthropic --set-key sk-… # votre propre clé API
ros ask "what did I try last week?" # l'IA sur votre espace de travail
ros ask --provider hosted "which run had the best F1?" # crédits de l'offre
Trois façons de l'alimenter : votre propre clé avec
Anthropic (Claude), OpenAI (GPT), Google (Gemini) ou Mistral — une clé
par fournisseur, stockée sur votre machine, les requêtes vont
directement au fournisseur ; hosted —
les crédits inclus dans votre offre (10 questions par mois pendant la
bêta), relayés par votre serveur de synchronisation au fournisseur du
modèle puis oubliés, jamais stockés ; ou
lab — le modèle de votre labo, si votre
labo en a configuré un, pour que les requêtes ne quittent jamais le
réseau du labo. Les éléments que vous verrouillez restent invisibles à
tous les trois (ros ask --set-default locked rend chaque
élément opt-in).
Porte de sortie
ros export --all # archive en clair de tout
Toutes les commandes de premier niveau
Une ligne chacune, telles qu'affichées par ros --help
(v0.12.0). Les groupes listent leurs sous-commandes avec
ros <commande> --help.
| Commande | Ce qu'elle fait |
|---|---|
account | Gérer votre compte sur le serveur de synchronisation (auto-hébergé, chiffré de bout en bout). |
agenda | Gérer les événements du calendrier (échéances, réunions, jalons). |
api | Servir l'API REST locale (http://127.0.0.1:<port>/v1). |
archive | Archiver (suppression douce) un run pour le masquer de list-runs. |
ask | Poser une question ancrée dans les runs, le carnet et les notes de cet espace de travail. |
assets | Exporter les artefacts de runs vers un dossier stable inclus par votre article. |
bib | Gérer les références bibliographiques. |
compare | Comparer N runs côte à côte : métadonnées, paramètres et métriques. |
dataset | Suivre les versions des jeux de données par hachage de contenu. |
diff | Comparer deux runs (paramètres, git, artefacts). |
digest | Générer un résumé hebdomadaire de l'activité de l'espace de travail. |
export | Exporter les données de runs en CSV, JSON ou Markdown — ou tout, avec --all. |
flow | Exécuter un pipeline multi-étapes défini dans un fichier YAML. |
init | Initialiser un espace de travail ResearchOS. |
invites | Lister et accepter les invitations d'espaces de travail envoyées par des collègues. |
lab | Espaces partagés et labs. |
list-runs | Lister les runs récents. |
log | Afficher les logs stdout/stderr d'un run. |
metrics | Consulter et enregistrer les métriques des runs. |
note | Gérer les notes liées aux runs, artefacts ou références. |
overview | Agenda et tâches unifiés sur tous les espaces de travail enregistrés. |
pack | Créer un pack de repro rejouable pour un run. |
paper | Gérer les articles de recherche et l'écriture. |
pin | Épingler (ou désépingler) un run pour le mettre en avant dans les listes. |
project | Gérer l'état du projet : objectifs, hypothèses, TODOs, décisions. |
publish | Publier un élément (id de note/log, id de run, citekey, id de dataset) dans un autre espace de travail. |
replay | Rejouer un pack de repro dans un environnement neuf. |
report | Brouillon de rapport d'avancement pour une période (réunions d'avancement). |
run | Exécuter une commande (ou un notebook) et capturer tout son contexte. |
search | Recherche plein texte dans les runs, notes et références. |
share | Partager cet espace de travail avec un collègue (par email de compte). |
show | Afficher les informations détaillées d'un run. |
slides | Générer un squelette de diaporama depuis des runs récents (ou choisis). |
status | Afficher la vue d'ensemble et les statistiques de l'espace de travail. |
sync | Synchroniser cet espace de travail entre appareils (chiffré de bout en bout). |
tag | Ajouter (ou retirer) des étiquettes sur un run. |
timeline | Chronologie fusionnée de tout : runs, carnet de bord, notes, tâches, références. |
today | Afficher l'activité du jour depuis le journal d'événements. |
todo | Gérer les listes de tâches et leurs éléments. |
trace | Afficher la chaîne de provenance complète d'un run. |
transmission | Paquet de transmission : carnet de bord, notes, runs + interprétations, bibliothèque, boussole et chronologie en un seul zip aux formats ouverts. |
ui | Lancer l'interface web ResearchOS. |