posit::glimpse() Newsletter – February 2026

A blue background with a repeating pattern of white line drawings of various data-related icons, such as graphs, code symbols, and animals. Centered on the image is the white text 'posit::glimpse()'.

Welcome to our newsletter, posit::glimpse()!

If you’re currently reading this on our blog, consider subscribing to Stories on our subscription page to receive this newsletter directly in your inbox.

posit::glimpse() is our roundup of the most important news for Posit’s open source community. This edition covers highlights since September 2025, and we will be moving to a monthly newsletter going forward. There are quite a few updates, so let’s jump right in!

 

Registration for posit::conf(2026) is now open!

 

Registration is officially open for posit::conf(2026)! Join the global data community in Houston or tune in online from September 14–16. We can’t wait to see you, register today!

 

Key product updates and new releases

 

dplyr 1.2.0

 

The dplyr package introduces several major features designed to simplify data manipulation:

  • New filter_out() Verb: New dedicated verb filter_out() for dropping rows that treats NA values as FALSE
  • New logical helpers: when_any() and when_all() combine multiple conditions within a filter() call without nesting complex Boolean operators
  • New recoding functions: recode_values(), replace_values(), and replace_when() form a cohesive family of functions for recoding (creating a new column) and replacing (partially updating an existing column)

In addition, if_else() and case_when() are now up to 30x faster and use 10x less memory! Learn more in the dplyr v1.2.0 and dplyr performance blog posts.

 

ggplot2 v4.0.0

 

ggplot2 v4.0.0 is a major milestone that modernizes the package’s internal engine while adding significant new styling capabilities.

  • Role-oriented styling: Define an ink (foreground/text color) and paper (background color) instead of manually setting every text and line color
  • Theme management: Helper functions that group related theme arguments
  • Migration to S7: ggplot2 is now much more robust and extensible for developers

Read more in the ggplot2 v4.0.0 and the ggplot2 styling blog posts.

 

ellmer v0.4.0

 

The ellmer package for working with LLMs received substantial updates:

  • Claude features: Caching (5-minute default), file uploads with claude_file_upload(), web search and fetch tools
  • OpenAI improvements: Modern responses API, service tier options, built-in web search
  • Lifecycle updates: parallel_chat() and batch_chat() are now stable
  • New utilities: schema_df() for describing data frame schemas

Read more in the ellmer v0.4.0 blog post.

 

Positron 2026.02.0

 

Posit’s next-generation data science IDE, Positron, continues rapid development. Recent releases (2025.11.0 through 2026.02.0) include:

  • Native Editor for Jupyter Notebooks: Jupyter Notebooks now work out-of-the-box in Positron without additional extensions or dependencies
  • History Pane: Track Console inputs by language, grouped by time period
  • Positron Assistant: Native GitHub Copilot integration with Amazon Bedrock support
  • Dev Container support: Experimental support for development containers
  • Pyrefly extension: Bundled Python language server with flexibility to use alternatives
  • Remote development: Enhanced SSH experience and native WSL support
  • Windows ARM: First experimental support

Learn more in the Positron Notebook Editor for Jupyter Notebooks blog post.

 

Quarto v1.8

 

The latest Quarto release brings powerful enhancements:

  • Brand extensions: Share brand definitions across projects with quarto create extension brand
  • Light/dark brand support: Specify light and dark versions of colors and logos
  • HTML accessibility checks: Axe-core powered validation identifies WCAG compliance issues directly in your preview
  • Execution context access: Code cells can now access document path, format, and metadata via QUARTO_EXECUTE_INFO
  • New APIs: quarto.variables.get() and quarto.metadata.get() for filters and shortcodes

Learn more in the Quarto v1.8 blog post.

Coming in March: Quarto v1.9 will introduce engine extensions for custom execution engines beyond knitr and Jupyter, expanded PDF accessibility with PDF/A and PDF/UA standards support, and enhanced Typst templates.

 

shinychat

 

shinychat (R v0.3.0, Python v0.2.0+) now displays rich UI for LLM tool calls:

  • Automatic tool display: See which tools are being called with collapsible cards showing arguments and results
  • Custom titles and icons: Help users quickly identify tools being called
  • Customizable result content: Return formatted HTML, markdown, or plain text
  • Intent explanation: Tools can display why the LLM is calling them

Additional improvements include bookmarking support, programmatic controls, and safer external link handling. Read more in the Tool Calling UI in shinychat blog post.

 

Shiny for R v1.12

 

Shiny for R now supports OpenTelemetry, bringing observability to your reactive applications. Get visibility into your reactive graphs and performance metrics with industry-standard tracing. Learn more in the OpenTelemetry + Shiny for R v1.12 blog post.

 

plumber2 v0.2.0

 

Major updates to the plumber2 API framework:

  • OpenTelemetry support: Vendor-neutral observability with traces, logs, and metrics—export to Jaeger, Zipkin, Prometheus, Grafana Cloud, or Logfire
  • Authentication framework: Basic, Bearer, OAuth 2.0, and OpenID Connect via the fireproof package
  • Composable guards: Build complex auth flows with logical operators
  • Enhanced reports: Quarto documents with Jupyter engine, automatic OpenAPI docs

Learn more in the plumber2 v0.2.0 blog post.

 

tidymodels & xgboost

 

XGBoost jumped from v1.7 to v3.1 on CRAN. The tidymodels team ensured seamless compatibility—users of parsnip::boost_tree() and embed::step_discretize_xgb() require no code changes. Nine packages were updated: bundle, butcher, embed, lime, modeltime, orbital, parsnip, tidypredict, and vetiver. Learn more in the tidymodels & xgboost blog post.

 

orbital v0.4.0 for R and orbital v0.3.0 for Python

 

The orbital R package now supports post-processing with tailor methods. Use the new show_query() method to inspect generated SQL before execution. The orbital Python package has improved the SQL generation logic to significantly reduce query size and execution time for tree-based models. Learn more in the blog posts:

 

ragnar v0.3.0

 

The ragnar retrieval-augmented generation package gets major upgrades:

  • Faster ingestion: Parallelized document preparation with mirai handles hundreds or thousands of pages efficiently
  • MCP integration: Expose your RagnarStore as an MCP tool for Claude Code and other clients with mcp_serve_store()
  • New embedding providers: Azure OpenAI and Snowflake Cortex support
  • Improved retrieval: Multi-query support, better BM25 ordering, duplicate removal

Read more in the ragnar v0.3.0 blog post.

 

yaml12 v0.1.0

 

Introducing YAML v1.2 packages for both R and Python, implemented in Rust for fast, predictable parsing. yaml12 treats plain scalars like on/off/yes/no as strings (not booleans), removes implicit coercions, and supports multi-document streams. Approximately 2× faster than the R yaml package and 50× faster than PyYAML. Learn more in the yaml12: YAML 1.2 for R and Python blog post.

 

Learning and community

 

querychat: Chat With Your Data

 

Add natural language data exploration to your Shiny apps with querychat. Users can ask questions in plain language and get answers powered by LLM-generated SQL queries.

 

Effective Display Tables

 

Rich Iannone’s new online book Creating Effective Display Tables with gt is a comprehensive guide to building professional tables in R. It covers table anatomy, data formatting, visual design, footnotes, sparklines, custom themes, and output to HTML, PDF, and Word.

The gt package has also seen new updates! Learn more in the What’s New in gt 1.2.0 blog post.

 

Winners of the Plotnine and Table Contests

 

The community continues to push the boundaries of what’s possible in data communication. See the winning submissions of the Plotnine Contest and the Table Contest.

 

Data Science Lab

 

A new weekly event for the Posit community! The Data Science Lab is a live session where we explore data science topics together.

 

Posit AI Newsletter

 

Stay current with the fast-moving world of AI and data science. The Posit AI Newsletter is published weekly and covers the latest developments in LLMs, machine learning, and AI tools relevant to data practitioners.

 

posit::conf(2025) Talks

 

All session recordings from posit::conf(2025) are live on YouTube. You can also browse the full agenda and grab workshop materials directly from the recording release announcement blog post.

 

Stay connected

 

Want more updates like this? Sign up for posit::glimpse() by subscribing to Stories on our subscription page to receive the latest news on Quarto, Shiny, Tidyverse, and all of Posit’s open source tools.

Follow us on Bluesky, LinkedIn, and Mastodon to see our announcements!

The emojis in this post come from OpenMoji, the open-source emoji and icon project.

Want a piece of Posit trivia? Try this one out:

What was the original name of the purrr package?

The lowliner package! Read the discussion on GitHub deciding the new name.

Tags: Glimpse