Skip to main content

Arity

Build and Test Crates.io Open VSX VS Code PyPI version npm version CRAN

Arity is a language server, formatter, and linter for the R programming language, built on a lossless, incremental parser. It provides a fast, deterministic development experience that integrates with popular code editors and IDEs.

  • Formatter: deterministic, rule-based formatting based on the tidyverse style guide, with idempotent output and support for roxygen and DESCRIPTION (.dcf) files.
  • Linter: project-aware linting, with correctness, readability, and performance rules, many with safe autofixes.
  • Language server: formatting, diagnostics with quick fixes, hover, completion, signature help, go-to-definition and references, rename, document and workspace symbols, semantic tokens, folding, and call hierarchy.

Installation

Arity is available from several sources:

  • CRAN: install.packages("arity") in R (formatter bindings; see R package usage)
  • crates.io: cargo install arity
  • Homebrew: brew install jolars/tap/arity
  • npm: npm install -g arity-cli (bundles a prebuilt binary)
  • PyPI: uv tool install arity/pipx install arity
  • mise/Aqua: see the installation guide
  • Prebuilt binaries: from the releases page
  • VS Code/Open VSX: the Arity extension (also works in Positron)
  • Arch Linux: paru -S arity-bin (or another AUR helper; packages: arity-bin, arity)
  • NixOS: the arity package is available in nixpkgs

Install Script

The installer scripts pick the right release artifact for your platform and install to a user-local directory by default. They download the matching Arity CLI release asset and verify its checksum. If you prefer, download and inspect the script before running it.

For macOS and Linux:

curl --proto '=https' --tlsv1.2 -sSf https://arity.cc/install | sh

For Windows PowerShell:

powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://arity.cc/install.ps1 | iex"

Set ARITY_INSTALL_DIR to change the destination, ARITY_TAG to pin a version, ARITY_LIBC (gnu or musl) to override the detected libc on Linux, and ARITY_VERIFY_CHECKSUM=false to skip checksum verification.

Usage

# Format in place
arity format file.R

# Verify formatting without writing
arity format --check src/

# Lint a project directory
arity lint src/

# Fix lint findings in place
arity lint --fix file.R

arity lint reads from stdin when given - (or when piped with no paths), and exits non-zero when it reports any findings.

Configuration

Configure Arity with arity.toml, which is discovered by walking up from each file's directory to the repository root. Run arity init to scaffold a commented starter file. See the configuration reference for every key.

Editor Integration

arity lsp starts a stdio-based language server offering formatting, diagnostics with quick fixes, hover, completion, signature help, go-to-definition and references, rename, document and workspace symbols, semantic tokens, folding, and call hierarchy.

The Arity extension for VS Code/Open VSX (and Positron) bundles the binary and starts the server automatically. For Neovim, Helix, and other editors, see the editor setup guide.

In RStudio, the development R package provides a Format with arity addin for selections and unsaved documents. The CRAN package supports formatting saved files from the console. See RStudio setup for installation and configuration.

Pre-Commit Hook

arity-pre-commit provides pre-commit hooks for linting and formatting. It installs a prebuilt binary wheel from PyPI, so no Rust toolchain or R installation is required:

repos:
  - repo: https://github.com/jolars/arity-pre-commit
    rev: v0.25.0
    hooks:
      - id: arity-lint
      - id: arity-format

See the integration guide for file coverage, optional fixes, and updates.

GitHub Actions

arity-action installs Arity and runs format and lint checks in CI:

jobs:
  arity:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: jolars/arity-action@v1

Crates

The parsing and formatting engines are published as standalone crates for use in other tools: arity-parser (lossless CST parser, typed AST wrappers, incremental reparser) and arity-formatter (the formatter, with optional serde/schemars support for embedders). Both are versioned independently of the CLI.

Acknowledgements

The core architecture of Arity is entirely based on rust-analyzer, using salsa for incremental computation and rowan for lossless syntax trees. Arity also owes a great debt to air, on which it is heavily inspired and from which it has borrowed tests, rules, and formatting style. It is also inspired by jarl and has borrowed rules from it as well as some of its architecture.

Documentation

Full documentation lives at arity.cc:

Metadata

Release files for arity 0.26.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for arity 0.26.0
File Size Uploaded
arity-0.26.0.tar.gz 1.4 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for arity 0.26.0
File
arity-0.26.0-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details
arity-0.26.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
arity-0.26.0-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details
arity-0.26.0-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details
arity-0.26.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
arity-0.26.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
arity-0.26.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
arity-0.26.0-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details

Total release size: 42.8 MB

Release files / arity-0.26.0.tar.gz

Download URL arity-0.26.0.tar.gz
Size 1.4 MB
Tags Source
SHA-256 checksum
How to use checksums
4726128e7b7b165d7addef4deb95e10ead9fbb98460a4b99f38d61e6d52d0a20
BLAKE2b-256 checksum
How to use checksums
df4d4e699b7b60e58c79ce854c4bf231b3335d90a3519350cb9c9a632ef7c80c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / arity-0.26.0-py3-none-win_arm64.whl

Download URL arity-0.26.0-py3-none-win_arm64.whl
Size 5.1 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
fc7d65e55b7138fdf9735d67e1a2b05c2c4213078961612504ba4425605dbf8a
BLAKE2b-256 checksum
How to use checksums
be157e33763f80ff701c147d32e54af7d6b6572497c6915d335aa56c5c244cba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / arity-0.26.0-py3-none-win_amd64.whl

Download URL arity-0.26.0-py3-none-win_amd64.whl
Size 5.4 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
dc7475a06f25ad7c9d23dfa43dbc79db05f820ba48ec115509a1c9c30d5a81a1
BLAKE2b-256 checksum
How to use checksums
b2a1d442675bc32127d2191d9609c22e3b0baf6bd6aa5e761e0040bd8a66265f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / arity-0.26.0-py3-none-musllinux_1_2_x86_64.whl

Download URL arity-0.26.0-py3-none-musllinux_1_2_x86_64.whl
Size 5.4 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
3eebf600fb12fa8e25770ddbdf25c7e3984a84989461100245ea10c9573bd4d1
BLAKE2b-256 checksum
How to use checksums
40a6b9141caef2f6a8b92289cbe70f2f65d963573ecec74253792a192485ca23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / arity-0.26.0-py3-none-musllinux_1_2_aarch64.whl

Download URL arity-0.26.0-py3-none-musllinux_1_2_aarch64.whl
Size 5.0 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
2120b761ca47d4bb7cfcf132d8984b9c0eb68f8cc0b8bebf7437b921592ba896
BLAKE2b-256 checksum
How to use checksums
4f96cbb670ccd3fd189ec82f01b85076d4c2801fcac735caf20f81d14e23a4e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / arity-0.26.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL arity-0.26.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 5.3 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
31c43cf3c7d0ee11544fbd9b79fdef230fe1a15d780a3b8a66a509620b25eac4
BLAKE2b-256 checksum
How to use checksums
a6ebc53212e5773cb08c3a0a09349d9f6f3a2a4df6d41e358cfbab0c8a208844
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / arity-0.26.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL arity-0.26.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 5.0 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
5493e90bf6d1a5533169b05ebb4f92670db76550fa2ccf81b9e630b758108e8c
BLAKE2b-256 checksum
How to use checksums
906aa7daaf6c18af8558166dd5d8293362c303be587c944f509fe8696ba706c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / arity-0.26.0-py3-none-macosx_11_0_arm64.whl

Download URL arity-0.26.0-py3-none-macosx_11_0_arm64.whl
Size 4.9 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1083e2401d5dcb8b66f1837efc38d7ed2a78b268de3fac0e79beabbb97de629a
BLAKE2b-256 checksum
How to use checksums
4c57d5b65c3595631b65f1d5e842b6744776f71ce9443f464bca59d31355d854
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / arity-0.26.0-py3-none-macosx_10_12_x86_64.whl

Download URL arity-0.26.0-py3-none-macosx_10_12_x86_64.whl
Size 5.2 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
6908dad5281e0d3e8781765cfba4286f82f7769e3719b277e6c5f101e6d15f1d
BLAKE2b-256 checksum
How to use checksums
df80106c8b96ead7a39379dbd63a1c688ec926e3bfba127e04b9bac5a500a6f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.26.0 This release

9 release files

0.24.0

9 release files

0.22.0

9 release files

0.21.0

9 release files

0.20.0

9 release files

0.19.1

9 release files

0.19.0

9 release files

0.18.0

9 release files

0.14.0

9 release files

0.13.0

9 release files

0.12.0

9 release files

0.9.0

9 release files

0.8.0

9 release files

0.7.0

9 release files

0.6.0

9 release files

0.5.0

9 release files

0.4.0

9 release files

0.3.0

9 release files

0.2.0

9 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page