Is there still no Apple Silicon version?
There are two versions available from https://www.arduino.cc/en/software/ for the Mac; one of them is labelled "Silicon".
I'm not a Mac user so I don't know any intricacies.
Looks like the first available Apple Silicon (aka arm64) version was 2.0.3; but the first released simultaneously with the others was 2.2.0, three years ago.
Doing a bit of research the issue seems to be (parts of) the toolchain that still require Rosetta, not the IDE itself.
There might be more but How to avoid installing Rosetta on an Apple Silicon Mac - #7 by ptillisch contains two links to issues.
While the IDE download for MacOS is published as both x86_64 and arm64, on first use the IDE automatically downloads a few x86_64 components.
Calling ctags an "external" component is disingenuous. It is used automatically when compiling all sketches, regardless of the board / platform selected. As far as I know (and I would love to be proven wrong on this) the Arduino platform spec doesn't provide any way for packages to override or replace ctags. For all practical purposes, ctags is effectively part of the IDE. I and others have tried to help with building ctags for arm64. My hope is the Arduino developers will update their ctags download with an arm64 build.
I believe the other x86_64 components are only used for boards with AVR processors.
I have also tried to help with the AVR toolchain. It is much more challenging than ctags, but with some effort I was able to modify Arduino's scripts to build it for Apple Silicon.
The main change is the math libraries (gmp, mpc, mpfr) which gcc uses internally to perform math operations as the target processor would. Newer versions of these libraries which support Apple Silicon are required. Otherwise the same version of gcc and same set of avr-gcc patches Arduino has used for many years are faithfully reproduced, which should give a build which very closely matches the avr-gcc Arduino has published for many years on all other platforms.
Some shell hackery shows which tools have been updated to run on Apple Silicon
pushd ~/Library/Arduino15 ; diff -u <(find . -type f -perm +111 \
-exec sh -c 'file "{}" | grep -q "x86_64" && ! file "{}" | grep -q "arm64"' \; \
-exec dirname -- {} \; | sort -u
) <(find . -type f -perm +111 \
-exec sh -c 'file "{}" | grep -q "arm64"' \; \
-exec dirname -- {} \; | sort -u
) | sort -d ; popd
For example, narrowing that initial directory to ~/Library/Arduino15/packages/esp32 yields
+./tools/esp-rv32/2507/bin
+./tools/esp-rv32/2507/lib
+./tools/esp-rv32/2507/lib/bfd-plugins
+./tools/esp-rv32/2507/libexec/gcc/riscv32-esp-elf/14.2.0
+./tools/esp-rv32/2507/libexec/gcc/riscv32-esp-elf/14.2.0/install-tools
+./tools/esp-rv32/2507/libexec/gcc/riscv32-esp-elf/14.2.0/plugin
+./tools/esp-rv32/2507/lib/gcc/riscv32-esp-elf/14.2.0/plugin
+./tools/esp-rv32/2507/riscv32-esp-elf/bin
-./tools/esptool_py/4.5.1
+./tools/esptool_py/5.1.0
+./tools/esp-x32/2507/bin
+./tools/esp-x32/2507/lib
+./tools/esp-x32/2507/lib/bfd-plugins
+./tools/esp-x32/2507/libexec/gcc/xtensa-esp-elf/14.2.0
+./tools/esp-x32/2507/libexec/gcc/xtensa-esp-elf/14.2.0/install-tools
+./tools/esp-x32/2507/libexec/gcc/xtensa-esp-elf/14.2.0/plugin
+./tools/esp-x32/2507/lib/gcc/xtensa-esp-elf/14.2.0/plugin
+./tools/esp-x32/2507/xtensa-esp-elf/bin
-./tools/mklittlefs/3.0.0-gnu12-dc7f933
-./tools/mklittlefs/4.0.2-db0513a
-./tools/mkspiffs/0.2.3
+./tools/openocd-esp32/v0.12.0-esp32-20230921/bin
+./tools/openocd-esp32/v0.12.0-esp32-20250707/bin
+./tools/riscv32-esp-elf-gdb/16.3_20250913/bin
+./tools/s3-gcc/2021r2-p5/bin
+./tools/s3-gcc/2021r2-p5/lib
+./tools/s3-gcc/2021r2-p5/libexec/gcc/xtensa-esp32s3-elf/8.4.0
+./tools/s3-gcc/2021r2-p5/libexec/gcc/xtensa-esp32s3-elf/8.4.0/install-tools
+./tools/s3-gcc/2021r2-p5/libexec/gcc/xtensa-esp32s3-elf/8.4.0/plugin
+./tools/s3-gcc/2021r2-p5/lib/gcc/xtensa-esp32s3-elf/8.4.0/plugin
+./tools/s3-gcc/2021r2-p5/xtensa-esp32s3-elf/bin
+./tools/xtensa-esp-elf-gdb/11.2_20220823/bin
+./tools/xtensa-esp-elf-gdb/11.2_20220823/lib
+./tools/xtensa-esp-elf-gdb/16.3_20250913/bin
+./tools/xtensa-esp-elf-gdb/16.3_20250913/lib
So version 4.5.1 of esptool_py is Intel, requiring Rosetta, but 5.1.0 has been updated to Apple Silicon; as has most of the toolchain.
Almost everything in packages/arduino still requires Rosetta. For packages/builtin
-./packages/builtin/tools/ctags/5.8-arduino11
+./packages/builtin/tools/dfu-discovery/0.1.2
+./packages/builtin/tools/mdns-discovery/1.0.12
+./packages/builtin/tools/mdns-discovery/1.0.9
+./packages/builtin/tools/serial-discovery/1.4.1
+./packages/builtin/tools/serial-discovery/1.4.3
+./packages/builtin/tools/serial-monitor/0.14.1
+./packages/builtin/tools/serial-monitor/0.15.0
only ctags (I have IDE 2.3.6 on this box)
This is a useful way to look at the Apple Silicon transition, because the IDE itself being native does not necessarily mean the full toolchain is.
It looks like ESP32 support is already in much better shape, with newer tools such as esptool_py 5.1.0 and much of the compiler/debug toolchain available for arm64, while some Arduino packages still depend on x86_64 binaries and Rosetta.
A documented list of which bundled and board-specific tools are still Intel-only would probably help Mac users understand exactly when Rosetta is still required.
I've been maintaining such a list here:
However, note that this is only the list of tools maintained by Arduino, or depended on by official Arduino boards platforms. Each boards platform can specify arbitrary tool dependencies. 3rd party platforms may have dependencies on additional tools maintained by others. The vast and diverse hardware ecosystem created by the Arduino community surely has many other tool dependencies which are currently only available in x86 macOS builds. A complete migration of the ecosystem to native Apple Silicon support will require the actions of many entities not in any way connected to Arduino.
I guess we will see some of that work by 3rd parties occur only at such time as things break if Apple ceases to provide compatibility for x86 applications on Apple Silicon machines. And of course some of these 3rd party platforms and tools are no longer maintained, so such an event would result in the loss of modern macOS compatibility for those platforms (though there is always the possibility the community will resurrect such platforms by forking them).
Until Arduino updates ctags, Rosetta is always required.
This may not be the topic to ask this question but does anyone know if IDE 2.x runs on an Apple Neo?
Don't have a Neo, but it should run IDE 2.x. Neo runs native arm64 software, and the Rosetta utility for "legacy" x86_64, just like other Macs. 8GB unified RAM is a little tight.
I came to the same conclusion reading the IDE 2.x and Neo descriptions but I don't have a Neo to test with either.
The recent release of MacOS 27 makes this again a more pressing issue!
Arduino needs to update ctags to an Apple Silicon version ASAP.
My apple Silicon Mac was automatically updated to the latest version of Rosetta when I updated to macOS 27.0.1 on 9/29.
After my system updated to 27.0.1 last night I could no longer compile my Arduino projects. It complained about the ctags tool having a bad CPU ID. I worked around it by downloading an Apple Silicon version and manually copying it into place using info from this thread.
I confirm that Rosetta 2 is uninstalled when you update to macOS 27:
- If Rosetta was previously installed, it will not be automatically restored upon upgrading to macOS 27. Rosetta will continue as a general-purpose compatibility tool through macOS 27.
However, note that you can still use Rosetta 2 to provide compatibility for x86 applications on macOS 27 machines. You only need to reinstall Rosetta 2. macOS allows you to do that via a convenient dialog that appears if you attempt to launch an x86 application directly:
However, in the case where the x86 application is invoked indirectly (as is the case when Arduino IDE uses ctags), it does not do so, and the invocation instead fails with a cryptic "bad CPU type in executable" error. In this case you must instead manually install Rosetta 2 by running the following command from the terminal:
softwareupdate --install-rosetta
