Where apps hide your files
Arduino IDE keeps sketches and libraries in ~/Documents/Arduino and board packages in the hidden ~/Library/Arduino15. Here is what is in each, where the IDE 2 settings are, and how to remove things without breaking the setup.
Arduino IDE spreads its files over three places on a Mac. Your sketches and libraries are in the sketchbook:
~/Documents/Arduino
~/Documents/Arduino/libraries
Board packages (the cores, compilers and tools for ESP32, AVR, RP2040 and so on) are in the hidden Arduino15 folder:
~/Library/Arduino15
Arduino IDE 2 also has a hidden settings folder:
~/.arduinoIDE
These are the default paths from Arduino's own help centre. The sketchbook location is a setting, so if you or someone set up the Mac differently, check Arduino IDE > Settings (the menu on macOS), which shows the Sketchbook location.
To open them, use Go > Go to Folder (⇧⌘G) in Finder and paste the path, or from Terminal:
open ~/Library/Arduino15
Arduino's help page for the Arduino15 folder suggests another route: in Finder, open the Go menu, hold ⌥ and click Library.
Each sketch is a folder in the sketchbook, containing a file with the .ino extension. Arduino's sketch specification requires the main .ino file to match the folder's name, so rename both together or not at all. When you save a new sketch without renaming it, the IDE suggests a date-based name such as sketch_nov17b, according to Arduino. Opening Sketch > Show Sketch Folder reveals the folder of whichever sketch is open.
Libraries installed through the Library Manager, with Sketch > Include Library > Add .ZIP Library, or by hand, all go into ~/Documents/Arduino/libraries. Each library gets a folder named after it, containing files such as library.properties, keywords.txt, src and examples.
To install one by hand, extract the zip, move the folder (it should carry the library's name) into libraries, and restart the IDE. Arduino notes that a library in the sketchbook overrides previously installed versions of the same library, which is a common cause of "wrong version" surprises.
To find a library that has examples, Arduino suggests opening File > Examples, picking one of that library's examples, then choosing Sketch > Show Sketch Folder, which reveals where the example lives inside the library's folder.
Some libraries are bundled with a board package rather than the sketchbook. Those sit in ~/Library/Arduino15/packages/<vendor>/hardware/<platform>/<version>/libraries and only show up when one of that package's boards is selected under Tools > Board. Arduino advises against removing them and says they come back when the package updates.
Inside Arduino15, the layout is packages, then the vendor (for example arduino), then hardware, then the platform and its version. Arduino's help shows the AVR core as:
~/Library/Arduino15/packages/arduino/hardware/avr/1.8.4/
That folder holds files such as boards.txt, platform.txt, cores and variants. The version in your path will differ, and Arduino notes that the Boards Manager keeps only one version of a package installed at a time. Third-party vendors such as esp32 or adafruit get their own folder under packages. The same Arduino15 folder also holds the downloaded tools and, in the Arduino CLI's design, a staging folder for downloads and the package and library index files. Names there come from the CLI's documentation, so list the folder to see what your version holds.
Arduino IDE 2 stores its settings in ~/.arduinoIDE: settings.json for the IDE and arduino-cli.yaml for the command-line engine underneath it. Arduino says this folder is used only by IDE 2. Both are configuration files, so read them in a text editor only if you need to change a path.
The old Arduino IDE 1.x is installed as /Applications/Arduino.app. Arduino IDE 2 installs as /Applications/Arduino IDE.app. Both default to the same sketchbook and Arduino15 folders, so sketches carry over between them. Arduino's help also lists ~/Library/Application Support/arduino-ide/ as a user data folder holding temporary files, used only by IDE 2.
arduino-cli.yaml. For the CLI, the default data directory on macOS is ~/Library/Arduino15 and the default user directory is ~/Documents/Arduino, which matches the IDE. The CLI's documentation also gives ~/Library/Caches/arduino as its default build cache on macOS.Use the IDE first. Tools > Manage Libraries (the Library Manager) lists installed libraries; set the type filter to Installed and click Remove (when an update is waiting, the button says Update, and Remove moves to the three-dot menu). The Boards Manager (Tools > Board > Boards Manager) has a Remove button for board packages. Arduino's help says deleting folders directly also works for libraries: quit the IDE, delete the library's folder inside libraries, and start the IDE again.
If compiling or uploading fails with console errors, Arduino's uninstall guide suggests removing the Arduino15 folder and the libraries subfolder and restarting the IDE. That also removes every board package and library, which then have to be installed again, so copy both folders somewhere first. Sketches themselves are not in either folder, but back up the whole sketchbook anyway. For problems with the IDE itself, the same guide suggests removing ~/Library/Application Support/arduino-ide instead, which holds only temporary files.
Copy ~/Documents/Arduino for sketches and libraries. That is the part that cannot be downloaded again. Board packages in Arduino15 are large and re-downloadable through the Boards Manager, so copy them only if you need the exact versions or have no network. The .arduinoIDE folder carries your IDE 2 settings; if you skip it, note settings such as Additional Boards Manager URLs and enter them again on the new Mac.
If your sketchbook is under Documents and Documents syncs to iCloud Drive, make sure the files are actually downloaded to the Mac before you build.
Arduino15 is in ~/Library and .arduinoIDE starts with a dot, so Finder searches skip both. Library files carry generic names like README.md and src, which bury the one you want.
A library's header is the best thing to search for. Typing ArduinoBLE.h or library.properties into Everywhere lists every copy on the Mac, with its folder, so you can tell the one in Documents/Arduino/libraries from any copy bundled inside a board package under Arduino15. Typing boards.txt lists every installed board package. Documents is a protected folder, so Everywhere finds sketches there once it has Full Disk Access. Names only, not code.
At ~/Documents/Arduino/libraries, inside your sketchbook. Libraries from the Library Manager and from Add .ZIP Library go there.
In ~/Library/Arduino15/packages, under a folder for each vendor and then hardware. Library is hidden in Finder.
In ~/.arduinoIDE, a hidden folder holding settings.json and arduino-cli.yaml. Arduino says it is used only by IDE 2.
Open Arduino IDE > Settings and change Sketchbook location. Move existing sketches to the new folder yourself.
Everywhere keeps track of every file on your Mac — including the folders Spotlight hides and drives you have unplugged. Free for a day, then $19 once.
Version 2.20.3 · macOS 13+ · 4.7 MB · notarised