LogoAwesome Skills
  • Search
  • Category
  • Tag
  • Blog
LogoAwesome Skills
LogoAwesome Skills

Discover Open-Source Agent Skills for AI Coding Assistants

Product

  • Search
  • Category
  • Tag
  • Blog

Resources

  • Claude Skill Docs
  • Antigravity Skills Docs

Tools

  • Claude Code
  • OpenCode
  • Cursor
  • Codex
  • Antigravity

Company

  • Privacy Policy
  • Terms of Service
  • Sitemap

©2026 Awesome Skills. All rights reserved.

Privacy PolicyTerms
Back to Skills

streamlit-to-marimo

Convert a Streamlit app to a marimo notebook

165stars15forksUpdated 8/13/2026
Data Science & ML#streamlit#code-conversion#marimo#python#notebooks

Security Assessment

Safe(96/100)
Security Score96/100

About streamlit-to-marimo

Streamlit to Marimo is a code-conversion skill that maps a Streamlit application to an equivalent marimo notebook. It focuses specifically on translating Streamlit concepts to their marimo counterparts, deferring general marimo conventions (cell structure, PEP 723 metadata, output rendering, variable naming) to the companion marimo-notebook skill. It solves the problem of porting apps between two Python app frameworks with fundamentally different execution models, without losing widgets, layout, or state behavior.

The workflow reads the Streamlit app, creates a new marimo notebook (without overwriting the original) carrying over dependencies but replacing streamlit with marimo, maps components using extensive reference tables, handles conceptual differences, and validates the result by running `uvx marimo check`. The reference tables cover input widgets (sliders, text, checkboxes, file uploaders, buttons, forms), display elements (markdown, dataframes, metrics, media), charts (Plotly, Altair, matplotlib), and layout (sidebar, columns, tabs, expanders, progress, spinner). It explains the key conceptual shift from Streamlit's full top-to-bottom rerun to marimo's reactive cell DAG where only dependent cells re-execute, along with state management (session_state to plain variables, callbacks to reactive cells), caching (@st.cache_data to @mo.cache, @st.cache_resource to @mo.persistent_cache), multi-page approaches, deployment via molab, and the incompatibility of Streamlit custom components. Conversion is local and read-only against the source; it writes a new notebook file.

The target users are Python developers and data-app authors migrating existing Streamlit apps to marimo. Use cases include one-off app migrations, learning the marimo equivalents of familiar Streamlit APIs, and modernizing dashboards to a reactive notebook model.

FAQ

What does this skill convert?

It maps a Streamlit app to an equivalent marimo notebook, translating widgets, display elements, charts, layout, state, and caching. General marimo conventions are handled by the separate marimo-notebook skill it references.

Does it overwrite my original Streamlit file?

No. It explicitly creates a new marimo notebook and instructs not to overwrite the original file, carrying over the app's dependencies but replacing streamlit with marimo.

What is the biggest conceptual difference to expect?

Execution model. Streamlit reruns the whole script top-to-bottom on every interaction, while marimo uses a reactive cell DAG where only cells depending on changed variables re-run — so st.rerun() and st.stop() are no longer needed.

How are Streamlit's caching decorators mapped?

@st.cache_data maps to @mo.cache (marimo-aware, argument-based) and @st.cache_resource maps to @mo.persistent_cache, which persists results to disk across sessions for expensive computations.

Are there Streamlit features that don't convert?

Streamlit custom components are not compatible with marimo; an equivalent anywidget may be possible via the marimo-anywidget skill, but the guidance is to discuss that with the user first. Conversion results are validated with uvx marimo check.

Install streamlit-to-marimo

Download and extract the skill files to your .claude/skills/ directory.

Quick Setup:

  1. Copy the skill folder to .claude/skills/
  2. Claude will automatically detect and use the skill

Repository

marimo-team/skills

Related Skills

referral-program

2,132

agentmail-cli

22

codex

3,038

content-modeling

192