marimo

marimo

marimo team · Programação

O marimo é um notebook Python reativo, gratuito e de código aberto para cientistas de dados e desenvolvedores que querem código reproduzível, arquivos compatíveis com o Git e apps para compartilhar.

Prévia da interface de marimo

Sobre marimo

O que é o marimo

O marimo é um notebook Python de código aberto construído em torno de uma ideia: o seu código e os resultados dele nunca deveriam discordar. Em vez de acompanhar quais células você executou e em que ordem, o marimo roda as células dependentes de forma automática sempre que você muda um valor em outra parte do notebook. Assim, ele elimina o estado oculto que torna os notebooks tradicionais difíceis de confiar e ainda mais difíceis de passar para um colega de equipe.

Ele guarda cada notebook como um arquivo .py comum, então o controle de versão funciona como no resto do seu código. Você pode rodar esse mesmo arquivo como script, abri-lo como app web interativo ou carregá-lo no navegador via WebAssembly, sem servidor nenhum. Também existe uma opção hospedada gratuita, o molab, para testar online.

O problema? A execução reativa faz uma célula pesada rodar de novo a cada pequena mudança, então fluxos de trabalho exigentes pedem cuidado. Você pode marcar as células lentas como desatualizadas em vez de executá-las automaticamente, mas essa é uma configuração sobre a qual precisa pensar. O marimo cloud ainda está em beta fechado, o que significa que equipes que querem hospedagem totalmente gerenciada sem manter os próprios servidores precisam esperar a abertura ou montar a infraestrutura por conta própria.

Primeiros passos

  1. Instale o pacote com pip (pip install marimo), uv ou conda, ou pule as instalações e abra um notebook no molab, a versão online gratuita.
  2. Rode marimo edit no terminal para abrir o editor e criar um notebook novo.
  3. Escreva Python em uma célula. Ao executá-la, o marimo roda automaticamente as células que dependem das variáveis dela.
  4. Adicione interatividade ligando controles deslizantes, tabelas ou gráficos a variáveis Python. Não são necessárias funções de callback.
  5. Salve o trabalho como arquivo .py e depois rode como script ou publique como app web quando quiser compartilhar.

Informações do produto

Uma visão rápida dos preços, das plataformas compatíveis e do desempenho de marimo.

Plano gratuitoSim
Planos pagos$0
PlataformaWeb, Linux, macOS, Windows
Desenvolvedormarimo team
CategoriaProgramação
Data de lançamentoJun 2020
Última atualizaçãoOct 2025
Visitas ao site144.2K
Ranking global do site286.2K
Disponibilidade da APIN/A

Ideal para

Os usuários, tarefas e cenários em que esta ferramenta se encaixa melhor.

Usuários

  • Cientistas de dados
  • Desenvolvedores
  • Educadores

Tarefas

  • Explorar conjuntos de dados e montar gráficos
  • Escrever SQL sobre dataframes e armazéns de dados
  • Transformar um notebook em uma pequena ferramenta interna

Cenários

  • Reproduzir o treino de um modelo meses depois e obter os mesmos números.
  • Compartilhar um relatório interativo em que quem revisa arrasta um controle deslizante em vez de ler uma saída estática.
  • Prototipar um painel no navegador sem montar backend, graças ao WebAssembly.

Principais recursos

Execução reativa

Este é o recurso que define o marimo. Você executa uma célula e todas as que dependem dela rodam de novo, então o notebook não cai no estado desatualizado e fora de ordem que confunde os usuários do Jupyter. Se uma célula for pesada, você pode dizer ao marimo para marcar as dependentes como desatualizadas em vez de reexecutá-las. O resultado é um notebook cujas saídas sempre batem com o código acima delas.

Armazenamento em arquivo Python puro

Cada notebook do marimo é salvo como arquivo .py, não como JSON. Isso significa que os diffs são legíveis, os conflitos de merge são administráveis e o seu notebook convive com o resto do projeto no Git. Você pode importar funções de um notebook para outro, o que transforma os notebooks em módulos reutilizáveis em vez de documentos isolados.

Interatividade integrada

Você liga elementos de interface direto a variáveis Python. Um controle deslizante não é conectado por callbacks: ele só lê e escreve um valor, e o marimo cuida do resto. Tabelas, gráficos e formulários funcionam do mesmo jeito, o que torna mais fácil, e não mais difícil, transformar uma análise em um pequeno app.

Suporte a SQL

O marimo tem suporte nativo a SQL ao lado do Python. Você pode consultar dataframes, bancos de dados, armazéns de dados e lakehouses sem sair do notebook, e misturar os resultados com o seu trabalho em Python. É uma conveniência real se a sua análise vive metade no pandas e metade em um armazém de dados.

Rodar como script ou app

O mesmo arquivo pode ser executado como script Python, parametrizado por argumentos de linha de comando, ou publicado como app web interativo ou apresentação de slides. Não existe uma etapa separada de exportação nem reescrita. Um arquivo, três formas de usar.

Execução no navegador via WebAssembly

O marimo pode rodar inteiro no navegador via WebAssembly, sem servidor. Isso baixa a barreira para compartilhar um notebook com alguém que não quer instalar nada. Também é assim que a opção gratuita molab coloca você rodando em segundos.

Fluxos de trabalho nativos de IA

O marimo foi projetado pensando em ferramentas de IA. Você pode parear o notebook com agentes de programação com IA como o Claude Code, ou usar os recursos de IA integrados do editor para completar e ajudar enquanto escreve. O modelo reativo também ajuda aqui, porque edições automáticas não podem deixar dependências ocultas para trás.

Prós e contras

Prós

  • A execução reativa elimina o estado oculto, então as saídas sempre batem com o código que você vê.
  • Salvar os notebooks como arquivos `.py` deixa o controle de versão e a revisão de código diretos.
  • Um único arquivo roda como script, app web ou no navegador, o que reduz o trabalho de exportação.
  • É gratuito e de código aberto sob licença permissiva, sem paywall de recursos.

Contras

  • As reexecuções reativas podem ficar caras em conjuntos de dados grandes e obrigam você a administrar quais células ficam desatualizadas.
  • Existem menos plugins e tutoriais de terceiros do que na madura biblioteca de plugins do Jupyter.
  • O marimo cloud ainda está em beta fechado, então a hospedagem gerenciada ainda não está ao alcance de todos.

Perguntas frequentes

O marimo é um notebook Python reativo para análise de dados, treino de modelos e consultas SQL. Ele é voltado a quem quer resultados reproduzíveis e arquivos compatíveis com o Git em vez do estado oculto que os notebooks tradicionais permitem.

Conteúdo relacionado

Explore ferramentas, skills e artigos relacionados a marimo.

Alternativas a marimo

Forefront

Forefront

Forefront · Programação

O Forefront é uma plataforma web para construir com IA de código aberto. Você ajusta os principais modelos de linguagem de código aberto com seus próprios dados, avalia o desempenho deles e os roda por uma API ou os exporta para hospedar por conta própria. Desenvolvedores que querem a conveniência de uma plataforma fechada, mas fazem questão de ser donos dos modelos e dos dados, são o público-alvo aqui.

Grátis / $0 - $99/moVer detalhes
Startkit

Startkit

StartKit.AI · Programação

Startkit é um boilerplate para criar produtos de SaaS com IA e wrappers de IA. Pense nele como um boilerplate para startups de IA com as partes chatas já conectadas: autenticação, pagamentos com Stripe e Lemon Squeezy, limites de uso, e-mail transacional e um kit inicial de API de IA que conversa com OpenAI, Anthropic, Groq ou Llama. Você clona o repositório, define seu preço e começa pela parte do produto que as pessoas realmente pagam. Ele é feito em Next.js sobre React e Tailwind, então boa parte do código boilerplate já parece familiar.

Pago / $99 - $499 one-timeVer detalhes
Testim

Testim

Tricentis · Programação

O Testim é uma plataforma de automação de testes com IA para criar e executar testes de ponta a ponta em aplicações web, mobile e Salesforce. Ele se apoia no aprendizado de máquina para manter os testes estáveis quando uma interface muda, então as equipes gastam menos tempo consertando seletores quebrados. Nada mal para uma ferramenta de testes automatizados que você pode começar a usar hoje. Você cria testes gravando ações no navegador e depois adiciona JavaScript quando precisa de mais controle. É uma escolha sólida para equipes de QA ocupadas.

Grátis / Custom pricing on requestVer detalhes