air
R formatter and language server
Air is an R code formatter and language server implementation written in Rust. It provides both command-line formatting tools and language server protocol support for code editors.
Air offers a fast, modern alternative to existing R formatting tools by leveraging Rust’s performance and the Biome project’s language-agnostic tooling infrastructure. It implements the tidyverse style guide and integrates with popular code editors through LSP support. The Rust implementation provides significant speed improvements over R-based formatters while maintaining compatibility with established R code style conventions.
Contributors#
Resources featuring air#
Positron workflows that make life easier | Andrew Heiss | Data Science Lab
The Data Science Lab is a live weekly call. Register at pos.it/dslab! Discord invites go out each week on lives calls. We’d love to have you!
The Lab is an open, messy space for learning and asking questions. Think of it like pair coding with a friend or two. Learn something new, and share what you know to help others grow.
On this call, Libby Heeren is joined by Andrew Heiss as he demonstrates some tips and tricks about his personal workflow and tools that he actually uses to make life easier in Positron. This is the ultimate list of data life hacks to make your workflow soooo much nicer. Check out Andrew’s blog post here to follow along with the tools he mentions: https://andhs.co/dsl
Hosting crew from Posit: Libby Heeren, Isabella Velasquez
Andrew’s Website: https://www.andrewheiss.com/ Andrew’s Bluesky: https://bsky.app/profile/andrew.heiss.phd Andrew’s LinkedIn: https://www.linkedin.com/in/andrewheiss/
Resources from the hosts and chat:
Andrew’s blog post containing links to all of the tools he mentions: https://www.andrewheiss.com/blog/2026/01/13/dsl-positron-workflow/ Open VSX Registry: https://open-vsx.org/ DataPasta: https://milesmcbain.github.io/datapasta/ Pastum (like datapasta for Positron): https://open-vsx.org/extension/atsyplenkov/pastum Positron Project docs: https://positron.posit.co/migrate-rstudio-rproj.html Garrick’s data science extension bundle package: https://github.com/gadenbuie/positron-plus-1-e Emil’s keyboard shortcut blog post: https://emilhvitfeldt.com/post/positron-key-bindings/ Native Tabs for Mac: https://lucasprag.com/posts/underrated-vscode-feature-native-tabs/ Andrew’s posit::conf(2025) Talk: https://youtu.be/UCloM4GcfVY Arc browser that Andrew is using: https://arc.net/ Andrew’s YAML headers he sets up using espanso: https://github.com/andrewheiss/espanso/blob/52da6c43c6d1ebaf3231770b1b66971d1dfb374a/match/markdown-pandoc-quarto.yml#L118
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co The Lab: https://pos.it/dslab Hangout: https://pos.it/dsh LinkedIn: https://www.linkedin.com/company/posit-software Bluesky: https://bsky.app/profile/posit.co
Thanks for learning with us!
Timestamps: 00:00 Introduction 01:50 Switching to Positron full-time 03:19 Extensions in Positron 04:44 How to evaluate if an extension is safe 07:05 Air extension (auto-formatting) 08:21 Better Comments extension 10:15 Moving the Activity Bar 12:20 Pastum extension (DataPasta equivalent) 14:26 Rainbow CSV extension 15:34 Spell Right extension 17:34 Managing projects in Positron vs RStudio 20:18 “Do you know if there are extensions… that will conditionally format cells?” 20:40 “Do you explicitly add a dot here file?” 21:44 Project Manager extension 25:34 “How did you discover all of these?” 26:38 “How is GitHub integrated into Positron?” 29:10 Peacock extension 31:16 The Connections pane 36:38 “When I change the Peacock color, it’s changing colors for everything.” 37:59 “Does he use any DuckDB extensions?” 39:05 Raycast 43:35 Raycast scripts 44:30 NotebookLM 45:31 “Is there a hack to manage a repo that is both a project and an R package?” 48:00 Espanso 53:15 “Is Raycast a replacement for Spotlight and Bartender?” 54:00 “Is there an easy way to see all of the shortcuts?”
Open source development practices | Isabel Zimmerman & Davis Vaughan | Data Science Hangout
ADD THE DATA SCIENCE HANGOUT TO YOUR CALENDAR HERE: https://pos.it/dsh - All are welcome! We’d love to see you!
We were recently joined by Isabel Zimmerman and Davis Vaughan, Software Engineers at Posit, to chat about the life of an open source developer, strategies for navigating complex codebases, and how to leverage AI in data science workflows. Plus, NERDY BOOKS!
In this Hangout, we explore the differences between maintaining established ecosystems like the Tidyverse as well as building new tools like the Positron IDE. Davis and Isabel (and sometimes Libby ) share practical advice for developers, such as the utility of AI for writing tests and “rubber ducking”, and their various approaches to writing accessible documentation that bridges the expert-novice gap.
Resources mentioned in the video and zoom chat: Positron IDE → https://posit.co/positron/ Air (R formatter) → https://posit-dev.github.io/air/ Python Packages Book (free) → https://py-pkgs.org/ R Packages Book (free) → https://r-pkgs.org/ DeepWiki (AI tool mentioned for docs) → https://deepwiki.com/tidyverse/vroom
If you didn’t join live, one great discussion you missed from the zoom chat was about Brandon Sanderson’s Cosmere books and the debate between starting with Mistborn vs. The Stormlight Archive. Are you a Cosmere fan?! Which book did you start with? (Libby started with Elantris years before picking up Mistborn Era 1 book 1, but she’d now recommend maybe starting with Warbreaker!)
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co Hangout: https://pos.it/dsh The Lab: https://pos.it/dslab LinkedIn: https://www.linkedin.com/company/posit-software Bluesky: https://bsky.app/profile/posit.co
Thanks for hanging out with us!
Timestamps: 00:00 Introduction 04:41 “What does a day in the life of an open source dev look like?” 09:43 “What got you into building your own R packages?” 13:00 “Personal tips for working with code bases you’re not familiar with?” 16:35 “How much of what you build is in R/Python vs. lower-level languages?” 19:57 “Does Air work inside code chunks in Positron?” 20:12 “Changing the Python Quarto formatter in Positron without an extension” 22:56 “What do your side projects look like?” 26:40 “How do you approach writing documentation?” 30:55 “What interesting trends in data science are you noticing?” 33:38 “How do you leverage AI in your work?” 37:30 “What are the hexes on Davis’s back wall?” 38:50 “What career advice would you give to someone in a similar position?” 43:45 “How can I be more resilient when things go wrong?” 47:59 “Do you have keyboard preferences?” 49:25 “What is the best way to report bugs in packages?” 50:56 “Open source dev work vs. in-house dev work” 51:50 “Tips for getting started with Positron”


Air: A blazingly fast R code formatter - Davis Vaughan, Lionel Henry
In Python, Rust, Go, and many other languages, code formatters are widely loved. They run on every save, on every pull request, and in git pre-commit hooks to ensure code consistently looks its best at all times.
In this talk, you’ll learn about Air, a new R code formatter. Air is extremely fast, capable of formatting individual files so fast that you’ll question if its even running, and of formatting entire projects in under a second. Air integrates directly with your favorite IDEs, like Positron, RStudio, and VS Code, and is available on the command line, making it easy to standardize on one tool even for teams using various IDEs.
Once you start using Air, you’ll never worry about code style ever again!
https://www.tidyverse.org/blog/2025/02/air/ https://github.com/posit-dev/air


Air - A blazingly fast R code formatter (Davis Vaughn & Lionel Henry, Posit) | posit::conf(2025)
Air - A blazingly fast R code formatter
Speaker(s): Davis Vaughan; Lionel Henry
Abstract:
In Python, Rust, Go, and many other languages, code formatters are widely loved. They run on every save, on every pull request, and in git pre-commit hooks to ensure code consistently looks its best at all times.
In this talk, you’ll learn about Air, a new R code formatter. Air is extremely fast, capable of formatting individual files so fast that you’ll question if its even running, and of formatting entire projects in under a second. Air integrates directly with your favorite IDEs, like Positron, RStudio, and VS Code, and is available on the command line, making it easy to standardize on one tool even for teams using various IDEs.
Once you start using Air, you’ll never worry about code style ever again! posit::conf(2025) Subscribe to posit::conf updates: https://posit.co/about/subscription-management/


New data science tools & old laptops on fire | Jenny Bryan | Data Science Hangout
ADD THE DATA SCIENCE HANGOUT TO YOUR CALENDAR HERE: https://pos.it/dsh - All are welcome! We’d love to see you!
We were joined by Jenny Bryan, Senior Software Engineer at Posit, to chat about (setting laptops on fire,) adapting careers to embrace change and new technologies, behind-the-scenes technical advancements powering the R ecosystem with tools like Positron, demystifying project-based workflows, plus LLM integration and best practices in programming.
Listen to this episode to hear us chat about topics like this:
-
the benefits and limitations of using Large Language Models (LLMs) in programming. Jenny shared her initial skepticism towards LLMs for coding in R, but her attitude changed significantly when applying LLMs to problems involving languages she was less familiar with, like Rust or TypeScript.
-
adapting in your career to embrace change and new technologies. Jenny, who describes herself as being on a “third career”, transitioned from management consulting to a statistics professor, and then to a senior software engineer at Posit. She talks a bit about her career journey and how she’s embracing new stuff (ahem, Typescript) so that she gets to keep doing cool stuff!
-
Positron IDE for R package development. She specifically praises Positron’s unique test explorer and reliable console, and its integrated Data Explorer. For many, Positron offers out-of-the-box data science functionality, unlike other IDEs that require extensive customization.
-
what new technologies like Ark, Air, and Positron mean for the longterm health of R. Jenny’s been working on lots of nerdy things behind the scenes at Posit and she talks all about how they’re great for developers, package builders, data scientists, and engineers alike.
Another tidbit from this hangout: Jenny gave some advice for those looking to branch into software engineering without formal training: try reading code from admired developers, inviting code reviews, and undertaking small, recreational package development projects to gain practical experience and confidence. She also advocates for adopting a project-oriented workflow (associated with her famous “laptop on fire” remark, of course) using tools like the here package for managing project paths.
Resources mentioned in the video and zoom chat: Positron IDE → https://positron.posit.co/ Happy Git with R → https://happygitwithr.com/ Jenny Bryan’s “Project-oriented workflow” blog post → https://www.tidyverse.org/blog/2017/12/workflow-vs-script/ Air R code formatter → https://posit-dev.github.io/air/ The here() package → https://here.r-lib.org/ Posit Conf → https://posit.co/conference/ Tidy Dev Day 2025 → https://www.tidyverse.org/blog/2025/07/tdd-2025/ R Packages book → https://r-pkgs.org/
If you didn’t join live, you missed a ROARINGLY active chat. Let’s just say, if you’ve ever broken down in tears over a programming project, you’re not alone! Come join us live each week if you’d like to hang out in the chat with us!
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co Hangout: https://pos.it/dsh LinkedIn: https://www.linkedin.com/company/posit-software Bluesky: https://bsky.app/profile/posit.co
Thanks for hanging out with us!
Timestamps 00:00 Introduction 03:39 “Is that a Wooble on your desk?” (Spoiler, it’s a gnome!!) 06:23 “As a builder of data science tools, what are the tool features data scientists want most?” 08:43 “Have you experienced needing to adapt to change recently and how have you embraced it?” 13:46 “What is ‘setting laptops on fire’ about?” 13:50 “How did you decide to change your career a few times?” 21:23 “What are your thoughts on the ease of putting models into production in Python versus R and does it make sense to shift everybody to one language or the other?” 27:30 “How do you navigate the ‘I have a hammer so everything looks like a nail’ feeling when working with emerging tools like LLMs?” 33:24 “Do you have any general advice for those data scientists who find themselves wanting to branch out more into software engineering but don’t have formal training?” 39:39 “Why should I use Positron instead of Versus Code?” 47:57 “Can you speak to the value of developing an R package and how to clear the mental hurdle of it being a huge challenge?” 52:34 “What does your career trajectory look like and what is your advice for other people who are looking to grow their career but don’t know if they want to be an IC or a manager? Does being a manager mean you don’t get to write code anymore?”

Exploratory Data Analysis with R in Positron
Learn exploratory data analysis (EDA) in R with this tutorial by Mine Çetinkaya-Rundel. Using Positron, Mine guides you through a real-world project, ’exploring deadlines,’ to analyze the impact of homework deadlines on student performance and stress levels. Discover how to effectively clean, filter, and visualize data using ggplot2 for insightful comparisons. This tutorial emphasizes best practices for data organization and clear data presentation while highlighting Positron’s features that streamline your data analysis workflow. Perfect for anyone looking to master data visualization in R and enhance their data science skills in this new IDE.
0:00 Introduction 0:25 Opening a new Positron project 1:48 Loading and exploring data 3:44 Creating a new R file 4:05 Running exploratory data analysis 16:37 Formatting code with Air 19:22 Copying a plot
Positron documentation: https://positron.posit.co/ Download Positron: https://positron.posit.co/download.html Read the blog post: https://posit.co/blog/eda-in-positron
Air documentation: https://posit-dev.github.io/air/

“Shiny: Data-centric web applications in Python” - Joe Cheng (PyBay 2023)
Joe Cheng
https://pybay.com/speakers/#sz-speaker-7e5324de-3afa-4614-a498-562bd5eb9986
Shiny is a web framework that is designed to let you create data dashboards, interactive visualizations, and workflow apps in pure Python or R. Shiny doesn’t require knowledge of HTML, CSS, and JavaScript, and lets you create data-centric applications in a fraction of the time and effort of traditional web stacks.
Of course, Python already has several popular and high-quality options for creating data-centric web applications. So it’s fair to ask what Shiny can offer the Python community.
In this talk, I will introduce Shiny for Python and answer that question. I’ll start with some basic demos that show how Shiny apps are constructed. Next, I’ll explain Transparent Reactive Programming (TRP), which is the animating concept behind Shiny, and the reason it occupies such an interesting place on the ease-vs-power tradeoff frontier. Finally, I’ll wrap up with additional demos that feature interesting functionality that is made trivial with TRP.
This talk should be interesting to anyone who uses Python to analyze or visualize data, and does not require experience with Shiny or any other web frameworks.
PyBay features the most influential speakers presenting the most crucial technologies to help beginners and seasoned developers alike get up-to-date quickly, in a single-track format. Whether you’re interested in web technologies, data, devops, Python internals, or performance, PyBay will help you stay on top of your game AND network with engineers at companies that are hiring!
Working remotely and want to meet your teammates to boost team cohesiveness? Leverage the platform we’ve built. There are great talks, yummy food, fresh air, vitamin D… all the elements developers crave for these days. If there are talks that don’t interest your team, take the opportunity to talk to speakers, create your own team activities or book a tee-time at the adjacent miniature golf course!
PyBay is the regional Python conference for the San Francisco Bay Area, bringing together Pythonistas from around the Bay Area and beyond. It is a volunteer-run organization dedicated to building a stronger Python community. PyBay offers deep-dive talks and networking opportunities that aim to enrich and empower the Python community. PyBay is part of BAPyA (Bay Area Python Association). BAPyA member organizations are the SF Python, Pyninsula, and BayPIGgies meetups.
Produced by NDV: https://youtube.com/channel/UCQ7dFBzZGlBvtU2hCecsBBg?sub_confirmation=1
Sun Oct 8 18:30:00 2023 at Bungalo East

Posit Package Manager | Manage R and Python Packages Across Your Organization
Posit Package Manager is a repository management server to organize and centralize R and Python packages across your organization.
Learn more here: https://posit.co/products/enterprise/package-manager/
Use it to provide full mirrors of CRAN, Bioconductor, and PyPI. Restrict access to potentially harmful public packages by curating your own custom repository with only the packages you need. Support air-gapped environments by providing offline access to your package repository
Data Science Hangout | Jessie Pluto, Comcast | Taking Initiative with an Idea
We were joined at the Data Science Hangout by Jessie Pluto, Senior Manager of EBI Strategic Analytics at Comcast.
Question: As an analyst when you’re working with business partners, you’re just trying to deliver value and insight in a speedy way. So I’m trying to convince analysts to maybe take a bit of a step back and learn and implement something new that can help both them and their business partners in the future.
Do you have any advice for how I, as a person trying to get these things up and running, can help to create more of that culture of let’s go ahead and take a step back and do something now that will help me in the long term versus just trying to check boxes as quickly as possible?
Answer:
It is a constant battle. I feel like it is the place where it requires some strategy because you can’t do it all the time.
You have to really recognize when is the right time to pounce on an idea?
You have to have the ideas first. Sometimes you have to sit on them for a little while and then you have to just be able to recognize, I think, that opportunity.
It’s OK to make mistakes. Sometimes you push something too soon and it might hurt a little bit, but don’t let that kill your motivation.
I hate PowerPoint. I hate copy and paste so much. I might have said copy and paste 80 times already. But I hate it.
For a long time, some of the reports that I was doing– just to give you an example, Paramount is, like, 30 individual networks - and so sometimes we’re repeating views for 30 networks times five different views at the bare minimum.
It’s too many slides, too much copy and paste.
I had made a push for, oh, we should convert this to R Markdown or Shiny or something.
And same thing– it’s like, well, our stakeholders don’t know how to use that and it’s a server. It’s very private and customer information.
And COVID hits, and sports viewing kind of just went away. We had so many questions coming in about, what do we do? What’s going on? What are customers doing? What are they watching?
All sports just kind of went completely off the air immediately.
And I realized, this is my moment.
I created (we were in Hadoop at the time, we’ve since moved but we were in Hadoop at the time) some shell scripts, bash scripts to run at certain days and scheduled it and created this pipeline that I had been messing around with for a while, created an automated R Markdown report.
And basically, I was able to give the information that the business was asking for very, very quickly.
And they learned how to use it because they really wanted it. And it would have been too much for my very small team to be reporting every single week on what is happening this week.
It’d be a huge load on our team to do that every single week from scratch.
So basically investing– and I will admit that I spent a little bit of night time on this project - but it was a passion project where I was like, all right, this is my moment to prove that this is a feasible solution, and show that– because we had so many questions coming in.
This was one of a huge backlog of questions. I was able to show that, OK, this is done. We’ve automated it.
We can use this for other things, for other questions that business owners want every single week and still have time leftover for those ad-hoc questions. Those one-off things that are really important, we’ll have time for that, too, and not miss the report.
I think there’s just this strategy that you have to really always be thinking about of when is the right moment to maybe not necessarily ask for approval– to just do something and show the value.
Hopefully, you have leaders who will support you in those decisions
If it’s the right one and the right moment you can push some of the different tools that were not really supported in the beginning of my career here.
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co LinkedIn: https://www.linkedin.com/company/posit-software Twitter: https://twitter.com/posit_pbc
To join future data science hangouts, add to your calendar here: pos.it/dsh (All are welcome! We’d love to see you!)
Data Science Hangout | Rebecca Hadi, Lyn Health | Transparent & Visible Work
We were joined by Rebecca Hadi, Head of Data Science at Lyn Health. Rebecca is passionate about improving healthcare using data science and machine learning.
At 19:11, Rebecca shared her approach to communication with transparent and visible work.
Here are 4 things they do on their team to create transparent & visible work:
- Starting off with an open Data Science channel (different from their team channel) that’s open to the company.
For example, if we do an analysis for the sales team - we will post it in that channel and tag the sales team. That way anyone in the company can see the work. We keep conversations in the channel, rather than DMs. A lot of times someone else may be interested in that work.
- We also have a Google sheet that we call our insight repository. We have that pinned to our channel so when we post analysis, we also put them in our insight repository with one row per analysis.
For example: in-patient mortality model, a headline, the link to the PDF, and the GitHub link. The insight repository has been very well received as a place that someone can start when they have a question.
- I also host a weekly data science prioritization meeting and we use Monday as our project management tool.
This has been really helpful because in the past I’ve had some challenges with balancing requests from our clinical team versus sales team and understanding the priority. It can be hard to be that person in the middle. It’s a lot more productive when we can all have that conversation live. The sales team might say, “I need this for XYZ meeting” and you might have to say, “Ok, you know that’s going to push off these additions to the clinical dashboard.” Then the clinical team can weigh in, “We’re okay with that because of XYZ reason”
- I’m also a really big advocate of a monthly all-employee call and I try to get air time there pretty frequently.
Initially it was level setting on “this is what data science is and how my team operates.” That has been successful for setting this idea of, “you are going to ask me something and I’m going to ask you the why behind it.” This helped set the precedent ahead of time where I’m not challenging an idea, but it will help my team produce better work if we understand why you care about this and how you are going to use it because that gives us context in decisions we need to make throughout the process.
A few resources shared too:
Javier shared: A resource that I just came across last week (def not something I do daily). if you’re wanting to collect / manipulate JSON data with R, Tom Mock has a super-easy-to-follow writeup with several different approaches: https://lnkd.in/gwGxJpcW
Luke shared: Data is Plural newsletter is a decent off-the-beaten-path dredger of data sources: https://lnkd.in/grRGqQRA
Rebecca shared this book on management, The Hands-Off Manager: https://lnkd.in/gg2TU2mB
Where to find more?
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu ► Data Science Hangout site: rstudio.com/data-science-hangout ► Add the Data Science Hangout to your calendar: rstd.io/datasciencehangout
Follow Us Here: Website: https://www.rstudio.com LinkedIn:https://www.linkedin.com/company/rstudio Twitter: https://twitter.com/rstudio
Ralph Asher | Intro to Monte Carlo Simulation | RStudio
Introduction to Monte Carlo simulation, using Shiny Presentation by Ralph Asher
Monte Carlo Simulation is a powerful methodology to model and understand the impact of uncertainty upon real life. In this talk, I will introduce Monte Carlo simulation through a simple example: I’m meeting my neighbor after work for dinner in our neighborhood. Given the uncertain length of our commutes, will we make it in time for our reservation? I’ll talk through the scenario, then walk through a simple Shiny app that explores the power of Monte Carlo Simulation to recommend decisions under uncertainty.
Bio: I am Ralph Asher, and I am the founder of Data Driven Supply Chain LLC, a Minnesota-based consultancy that helps organizations apply data science and AI methods, including simulation, to design and improve their supply chain. Prior to founding Data Driven Supply Chain, I worked as an Operations Research Scientist at Target, designing e-commerce supply chain networks, and at General Mills, designing warehousing networks. I have used R for supply chain analytics for over eight years at these companies. I live in the Minneapolis, MN area and love running in the (usually cool) Minnesota air. I can be reached at ralph@datadrivensupplychain.com