# Install open-ocd with Homebrew, apk, apt, dnf, MacPorts, Nix, pacman, scoop, zypper

On-chip debugging, in-system programming and boundary-scan testing. Version 0.12.0 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:open-ocd
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install open-ocd
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install openocd
```

  Evidence: MacPorts ports tree: cross/openocd/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add openocd
```

  Evidence: Alpine Linux edge package indexes: openocd from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install openocd
```

  Evidence: Debian stable package indexes: openocd from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install openocd
```

  Evidence: Fedora Rawhide package metadata: openocd from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#openocd
```

  Evidence: nixpkgs package indexes: pkgs/by-name/op/openocd/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S openocd
```

  Evidence: Arch Linux sync databases: openocd from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install openocd
```

  Evidence: openSUSE Tumbleweed package metadata: openocd from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

### Windows

- Scoop (92%):

```sh
scoop install main/openocd
```

  Evidence: Scoop official bucket manifest trees: bucket/openocd.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:open-ocd
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/open-ocd>
- **Version:** 0.12.0
- **Source summary:** On-chip debugging, in-system programming and boundary-scan testing
- **Homepage:** <https://openocd.org/>
- **Repository:** <https://github.com/openocd-org/openocd>
- **Upstream docs:** <https://openocd.org/doc/html/index.html>
- **License:** GPL-2.0-or-later
- **Source archive:** <https://downloads.sourceforge.net/project/openocd/openocd/0.12.0/openocd-0.12.0.tar.bz2>
- **Generated:** 2026-07-08T18:08:21+00:00

## Executables

- openocd (cli)
- openocd (alias)

## Dependencies

- capstone
- hidapi
- libftdi
- libusb

## Build dependencies

- pkgconf

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_big_sur, arm64_linux, arm64_monterey, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, big_sur, monterey, sonoma, ventura, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 0.12.0
- Local data: ok
- Upstream repository: https://openocd.org/
- info: No package-manager update timestamp was available.
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

OpenOCD, the Open On-Chip Debugger, is a command-line server and toolset for embedded debugging, in-system flash programming, and boundary-scan work. It sits between host debuggers such as GDB and hardware debug adapters that speak transports such as JTAG or SWD.

### Project history

OpenOCD was created by Dominic Rath as part of a 2005 diploma thesis at the University of Applied Sciences Augsburg. Its documentation describes the project as having grown from that thesis into an open-source project supported by software and hardware developers around the world.

The project's scope expanded from JTAG-centered on-chip debugging into a practical embedded bring-up tool: it handles debug adapters, target configuration scripts, CPU cores, flash chips, FPGA/PLD loading paths, and server interfaces for GDB, Telnet, and RPC clients.

### Adoption history

OpenOCD became a common tool in embedded development because it gives open tooling a shared place to encode adapter and board knowledge. The user guide documents bundled script libraries for interfaces, boards, targets, and site-specific configuration, which is why many vendor and community board workflows invoke openocd with one or two -f script arguments.

Distribution packaging spread it broadly across embedded Linux and desktop development environments. Homebrew, Debian, Fedora, Arch, Nix, Scoop, and other package managers expose the same openocd executable, making it a portable default for projects that want to document one debugger command.

### How it is used

A typical OpenOCD session names an adapter script and a board or target script, starts the OpenOCD server, waits for a JTAG or SWD target to be detected, and then connects GDB to the server for breakpoints, stepping, register access, and memory inspection.

For production and lab work, OpenOCD is also used for flash programming and boundary-scan tasks. The documentation covers NOR and NAND flash support, PLD/FPGA loading commands, and SVF/XSVF execution for JTAG test patterns.

### Why package nerds care

OpenOCD is package-nerd significant because its executable is only half the package. The script library, USB permissions, adapter driver choices, Tcl integration, and packaged target definitions are what turn the binary into a usable hardware tool.

It also shows why embedded packages are unusually sensitive to version and build options: support for a specific probe, chip, flash driver, or board script can decide whether a firmware workflow works at all.

### Timeline

- 2005: Dominic Rath created OpenOCD as part of a diploma thesis at the University of Applied Sciences Augsburg.
- 2008-2025: the user guide credits the OpenOCD Project across this span, with earlier named contributors credited for 2007-2010 documentation work.
- 2026-06-29: the OpenOCD user guide snapshot used for this enrichment documents release 0.12.0+dev.

### Related projects

- GDB is the debugger most commonly paired with OpenOCD for source-level debugging.
- JTAG, SWD, SVF, XSVF, and IEEE 1149.1 are the hardware and test-procedure ecosystems that explain much of OpenOCD's command surface.

### Sources

- <https://formulae.brew.sh/formula/open-ocd>
- <https://github.com/openocd-org/openocd>
- <https://openocd.org/doc/html/About.html>
- <https://openocd.org/doc/html/Boundary-Scan-Commands.html>
- <https://openocd.org/doc/html/PLD_002fFPGA-Commands.html>
- <https://openocd.org/doc/html/Running.html>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals


## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Unix: openocd.cfg, $(INSTALLDIR)/scripts
## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** open-ocd
- **Aliases:** openocd
- **Version Scheme:** 0
- **Revision:** 1
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- MacPorts - openocd: installed executable or alias match | MacPorts ports tree: cross/openocd/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Debian apt - openocd - 0.12.0-3+b2: installed executable or alias match | Debian stable package indexes: openocd from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Open on-chip JTAG/SWD debug solution for embedded target devices | http://openocd.sourceforge.net/
- Nix - openocd: installed executable or alias match | nixpkgs package indexes: pkgs/by-name/op/openocd/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - openocd - 0.12.0-1build2: installed executable or alias match | Ubuntu 24.04 LTS package indexes: openocd from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Open on-chip JTAG/SWD debug solution for embedded target devices | http://openocd.sourceforge.net/
- apk - openocd - 0.12.0-r7: installed executable or alias match | Alpine Linux edge package indexes: openocd from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Free and Open On-Chip Debugging, In-System Programming and Boundary-Scan Testing | https://openocd.org/
- apk - openocd-dev - 0.12.0-r7: installed executable or alias match | Alpine Linux edge package indexes: openocd-dev from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Free and Open On-Chip Debugging, In-System Programming and Boundary-Scan Testing (development files) | https://openocd.org/
- apk - openocd-doc - 0.12.0-r7: installed executable or alias match | Alpine Linux edge package indexes: openocd-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Free and Open On-Chip Debugging, In-System Programming and Boundary-Scan Testing (documentation) | https://openocd.org/
- apk - openocd-udev - 0.12.0-r7: installed executable or alias match | Alpine Linux edge package indexes: openocd-udev from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | udev rules for openocd | https://openocd.org/
- dnf - openocd - 0.12.0-3.fc42.5: installed executable or alias match | Fedora Rawhide package metadata: openocd from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Debugging, in-system programming and boundary-scan testing for embedded devices | https://sourceforge.net/projects/openocd
- pacman - openocd - 1:0.12.0-5: installed executable or alias match | Arch Linux sync databases: openocd from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Debugging, in-system programming and boundary-scan testing for embedded target devices | https://openocd.org
- zypper - openocd - 0.12.0-2.11: installed executable or alias match | openSUSE Tumbleweed package metadata: openocd from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Debugging, in-system programming and boundary-scan testing for embedded devices | http://openocd.sourceforge.net/
- zypper - openocd-data - 0.12.0-2.11: installed executable or alias match | openSUSE Tumbleweed package metadata: openocd-data from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Hardware Scripts for OpenOCD | http://openocd.sourceforge.net/
- Scoop - main/openocd: installed executable or alias match | Scoop official bucket manifest trees: bucket/openocd.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1


## Related links

- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [capstone](https://www.automicvault.com/pkg/brew/capstone/) - Runtime dependency declared by Homebrew.
- [hidapi](https://www.automicvault.com/pkg/brew/hidapi/) - Runtime dependency declared by Homebrew.
- [libftdi](https://www.automicvault.com/pkg/brew/libftdi/) - Runtime dependency declared by Homebrew.
- [pkgconf](https://www.automicvault.com/pkg/brew/pkgconf/) - Build dependency declared by Homebrew.
- [mspdebug](https://www.automicvault.com/pkg/brew/mspdebug/) - Shares av.db curated category or tags: cli, debugging, developer-tools, embedded, jtag.
- [probe-rs-tools](https://www.automicvault.com/pkg/brew/probe-rs-tools/) - Shares av.db curated category or tags: cli, debugging, developer-tools, embedded, microcontrollers.
- [gpsim](https://www.automicvault.com/pkg/brew/gpsim/) - Shares av.db curated category or tags: cli, debugging, developer-tools, embedded.
- [jaguar](https://www.automicvault.com/pkg/brew/jaguar/) - Shares av.db curated category or tags: cli, developer-tools, embedded, microcontrollers.
- [lm4tools](https://www.automicvault.com/pkg/brew/lm4tools/) - Shares av.db curated category or tags: cli, developer-tools, embedded, microcontrollers.
- [openfpgaloader](https://www.automicvault.com/pkg/brew/openfpgaloader/) - Shares av.db curated category or tags: cli, developer-tools, embedded, jtag.
- [platformio](https://www.automicvault.com/pkg/brew/platformio/) - Shares av.db curated category or tags: cli, developer-tools, embedded, microcontrollers.
- [sdcc](https://www.automicvault.com/pkg/brew/sdcc/) - Shares av.db curated category or tags: cli, developer-tools, embedded, microcontrollers.
- [stlink](https://www.automicvault.com/pkg/brew/stlink/) - Local package facts share a topical domain. Shared terms: cli, debugging, developer, developer-tools, embedded.

## Combined YAML source

View the package source record on GitHub. [combined/open-ocd.yml](https://github.com/automic-vault/db/blob/main/combined/open-ocd.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated configuration and credential file locations
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
