# Install llnode with Homebrew

LLDB plugin for live/post-mortem debugging of node.js apps. Version 4.0.0 via Homebrew; verified 2026-06-25.

## Install

```sh
sudo av install brew:llnode
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install llnode
```

  Evidence: local Homebrew formula metadata

## Package facts

- **Package key:** brew:llnode
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/llnode>
- **Version:** 4.0.0
- **Source summary:** LLDB plugin for live/post-mortem debugging of node.js apps
- **Homepage:** <https://github.com/nodejs/llnode>
- **Repository:** <https://github.com/nodejs/llnode>
- **Upstream docs:** <https://github.com/nodejs/llnode#readme>
- **License:** MIT
- **Source archive:** <https://github.com/nodejs/llnode/archive/refs/tags/v4.0.0.tar.gz>
- **Last updated:** 2026-06-25T13:37:48+02:00
- **Generated:** 2026-07-10T07:20:53+00:00

## Executables

- llnode (cli)
- llnode (alias)

## Build dependencies

- llvm
- node

## Uses from macOS

- llvm

## Install behavior

- Post-install hook: not defined
- Caveats: `brew install llnode` does not link the plugin to LLDB PlugIns dir. To load this plugin in LLDB, one will need to either * Type `plugin load $HOMEBREW_PREFIX/opt/llnode/lib/llnode/llnode.dylib` on each run of lldb * Install plugin into PlugIns dir manually (macOS only): mkdir -p "$HOME/Library/Application Support/LLDB/PlugIns" ln -sf '$HOMEBREW_PREFIX/opt/llnode/lib/llnode/llnode.dylib' "$HOME/Library/Application Support/LLDB/PlugIns/"
- Bottle: available on arm64_big_sur, arm64_linux, arm64_monterey, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, big_sur, catalina, monterey, sonoma, ventura

## Freshness

- Page generated: 2026-07-10
- Package-manager version: 4.0.0
- Package-manager updated: 2026-06-25
- Local data: ok
- Upstream repository: https://github.com/nodejs/llnode
- Upstream latest detected: v4.0.0 (current)
## Project history and usage

llnode is the Node.js project's LLDB plugin for inspecting JavaScript state inside live Node.js processes and core dumps. It matters to package-manager users because it gives native debugger workflows a Node- and V8-aware command set for post-mortem debugging, memory investigation, and crash analysis.

### Project history

The llnode repository was created under the Node.js GitHub organization in November 2015, and its official package metadata describes it as an LLDB plugin for Node.js and V8 that exposes JavaScript state from processes and core dumps. Early tags in the official repository show a 1.0.0 line by 2016, while later releases tracked changes in Node.js, V8, and LLVM's LLDB APIs.

The project's design is intentionally tied to LLDB. Its README documents a shortcut executable that starts LLDB with the plugin loaded, direct plugin loading inside LLDB, and optional automatic loading through ~/.lldbinit. Its commands add V8-aware operations such as JavaScript backtraces, object inspection, reference finding, active handle listing, and source listing on top of LLDB's standard native-debugging facilities.

### Adoption history

Node.js's Diagnostics Working Group named llnode in February 2017 alongside node-report as one of the experimental tools that had landed in Node.js Foundation diagnostics work for post-mortem analysis. That placed llnode in the same ecosystem as async_hooks, inspector, tracing, and other efforts to make production Node.js failures easier to investigate.

The official README documents installation through npm and Homebrew, with platform notes for macOS, Linux, FreeBSD, Windows, and Termux. Release notes show continuing maintenance around supported Node.js lines: v3.0.0 added Node.js 12 support and dropped older Node.js and LLDB support, v3.2.0 added Node.js 14 support, and v4.0.0 updated support for Node.js 14, 16, and 18 while dropping earlier unsupported versions.

### How it is used

Package users install llnode when they need to load a Node.js core dump with the exact node executable that produced it, attach LLDB to a live process, or run a Node.js program under LLDB until it aborts. Once loaded, llnode's v8 subcommands expose JavaScript frames, values, source, object counts, references, active handles, and active requests.

llnode is especially useful for failures that are hard to debug through the regular inspector path: native addon crashes, production core dumps, memory leaks, and post-crash analysis where the process is no longer running. Its README also warns that it supports official active Node.js builds and depends on an appropriate LLDB installation, which is why package-manager integration is practical rather than cosmetic.

### Why package nerds care

For package nerds, llnode is the bridge between a high-level JavaScript runtime and a low-level debugger. It packages C++ plugin code, Node.js build tooling, LLDB headers and libraries, and V8 layout knowledge into a command-line tool that can be installed before the incident happens.

It also illustrates a maintenance problem common to runtime-introspection packages: every major Node.js, V8, and LLVM/LLDB change can move internal structures or APIs. The package is valuable precisely because it absorbs that churn for users who just need to open a core dump and ask what JavaScript objects were alive.

### Timeline

- 2015-11-06: The nodejs/llnode repository is created on GitHub.
- 2016-04: The official repository has a v1.0.0 tag line.
- 2017-02: The Node.js Diagnostics Working Group lists llnode as a post-mortem analysis tool.
- 2018-09-25: llnode v2.0.0 is released.
- 2020-01-21: llnode v3.0.0 adds Node.js 12 support and drops older Node.js and LLDB support.
- 2020-05-04: llnode v3.2.0 adds Node.js 14 support.
- 2022-09-14: llnode v4.0.0 updates support for Node.js 14, 16, and 18.

### Related projects

- llnode depends on LLDB from the LLVM project and on Node.js/V8 runtime internals.
- It sits beside other Node.js diagnostics work such as node-report, async_hooks, inspector, node-inspect, and tracing tools.
- For package users, Homebrew's llvm package can provide newer LLDB tooling used by llnode.

### Sources

- <https://api.github.com/repos/nodejs/llnode>
- <https://github.com/nodejs/llnode>
- <https://github.com/nodejs/llnode#readme>
- <https://github.com/nodejs/llnode/releases>
- <https://nodejs.org/en/blog/wg/diag-wg-update-2017-02>
- source_facts.package-manager-url


## 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: ~/.lldbinit
## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** llnode
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [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.
- [llvm](https://www.automicvault.com/pkg/brew/llvm/) - Build dependency declared by Homebrew.
- [node](https://www.automicvault.com/pkg/brew/node/) - Build dependency declared by Homebrew.
- [cargo-careful](https://www.automicvault.com/pkg/brew/cargo-careful/) - Shares av.db curated category or tags: cli, debugging, developer-tools.
- [cdebug](https://www.automicvault.com/pkg/brew/cdebug/) - Shares av.db curated category or tags: cli, debugging, developer-tools.
- [chdig](https://www.automicvault.com/pkg/brew/chdig/) - Shares av.db curated category or tags: cli, debugging, developer-tools.
- [crash](https://www.automicvault.com/pkg/brew/crash/) - Shares av.db curated category or tags: cli, debugging, developer-tools.
- [ddd](https://www.automicvault.com/pkg/brew/ddd/) - Shares av.db curated category or tags: cli, debugging, developer-tools.
- [delve](https://www.automicvault.com/pkg/brew/delve/) - Shares av.db curated category or tags: cli, debugging, developer-tools.
- [demumble](https://www.automicvault.com/pkg/brew/demumble/) - Shares av.db curated category or tags: cli, debugging, developer-tools.
- [dmalloc](https://www.automicvault.com/pkg/brew/dmalloc/) - Shares av.db curated category or tags: cli, debugging, developer-tools.
- [why-is-node-running](https://www.automicvault.com/pkg/npm/why-is-node-running/) - Both packages touch the same language runtime or ecosystem. Shared terms: cli, debugging, developer, developer-tools, node.
- [wtfnode](https://www.automicvault.com/pkg/npm/wtfnode/) - Both packages touch the same language runtime or ecosystem. Shared terms: cli, debugging, developer, developer-tools, node.

## Combined YAML source

View the package source record on GitHub. [combined/llnode.yml](https://github.com/automic-vault/db/blob/main/combined/llnode.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
- cross-ecosystem install command graph
