What is the BUNDLE file format?
.bundle is a plug-in bundle format for macOS, developed by Apple. Rather than a true single file, a .bundle is a directory package - a folder the Finder presents as one opaque item, a concept inherited from NeXTSTEP and formalized in Mac OS X 10.0.
Files with the .bundle extension contain executable code and resources. .bundle files are used as macOS containers for distribution of:
- applications,
- frameworks (development platforms and libraries),
- plug-ins.
.bundle data is organized differently depending on what type of contents it stores. The type of data a .bundle file contains also determines how the Finder will show the file. Plug-ins and applications are displayed as single files that can be inspected using the Show Package Contents command. Frameworks are displayed as file folders. .bundle files should not be opened manually regardless of their contents.
Internally, a .bundle follows the CFBundle layout: a Contents/ folder with an Info.plist manifest (declaring CFBundlePackageType = BNDL), a MacOS/ subfolder with the Mach-O executable, and Resources/. Related types include .app, .framework, .kext and .plugin.
Security & safety
RISK: MEDIUMA .bundle contains executable code that a host app will load and run, so it carries the same trust considerations as installing any plug-in: only install bundles from sources you trust, and prefer code-signed/notarized ones so macOS Gatekeeper can verify them. Merely browsing a bundle's contents in Finder is harmless; the risk is loading an untrusted plug-in into an app, which then runs its code with that app's privileges.
Format details
in a nutshell- Ruby/Rails I18n locale or gem .bundle (compiled extension) - On macOS a compiled Ruby C extension is a Mach-O loadable bundle named *.bundle inside a gem.
- Siemens NX / generic application data 'bundle' - A handful of apps write a proprietary single-file .bundle of grouped settings or assets.
Programs that open BUNDLE files
Technical details
deep spec| Format type | macOS directory package - a folder the Finder presents as a single opaque file |
| Developer | Apple |
| Internal structure | `Contents/` folder with `Info.plist`, `MacOS/` (Mach-O executable), `Resources/`, and optional `Frameworks/` and `PlugIns/` subdirectories |
| Package type code | `BNDL` - set as `CFBundlePackageType` in `Info.plist` |
| Executable format | Mach-O binary; magic bytes `FE ED FA CE` (32-bit BE), `CF FA ED FE` (64-bit LE), or `CA FE BA BE` (universal/fat binary) |
| Metadata manifest | `Info.plist` - XML or binary property list declaring bundle identifier, version, executable name, and package type |
| MIME type | `application/octet-stream`; also reported as `inode/directory` on POSIX systems |
| Filesystem container | HFS+ or APFS directory with the package bit set; displayed as a unified item in Finder |
| Code signing | Mach-O executable inside the bundle can be signed with `codesign`; enforced by Gatekeeper and notarization on macOS 10.15+ |
| Platform support | macOS (primary); iOS and iPadOS (loadable bundles embedded inside `.app` packages); originally NeXTSTEP |
| Typical file size | Tens of KB to tens of MB, depending on the plug-in code and bundled resources |
| Encoding | Mixed - binary Mach-O executable plus XML or binary-format `Info.plist` and text resource files |
| Windows behavior | Copied bundle appears as an ordinary folder; macOS package semantics are absent on Windows |
| Identification method | Identified by the `.bundle` directory-name suffix and presence of `Contents/Info.plist`; no file-level magic bytes exist |
| Bundle identifier | Every `.bundle` carries a reverse-DNS `CFBundleIdentifier` string (e.g., `com.example.plugin`) used for uniqueness and code signing |
| Released | 1990s (NeXTSTEP bundle concept); formalized in Mac OS X 10.0, 2001 |
| Latest version | Modern Core Foundation / Foundation bundle layout (current macOS) |
| Open standard | Yes · royalty-free |
| Specification | developer.apple.com |
BUNDLE conversions
Community Q&A
asked by usersNo questions yet - be the first to ask about BUNDLE files.