Welcome to marimo-tutorials
, a comprehensive collection of interactive
notebooks and tutorials showcasing the power and versatility of
marimo, an innovative Python notebook framework. This
repository serves as a hub for learning, exploration and community engagement
across various domains of computer science, data science, AI, and more.
- About
- Repository Structure
- Getting Started
- Featured Notebooks
- Community Spotlights
- Contributing
- License
- Contact
marimo-tutorials
is designed to provide a rich learning experience for both
beginners and advanced users of marimo. Our collection spans multiple
disciplines, offering hands-on examples, in-depth tutorials, and real-world
applications of marimo's capabilities.
marimo-tutorials/
│
├── .github/
├── apps/
├── docs/
├── env/
├── marimo-tutorials/
│ ├── artificial-intelligence/
│ │ └── recommendation-systems/
│ │ └── collaborative-filtering/
│ ├── assets/
│ ├── computer-science/
│ ├── Data-Science/
│ ├── Evolutionary-Computing/
│ ├── signal-image-processing/
│ │ ├── image-processing/
│ │ └── signal-processing/
│ ├── Software-Engineering/
│ └── Tutorials/
├── __pycache__/
├── .gitignore
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── init.py
├── LICENSE
├── preprocessed_books.csv
├── README.md
└── requirements.txt
Each subdirectory within marimo-tutorials/
contains domain-specific
notebooks, along with their respective README files and assets.
To get started with the notebooks in this repository, you'll need to have
marimo installed. We recommend using uv
for managing dependencies and running notebooks in isolated environments.
-
Install
uv
if you haven't already:pip install uv
-
Clone this repository:
git clone https://github.com/Haleshot/marimo-tutorials.git cd marimo-tutorials
-
To run a notebook with its dependencies in an isolated environment:
uvx marimo run --sandbox path/to/notebook.py
-
To edit a notebook:
uvx marimo edit --sandbox path/to/notebook.py
As highlighted in the marimo blog, it's now possible to create marimo notebooks that have their package requirements serialized into them as a top-level comment. Given a notebook with inlined requirements, marimo can run it in an isolated virtual environment with a single command:
marimo edit --sandbox notebook.py
This creates a fresh virtual environment, or sandbox, and installs the
dependencies before opening the notebook. marimo's opt-in package management
features can even track imports and automatically add them to your notebook's
inlined requirements. This means you can create and share standalone notebooks
without shipping requirements.txt
files alongside them.
Here are some featured notebooks from our collection:
Note
The links given below will be updated soon, they are intended as placeholders to showcase the structure of our README file.
Collaborative Filtering | Machine Learning |
Exploratory Data Analysis |
Image Processing | Signal Processing |
While this repository hosts a variety of tutorials and notebooks, the official community spotlights are featured in a separate repository: marimo-team/spotlights.
Note
The spotlights repository features a project or marimo notebook from the community every Thursday. If you've created a notebook in this repository that you believe would be a good fit for the community spotlight, feel free to open an issue in the spotlights repository.
All notebooks in this repository follow a uniform structure defined in the
init.py
file. This structure ensures consistency across tutorials and makes
it easier for users to navigate and understand the content. Key elements of
this structure include:
- Standard import statements
- Configuration settings
- Helper functions
- Main content sections
- Interactive elements
By adhering to this template, contributors can focus on creating high-quality content while maintaining a consistent user experience across all tutorials.
We welcome contributions from the community! Whether it's adding new tutorials, improving existing ones, or suggesting new features, your input is valuable. Please read our CONTRIBUTING.md for guidelines on how to contribute.
This project is licensed under the MIT License.
For questions, suggestions or support, please open an issue in this repository or reach out to us (maintainers) through our community channels:
marimo socials:
- LinkedIn: marimo LinkedIn
- Twitter: @marimo_io
- Discord (proj-marimo-tutorials-channel): marimo community