github marimo-team/marimo 0.15.0

latest releases: 0.15.2, 0.15.1
10 days ago

This release comes with improvements to AI integration and support for multiple models. While these changes include several breaking changes to how models are configured (see below), they provide more flexibility for using different models for different tasks.

✨ Highlights

Use different models for different tasks

You can now configure separate models for chat, code editing, and autocomplete in an improved UI (#6018, #6011). Models use provider prefixes like ollama/qwen-coder or azure/gpt-4o.

Keyboard shortcuts for AI suggestions

Accept AI suggestions with Tab, reject with Escape (#6094).

Tables in AI chat

The chat sidebar now renders markdown tables (#6006).

🚨 Breaking changes

  • Use fully qualified model ids (#6003): Model IDs must now include provider prefixes (e.g., gpt-4o becomes openai/gpt-4o). Old IDs will show warnings but still work temporarily.

    # Before (marimo.toml)
    [ai.models]
    chat_model = "gpt-4o"
    autocomplete_model = "codestral-latest"
    # After (marimo.toml)
    [ai.models]
    chat_model = "openai/gpt-4o"
    autocomplete_model = "mistral/codestral-latest"
  • Multiple models for different roles (#6018): Config paths have moved - ai.open_ai.model is now ai.models.chat_model, completion.model is now ai.models.autocomplete_model. The completion.base_url and completion.api_key fields are removed in favor of provider-specific configs.

    # Before (marimo.toml)
    [ai.open_ai]
    model = "gpt-4o"
    
    [completion]
    model = "gpt-3.5-turbo"
    base_url = "https://api.openai.com/v1"
    api_key = "sk-..."
    # After (marimo.toml)
    [ai.models]
    chat_model = "openai/gpt-4o"
    autocomplete_model = "openai/gpt-3.5-turbo"
    
    [ai.openai]
    api_key = "sk-..."
  • More AI config settings for different providers (#6011): Provider-specific endpoints (azure, ollama, open_ai_compatible) now have their own config sections.

    # Before (marimo.toml)
    [ai.openai]
    base_url = "https://myazure.openai.azure.com/openai/deployments/gpt-4o"
    model = "gpt-4o"
    # After (marimo.toml)
    [ai.models]
    chat_model = "azure/gpt-4o"
    
    [ai.azure]
    base_url = "https://myazure.openai.azure.com"
    api_version = "2024-02-01"

✨ Enhancements

  • Forward Ctrl+Escape from CodeMirror to parent elements (#6114)
  • Add thinking tag and a model card for dropdown (#6106)
  • More lenient AI config, and more descriptive error (#6096)
  • Add hotkeys to AI completion (#6094)
  • Use descriptive link text instead of 'here' (#6090)
  • Support -h flag for help in CLI (#6089)
  • update logic for determining when AI is enabled (#6081)
  • Add AI model dropdown for "Generate with AI" (#6064)
  • Patch fetch with more leniant file matching (#6073)
  • Handle blob protocol in runtime manager (#6071)
  • Update AI provider and conversion functions for async support (#6070)
  • Cache sql parsing (#6068)
  • Add GitHub as a provider, add OpenAI models (#6044)
  • Update dropdown for model select (#6029)
  • Non-blocking formatting and auto-export (#6022)
  • Better fill-in-the-middle prompting (#6028)
  • Add send button for 'Generate with AI' (#6017)
  • Fallback to os.environ for AI API keys (#6016)
  • Add svgs and improve ui for chat config (#6013)
  • Include code for 'Generate with AI' by default & fix flakey test (#6014)
  • Support tables in AI chat sidebar (#6006)
  • Using XDG_STATE_HOME environment variable to support the Linux XDG Base Directory (#6048)

🐛 Bug fixes

  • Correct command mode handling for vim vs non-vim modes (#6092)
  • Remove tools if empty (#6109)
  • Properly detect Linux platform for hotkeys (#6099)
  • Check for module type for sql engine (#6103)
  • "No outline-solid" -> "No outline found" (#6091)
  • Clean up finder/module logic for recursion (#6075)
  • Only use max_completion_tokens on reasoning models (#6082)
  • Clamp height for prompt input in generate height (#6083)
  • Don't do health check in static notebooks (#6079)
  • Clean up pytest default name (#6077)
  • Stdout and stderr should not be stoppable by users (#5955)
  • Ignore table filters from unknown columns (#6069)
  • Close completion without going into command mode (#6059)
  • Fix borderless cell dividers after Tailwind v4 migration (#6051)
  • Fix Tailwind v4 shadow colors (#6050)
  • Fix rtc null pointer (#6047)
  • Check for array types better in duckdb (#6030)
  • Refactor so that sql engines uses the same logic for returning df (#5991)
  • Stub and restore cache meta values (#5996)
  • Convert time duration to numeric for column explorer (#6087)

📚 Documentation

  • Document command mode vim bindings (Mac, Windows, Linux) (#6004)
  • Update and fix Spanish README translation (#6036)
  • Add dataflow blog, fix reddit link (#6037)
  • Add warning about Ollama /v1 endpoint to prevent 404 errors (#6009)

🔬 Preview features

  • Fix tools feature flag name (#6097)
  • Improved SQL completions, linting, and hover (#5938)

📝 Other changes

  • Tools being empty (#6110)
  • Revert "add thinking tag and a model card for dropdown" (#6111)
  • Update @marimo-team/codemirror-ai to v0.3.2 (#6102)
  • Cleanup docs on mode dropdown (#6095)
  • Update dependency mermaid to v11.10.0 [security] (#6078)
  • Use as_series=False in assert_frame_equal to compare Narwhals dataframes (#6035)
  • Update react-aria dependencies (#6040)

Contributors

Thanks to all our community and contributors who made this release possible: @akshayka, @AldoHdz97, @dmadisetti, @FBruzzesi, @jonathanyale, @Light2Dark, @manzt, @mscolnick, @TDYQ-Liu, @thliang01

And especially to our new contributors:

Full Changelog: 0.14.17...0.15.0

Don't miss a new marimo release

NewReleases is sending notifications on new releases.