marimo

marimo

marimo team · Programmation

marimo est un notebook Python réactif, gratuit et open source pour les data scientists et les développeurs qui veulent du code reproductible, des fichiers compatibles Git et des applications à partager.

Aperçu de l'interface de marimo

À propos de marimo

Qu'est-ce que marimo

marimo est un notebook Python open source construit autour d'une idée : votre code et ses résultats ne devraient jamais se contredire. Au lieu de suivre quelles cellules vous avez exécutées et dans quel ordre, marimo exécute automatiquement les cellules dépendantes dès que vous modifiez une valeur ailleurs dans le notebook. Il supprime ainsi l'état caché qui rend les notebooks classiques difficiles à croire et encore plus difficiles à transmettre à un collègue.

Il enregistre chaque notebook comme un simple fichier .py, le contrôle de version fonctionne donc comme pour le reste de votre code. Vous pouvez exécuter ce même fichier comme script, l'ouvrir comme application web interactive ou le lancer dans le navigateur via WebAssembly, sans aucun serveur. Une option hébergée gratuite, molab, permet de l'essayer en ligne.

Le hic ? L'exécution réactive fait tourner une cellule coûteuse à chaque petite modification, les flux de travail lourds demandent donc de la prudence. Vous pouvez marquer les cellules lentes comme obsolètes plutôt que de les exécuter automatiquement, mais c'est un réglage auquel il faut penser. marimo cloud est encore en bêta fermée : les équipes qui veulent un hébergement entièrement géré sans gérer leurs propres serveurs doivent attendre son ouverture ou monter l'infrastructure elles-mêmes.

Pour commencer

  1. Installez le paquet avec pip (pip install marimo), uv ou conda, ou évitez toute installation et ouvrez un notebook dans molab, la version en ligne gratuite.
  2. Lancez marimo edit dans votre terminal pour ouvrir l'éditeur et créer un nouveau notebook.
  3. Écrivez du Python dans une cellule. Quand vous l'exécutez, marimo exécute automatiquement les cellules qui dépendent de ses variables.
  4. Ajoutez de l'interactivité en reliant curseurs, tableaux ou graphiques à des variables Python. Aucune fonction de rappel n'est nécessaire.
  5. Enregistrez votre travail dans un fichier .py, puis exécutez-le comme script ou déployez-le comme application web quand vous voulez le partager.

Informations sur le produit

Aperçu des tarifs, des plateformes compatibles et des performances de marimo.

Offre gratuiteOui
Offres payantes$0
PlateformeWeb, Linux, macOS, Windows
Développeurmarimo team
CatégorieProgrammation
Date de lancementJun 2020
Dernière mise à jourOct 2025
Visites du site144.2K
Classement mondial du site286.2K
Disponibilité de l’APIN/A

Idéal pour

Les utilisateurs, tâches et cas d'usage où cet outil convient le mieux.

Utilisateurs

  • Data scientists
  • Développeurs
  • Enseignants

Tâches

  • Explorer des jeux de données et créer des graphiques
  • Écrire du SQL sur des dataframes et des entrepôts de données
  • Transformer un notebook en petit outil interne

Cas d'usage

  • Reproduire l'entraînement d'un modèle des mois plus tard et obtenir les mêmes chiffres.
  • Partager un rapport interactif où le relecteur fait glisser un curseur au lieu de lire une sortie figée.
  • Prototyper un tableau de bord dans le navigateur sans backend, grâce à WebAssembly.

Fonctionnalités clés

Exécution réactive

C'est la fonctionnalité qui définit marimo. Vous exécutez une cellule et toutes celles qui en dépendent se réexécutent, le notebook ne peut donc pas tomber dans l'état obsolète et désordonné qui perturbe les utilisateurs de Jupyter. Si une cellule est coûteuse, vous pouvez demander à marimo de marquer les cellules dépendantes comme obsolètes plutôt que de les réexécuter. Résultat : un notebook dont les sorties correspondent toujours au code placé au-dessus.

Stockage en fichier Python pur

Chaque notebook marimo est enregistré comme fichier .py, pas comme JSON. Les diffs sont donc lisibles, les conflits de fusion gérables, et votre notebook vit aux côtés du reste de votre projet dans Git. Vous pouvez importer des fonctions d'un notebook dans un autre, ce qui transforme les notebooks en modules réutilisables plutôt qu'en documents isolés.

Interactivité intégrée

Vous reliez les éléments d'interface directement à des variables Python. Un curseur n'est pas câblé via des fonctions de rappel : il lit et écrit simplement une valeur, et marimo s'occupe du reste. Tableaux, graphiques et formulaires fonctionnent de la même façon, ce qui rend plus simple, et non plus difficile, la transformation d'une analyse en petite application.

Prise en charge de SQL

marimo prend en charge nativement SQL aux côtés de Python. Vous pouvez interroger des dataframes, des bases de données, des entrepôts de données et des lacs de données sans quitter le notebook, et mélanger les résultats avec votre travail en Python. C'est un vrai confort si votre analyse vit moitié dans pandas, moitié dans un entrepôt.

Exécution comme script ou application

Le même fichier peut être exécuté comme script Python, paramétré par des arguments en ligne de commande, ou déployé comme application web interactive ou diaporama. Aucune étape d'export séparée, aucune réécriture. Un fichier, trois façons de l'utiliser.

Exécution dans le navigateur via WebAssembly

marimo peut tourner entièrement dans le navigateur via WebAssembly, sans serveur. Cela abaisse la barrière pour partager un notebook avec quelqu'un qui ne veut rien installer. C'est aussi ce qui permet à l'option gratuite molab de vous lancer en quelques secondes.

Flux de travail pensés pour l'IA

marimo a été conçu en pensant aux outils d'IA. Vous pouvez associer le notebook à des agents de codage IA comme Claude Code, ou utiliser les fonctions d'IA intégrées de l'éditeur pour la complétion et l'assistance pendant la rédaction. Le modèle réactif aide aussi ici, car les modifications automatiques ne peuvent pas laisser de dépendances cachées.

Avantages et inconvénients

Avantages

  • L'exécution réactive supprime l'état caché, les sorties correspondent donc toujours au code visible.
  • Stocker les notebooks en fichiers `.py` simplifie le contrôle de version et la revue de code.
  • Un seul fichier s'exécute comme script, application web ou dans le navigateur, ce qui réduit le travail d'export.
  • Gratuit et open source sous licence permissive, sans fonctionnalité payante verrouillée.

Inconvénients

  • Les réexécutions réactives peuvent coûter cher sur de grands jeux de données et vous obligent à gérer quelles cellules deviennent obsolètes.
  • Les plugins et tutoriels tiers sont moins nombreux que dans la bibliothèque de plugins mature de Jupyter.
  • marimo cloud est encore en bêta fermée, l'hébergement géré n'est donc pas encore accessible à tout le monde.

Questions fréquentes

marimo est un notebook Python réactif pour l'analyse de données, l'entraînement de modèles et les requêtes SQL. Il s'adresse à ceux qui veulent des résultats reproductibles et des fichiers compatibles Git plutôt que l'état caché que permettent les notebooks classiques.