Skip to main content

Arity

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

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:

  • 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
  • Aqua: aqua install jolars/arity
  • Prebuilt binaries: from the releases page
  • VS Code/Open VSX: the Arity extension (also works in Positron)
  • Arch Linux: pacman -S arity-bin (or arity) (from the AUR: 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.

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
    # arity version
    rev: v0.18.0
    hooks:
      # Lint .R files
      - id: arity-lint
      # Format the same files in place
      - id: arity-format

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:

Release files for arity 0.22.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.22.0
File Size Uploaded
arity-0.22.0.tar.gz 1.3 MB Details

Built distributions (wheels)

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

Total release size:43.0 MB

Release files / arity-0.22.0.tar.gz

Download URL arity-0.22.0.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
830b89928b5b70bc9003e7be7a12846415578918e98cd152a0b6f0f24f69fe26
BLAKE2b-256 checksum
How to use checksums
6ff4d17212b3d54989744c1f1bebaf82b34bd70a3e136ea8827a9e86f4ef340c
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 Aug 31, 2026.

Transparency log

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

Download URL arity-0.22.0-py3-none-win_arm64.whl
Size 5.0 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
2629edffbb8f9486504170e4b168263339ba1ac31a1d4dbebe4f00cded2bf120
BLAKE2b-256 checksum
How to use checksums
1c1d727dab9ad088bf294a39cbb2d2adc6bf410fb8b474e4dcf0438526d55323
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 Aug 31, 2026.

Transparency log

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

Download URL arity-0.22.0-py3-none-win_amd64.whl
Size 5.3 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
8988e07e1c8a286ee9203b98a058415bc7c2b42cfa4ed226b7746578db368fc1
BLAKE2b-256 checksum
How to use checksums
046881b7218bb8becba60ab9c076019869f99a41f28c8582709814b29a2467cf
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 Aug 31, 2026.

Transparency log

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

Download URL arity-0.22.0-py3-none-musllinux_1_2_x86_64.whl
Size 5.5 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
787cccf306836feb744d22cf634495895ea8a34f498ac2af7b4832d0e63b3bc8
BLAKE2b-256 checksum
How to use checksums
76b62b60e60f87a44265cdca8bf4c7197e804020c728caf347b40ec7d21cf4bf
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 Aug 31, 2026.

Transparency log

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

Download URL arity-0.22.0-py3-none-musllinux_1_2_aarch64.whl
Size 5.1 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
0b09a37e6cb4bf8d3f5de59d5cabf2704aa689ed624052c95ee406638e01eeaa
BLAKE2b-256 checksum
How to use checksums
c044ce978ba6b7d917736c9ef9a0b8f267b56259ff5150e8e39c2ed806bb378f
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 Aug 31, 2026.

Transparency log

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

Download URL arity-0.22.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 5.4 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
e4543e2b3a1558260a98ac40d60c36ca12e91022569bbe111aa0dd8751a4cfd1
BLAKE2b-256 checksum
How to use checksums
a8d6bde8b80bad1d8bf64f858aa12d9be4100f70eb3d9431762155ef41ca90ad
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 Aug 31, 2026.

Transparency log

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

Download URL arity-0.22.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 5.1 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
456ca48b15efa9f64613f3c883d85374037f9696ad342e7bd72cda04321a25a9
BLAKE2b-256 checksum
How to use checksums
5d0bd1bbcc5a01670e58dee5cfc0ddecda7ea0e8815476d12bc2fea772c7211b
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 Aug 31, 2026.

Transparency log

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

Download URL arity-0.22.0-py3-none-macosx_11_0_arm64.whl
Size 5.0 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
bccf0a021fdef7e553266f125a55b7a79ce4f174193bdb592d1b3dd2005ed3d2
BLAKE2b-256 checksum
How to use checksums
2040096cfacf5c34d90c599153455f3d2a307730f0df6c6841746b485ce3214a
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 Aug 31, 2026.

Transparency log

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

Download URL arity-0.22.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
bc03361ed98fe781a147afac3c00a9adb7cdd138a375b174c1b45907f6ff14fc
BLAKE2b-256 checksum
How to use checksums
9eb3431d13f6d3dd73183fe1e415172edaf9ca8c3d279332fa25467c02ac4a00
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 Aug 31, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.22.0 This release

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