Comprehensive system for detecting and reporting environment details across multiple categories including system information, development tools, browsers, languages, package managers, IDEs, databases, virtualization tools, and more.
Core system details including operating system, hardware, and runtime environment.
/**
* Get operating system information including version and distribution
* @returns Promise<[string, string]> - ['OS', 'macOS Mojave 10.14.5'] or ['OS', 'Ubuntu 20.04.1 LTS']
*/
helpers.getOSInfo();
/**
* Get CPU information including core count, architecture, and model
* @returns Promise<[string, string]> - ['CPU', '(8) x64 Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz']
*/
helpers.getCPUInfo();
/**
* Get memory usage information showing free and total memory
* @returns Promise<[string, string]> - ['Memory', '2.97 GB / 16.00 GB']
*/
helpers.getMemoryInfo();
/**
* Detect container environment (Docker, etc.)
* @returns Promise<[string, string]> - ['Container', 'Yes'] or ['Container', 'N/A']
*/
helpers.getContainerInfo();
/**
* Get shell information including version and path
* @returns Promise<[string, string, string]> - ['Shell', '5.3', '/bin/zsh']
*/
helpers.getShellInfo();
/**
* Get GNU C Library version (Linux only)
* @returns Promise<[string, string]> - ['GLibc', '2.27'] or ['GLibc', 'N/A']
*/
helpers.getGLibcInfo();Node.js ecosystem and development tool binaries with version and path detection.
/**
* Get Node.js version and installation path
* @returns Promise<[string, string, string]> - ['Node', '16.14.0', '/usr/local/bin/node']
*/
helpers.getNodeInfo();
/**
* Get npm package manager version and path
* @returns Promise<[string, string, string]> - ['npm', '8.3.1', '/usr/local/bin/npm']
*/
helpers.getnpmInfo();
/**
* Get Yarn package manager version and path
* @returns Promise<[string, string, string]> - ['Yarn', '1.22.17', '/usr/local/bin/yarn']
*/
helpers.getYarnInfo();
/**
* Get pnpm package manager version and path
* @returns Promise<[string, string, string]> - ['pnpm', '6.28.0', '/usr/local/bin/pnpm']
*/
helpers.getpnpmInfo();
/**
* Get Bun JavaScript runtime version and path
* @returns Promise<[string, string, string]> - ['bun', '0.1.12', '/usr/local/bin/bun']
*/
helpers.getbunInfo();
/**
* Get Watchman file watching service version and path
* @returns Promise<[string, string, string]> - ['Watchman', '4.9.0', '/usr/local/bin/watchman']
*/
helpers.getWatchmanInfo();Browser detection across all major platforms with version and installation path.
/**
* Get Google Chrome browser version and path
* @returns Promise<[string, string, string]> - ['Chrome', '98.0.4758.102', '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome']
*/
helpers.getChromeInfo();
/**
* Get Chrome Canary browser version and path
* @returns Promise<[string, string, string]> - ['Chrome Canary', '100.0.4896.12', '/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary']
*/
helpers.getChromeCanaryInfo();
/**
* Get Chromium browser version and path
* @returns Promise<[string, string, string]> - ['Chromium', '98.0.4758.80', '/usr/bin/chromium-browser']
*/
helpers.getChromiumInfo();
/**
* Get Brave Browser version and path
* @returns Promise<[string, string, string]> - ['Brave Browser', '1.35.104', '/Applications/Brave Browser.app/Contents/MacOS/Brave Browser']
*/
helpers.getBraveBrowserInfo();
/**
* Get Firefox browser version and path
* @returns Promise<[string, string, string]> - ['Firefox', '97.0.1', '/Applications/Firefox.app/Contents/MacOS/firefox']
*/
helpers.getFirefoxInfo();
/**
* Get Firefox Developer Edition version and path
* @returns Promise<[string, string, string]> - ['Firefox Developer Edition', '98.0b9', '/Applications/Firefox Developer Edition.app/Contents/MacOS/firefox']
*/
helpers.getFirefoxDeveloperEditionInfo();
/**
* Get Firefox Nightly version and path
* @returns Promise<[string, string, string]> - ['Firefox Nightly', '100.0a1', '/Applications/Firefox Nightly.app/Contents/MacOS/firefox']
*/
helpers.getFirefoxNightlyInfo();
/**
* Get Safari browser version and path (macOS only)
* @returns Promise<[string, string, string]> - ['Safari', '15.3', '/Applications/Safari.app/Contents/MacOS/Safari']
*/
helpers.getSafariInfo();
/**
* Get Safari Technology Preview version and path (macOS only)
* @returns Promise<[string, string, string]> - ['Safari Technology Preview', '141', '/Applications/Safari Technology Preview.app/Contents/MacOS/Safari Technology Preview']
*/
helpers.getSafariTechnologyPreviewInfo();
/**
* Get Microsoft Edge browser version and path (can detect multiple versions)
* @returns Promise<[string, string|string[], string]> - ['Edge', '98.0.1108.56', '/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge']
*/
helpers.getEdgeInfo();
/**
* Get Internet Explorer version and path (Windows only)
* @returns Promise<[string, string, string]> - ['Internet Explorer', '11.0.9600.19596', 'C:\\Program Files\\Internet Explorer\\iexplore.exe']
*/
helpers.getInternetExplorerInfo();Detection of programming language runtimes and compilers with version information.
/**
* Get Bash shell version and path
* @returns Promise<[string, string, string]> - ['Bash', '5.1.16', '/bin/bash']
*/
helpers.getBashInfo();
/**
* Get Go programming language version and path
* @returns Promise<[string, string, string]> - ['Go', '1.17.7', '/usr/local/go/bin/go']
*/
helpers.getGoInfo();
/**
* Get Elixir programming language version and path
* @returns Promise<[string, string, string]> - ['Elixir', '1.13.2', '/usr/local/bin/elixir']
*/
helpers.getElixirInfo();
/**
* Get Erlang/OTP version and path
* @returns Promise<[string, string, string]> - ['Erlang', '24.2.1', '/usr/local/bin/erl']
*/
helpers.getErlangInfo();
/**
* Get Java compiler (javac) version and path
* @returns Promise<[string, string, string]> - ['Java', '17.0.2', '/usr/bin/javac']
*/
helpers.getJavaInfo();
/**
* Get Perl language version and path
* @returns Promise<[string, string, string]> - ['Perl', '5.32.1', '/usr/bin/perl']
*/
helpers.getPerlInfo();
/**
* Get PHP language version and path
* @returns Promise<[string, string, string]> - ['PHP', '8.1.3', '/usr/bin/php']
*/
helpers.getPHPInfo();
/**
* Get Protocol Buffer compiler version and path
* @returns Promise<[string, string, string]> - ['Protoc', '3.19.4', '/usr/local/bin/protoc']
*/
helpers.getProtocInfo();
/**
* Get Python 2.x version and path
* @returns Promise<[string, string, string]> - ['Python', '2.7.18', '/usr/bin/python']
*/
helpers.getPythonInfo();
/**
* Get Python 3.x version and path
* @returns Promise<[string, string, string]> - ['Python3', '3.9.10', '/usr/bin/python3']
*/
helpers.getPython3Info();
/**
* Get R language version and path
* @returns Promise<[string, string, string]> - ['R', '4.1.2', '/usr/local/bin/R']
*/
helpers.getRInfo();
/**
* Get Ruby language version and path
* @returns Promise<[string, string, string]> - ['Ruby', '3.1.0', '/usr/local/bin/ruby']
*/
helpers.getRubyInfo();
/**
* Get Rust language version and path
* @returns Promise<[string, string, string]> - ['Rust', '1.58.1', '/usr/local/bin/rustc']
*/
helpers.getRustInfo();
/**
* Get Scala language version
* @returns Promise<[string, string]> - ['Scala', '2.13.8']
*/
helpers.getScalaInfo();System and language-specific package managers with version detection.
/**
* Get APT package manager version and path (Linux)
* @returns Promise<[string, string, string]> - ['Apt', '2.0.6', '/usr/bin/apt']
*/
helpers.getAptInfo();
/**
* Get Cargo (Rust package manager) version and path
* @returns Promise<[string, string, string]> - ['Cargo', '1.58.0', '/usr/local/bin/cargo']
*/
helpers.getCargoInfo();
/**
* Get CocoaPods package manager version and path (macOS)
* @returns Promise<[string, string, string]> - ['CocoaPods', '1.11.2', '/usr/local/bin/pod']
*/
helpers.getCocoaPodsInfo();
/**
* Get Composer (PHP package manager) version and path
* @returns Promise<[string, string, string]> - ['Composer', '2.2.6', '/usr/local/bin/composer']
*/
helpers.getComposerInfo();
/**
* Get Gradle build tool version and path
* @returns Promise<[string, string, string]> - ['Gradle', '7.4', '/usr/local/bin/gradle']
*/
helpers.getGradleInfo();
/**
* Get Homebrew package manager version and path (macOS/Linux)
* @returns Promise<[string, string, string]> - ['Homebrew', '3.3.14', '/usr/local/bin/brew']
*/
helpers.getHomebrewInfo();
/**
* Get Maven build tool version and path
* @returns Promise<[string, string, string]> - ['Maven', '3.8.4', '/usr/local/bin/mvn']
*/
helpers.getMavenInfo();
/**
* Get pip2 (Python 2 package manager) version and path
* @returns Promise<[string, string, string]> - ['pip2', '20.3.4', '/usr/bin/pip2']
*/
helpers.getpip2Info();
/**
* Get pip3 (Python 3 package manager) version and path
* @returns Promise<[string, string, string]> - ['pip3', '21.3.1', '/usr/bin/pip3']
*/
helpers.getpip3Info();
/**
* Get RubyGems package manager version and path
* @returns Promise<[string, string, string]> - ['RubyGems', '3.3.7', '/usr/local/bin/gem']
*/
helpers.getRubyGemsInfo();
/**
* Get Yum package manager version and path (Linux)
* @returns Promise<[string, string, string]> - ['Yum', '4.10.0', '/usr/bin/yum']
*/
helpers.getYumInfo();Build tools, version control systems, compilers, and development utilities.
/**
* Get Bazel build tool version and path
* @returns Promise<[string, string, string]> - ['Bazel', '4.2.2', '/usr/local/bin/bazel']
*/
helpers.getBazelInfo();
/**
* Get CMake build system version and path
* @returns Promise<[string, string, string]> - ['CMake', '3.22.2', '/usr/local/bin/cmake']
*/
helpers.getCMakeInfo();
/**
* Get Make build tool version
* @returns Promise<[string, string]> - ['Make', '4.3']
*/
helpers.getMakeInfo();
/**
* Get GCC compiler version
* @returns Promise<[string, string]> - ['GCC', '11.2.0']
*/
helpers.getGCCInfo();
/**
* Get Clang compiler version and path
* @returns Promise<[string, string, string]> - ['Clang', '13.0.1', '/usr/bin/clang']
*/
helpers.getClangInfo();
/**
* Get Git version control system version and path
* @returns Promise<[string, string, string]> - ['Git', '2.34.1', '/usr/bin/git']
*/
helpers.getGitInfo();
/**
* Get Ninja build system version and path
* @returns Promise<[string, string, string]> - ['Ninja', '1.10.2', '/usr/local/bin/ninja']
*/
helpers.getNinjaInfo();
/**
* Get Mercurial version control system version
* @returns Promise<[string, string]> - ['Mercurial', '6.0.3']
*/
helpers.getMercurialInfo();
/**
* Get Subversion version control system version
* @returns Promise<[string, string]> - ['Subversion', '1.14.1']
*/
helpers.getSubversionInfo();
/**
* Get FFmpeg multimedia framework version and path
* @returns Promise<[string, string, string]> - ['FFmpeg', '4.4.1', '/usr/local/bin/ffmpeg']
*/
helpers.getFFmpegInfo();
/**
* Get Curl command-line tool version and path
* @returns Promise<[string, string, string]> - ['Curl', '7.81.0', '/usr/bin/curl']
*/
helpers.getCurlInfo();
/**
* Get OpenSSL cryptographic library version and path
* @returns Promise<[string, string, string]> - ['OpenSSL', '1.1.1m', '/usr/bin/openssl']
*/
helpers.getOpenSSLInfo();Detection of web server installations and versions.
/**
* Get Apache HTTP Server version
* @returns Promise<[string, string]> - ['Apache', '2.4.52']
*/
helpers.getApacheInfo();
/**
* Get Nginx web server version
* @returns Promise<[string, string]> - ['Nginx', '1.20.2']
*/
helpers.getNginxInfo();Platform SDKs with detailed information about installed components.
/**
* Get Android SDK information with detailed component breakdown
* @returns Promise<[string, Object|string]> - ['Android SDK', detailedObject] or ['Android SDK', 'Not Found']
*
* Detailed object structure:
* {
* "API Levels": ["android-30", "android-31"],
* "Build Tools": ["30.0.3", "31.0.0"],
* "System Images": ["android-30;google_apis;x86", "android-31;google_apis;x86_64"],
* "Android NDK": "23.1.7779620"
* }
*/
helpers.getAndroidSDKInfo();
/**
* Get iOS SDK information with platforms array (macOS only)
* @returns Promise<[string, Object|string]> - ['iOS SDK', platformsObject] or ['iOS SDK', 'N/A']
*
* Platforms object structure:
* {
* "Platforms": ["iPhoneOS15.2.sdk", "iPhoneSimulator15.2.sdk", "MacOSX12.1.sdk"]
* }
*/
helpers.getiOSSDKInfo();
/**
* Get Windows SDK information with registry data (Windows only)
* @returns Promise<[string, Object|string]> - ['Windows SDK', sdkObject] or ['Windows SDK', 'N/A']
*
* SDK object structure:
* {
* "10.0.19041.685": "C:\\Program Files (x86)\\Windows Kits\\10\\"
* }
*/
helpers.getWindowsSDKInfo();Integrated development environments and text editors with version detection.
/**
* Get Android Studio IDE version (macOS only)
* @returns Promise<[string, string]> - ['Android Studio', '2021.1.1.23']
*/
helpers.getAndroidStudioInfo();
/**
* Get Atom editor version and path (macOS only)
* @returns Promise<[string, string, string]> - ['Atom', '1.58.0', '/Applications/Atom.app/Contents/MacOS/Atom']
*/
helpers.getAtomInfo();
/**
* Get Emacs editor version
* @returns Promise<[string, string]> - ['Emacs', '28.0.92']
*/
helpers.getEmacsInfo();
/**
* Get IntelliJ IDEA version (macOS only)
* @returns Promise<[string, string]> - ['IntelliJ', '2021.3.2']
*/
helpers.getIntelliJInfo();
/**
* Get Neovim editor version
* @returns Promise<[string, string]> - ['NVim', '0.6.1']
*/
helpers.getNvimInfo();
/**
* Get Nano editor version (Linux only)
* @returns Promise<[string, string]> - ['Nano', '6.0']
*/
helpers.getNanoInfo();
/**
* Get PhpStorm IDE version (macOS only)
* @returns Promise<[string, string]> - ['PhpStorm', '2021.3.2']
*/
helpers.getPhpStormInfo();
/**
* Get Sublime Text editor version and path
* @returns Promise<[string, string, string]> - ['Sublime Text', '4126', '/Applications/Sublime Text.app/Contents/MacOS/Sublime Text']
*/
helpers.getSublimeTextInfo();
/**
* Get Vim editor version
* @returns Promise<[string, string]> - ['Vim', '8.2']
*/
helpers.getVimInfo();
/**
* Get Visual Studio Code version and path
* @returns Promise<[string, string, string]> - ['VSCode', '1.64.2', '/Applications/Visual Studio Code.app/Contents/MacOS/Electron']
*/
helpers.getVSCodeInfo();
/**
* Get Visual Studio IDE versions (Windows only)
* @returns Promise<[string, string[]]> - ['Visual Studio', ['2019 Professional 16.11.31729.503', '2019 Community 16.11.31729.503']]
*/
helpers.getVisualStudioInfo();
/**
* Get WebStorm IDE version (macOS only)
* @returns Promise<[string, string]> - ['WebStorm', '2021.3.2']
*/
helpers.getWebStormInfo();
/**
* Get Xcode IDE version and path (macOS only)
* @returns Promise<[string, string, string]> - ['Xcode', '13.2.1', '/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild']
*/
helpers.getXcodeInfo();Database system detection with version information.
/**
* Get MongoDB database version and path
* @returns Promise<[string, string, string]> - ['MongoDB', '5.0.6', '/usr/local/bin/mongod']
*/
helpers.getMongoDBInfo();
/**
* Get MySQL database version and path (includes MariaDB detection)
* @returns Promise<[string, string, string]> - ['MySQL', '8.0.28', '/usr/local/bin/mysql'] or ['MySQL', '10.6.7-MariaDB', '/usr/bin/mysql']
*/
helpers.getMySQLInfo();
/**
* Get PostgreSQL database version and path
* @returns Promise<[string, string, string]> - ['PostgreSQL', '14.2', '/usr/local/bin/postgres']
*/
helpers.getPostgreSQLInfo();
/**
* Get SQLite database version and path
* @returns Promise<[string, string, string]> - ['SQLite', '3.37.2', '/usr/bin/sqlite3']
*/
helpers.getSQLiteInfo();Container platforms and virtualization tools.
/**
* Get Docker container platform version and path
* @returns Promise<[string, string, string]> - ['Docker', '20.10.12', '/usr/local/bin/docker']
*/
helpers.getDockerInfo();
/**
* Get Docker Compose version and path
* @returns Promise<[string, string, string]> - ['Docker Compose', '2.2.3', '/usr/local/bin/docker-compose']
*/
helpers.getDockerComposeInfo();
/**
* Get Parallels virtualization version and path
* @returns Promise<[string, string, string]> - ['Parallels', '17.1.2', '/Applications/Parallels Desktop.app/Contents/MacOS/prl_client_app']
*/
helpers.getParallelsInfo();
/**
* Get Podman container engine version and path
* @returns Promise<[string, string, string]> - ['Podman', '4.0.2', '/usr/bin/podman']
*/
helpers.getPodmanInfo();
/**
* Get VirtualBox virtualization version and path
* @returns Promise<[string, string, string]> - ['VirtualBox', '6.1.32', '/usr/local/bin/VBoxManage']
*/
helpers.getVirtualBoxInfo();
/**
* Get VMware Fusion version and path (macOS only)
* @returns Promise<[string, string, string]> - ['VMware Fusion', '12.2.3', '/Applications/VMware Fusion.app/Contents/MacOS/VMware Fusion']
*/
helpers.getVMwareFusionInfo();Tools for managing monorepo projects and workspaces.
/**
* Get Yarn Workspaces configuration status
* @returns Promise<[string, string]> - ['Yarn Workspaces', 'Yes'] or ['Yarn Workspaces', 'No']
*/
helpers.getYarnWorkspacesInfo();
/**
* Get Lerna monorepo tool version
* @returns Promise<[string, string]> - ['Lerna', '4.0.0'] or ['Lerna', 'Not Found']
*/
helpers.getLernaInfo();Direct helper usage:
const { helpers } = require('envinfo');
// Get system information
const [osName, osVersion] = await helpers.getOSInfo();
console.log(`${osName}: ${osVersion}`);
// Get Node.js information with path
const [nodeName, nodeVersion, nodePath] = await helpers.getNodeInfo();
console.log(`${nodeName}: ${nodeVersion} - ${nodePath}`);
// Get complex SDK information
const [androidName, androidSDK] = await helpers.getAndroidSDKInfo();
if (typeof androidSDK === 'object') {
console.log('Android SDK Components:', androidSDK);
} else {
console.log(`${androidName}: ${androidSDK}`);
}Batch helper usage:
const { helpers } = require('envinfo');
// Get multiple browser versions
const browsers = await Promise.all([
helpers.getChromeInfo(),
helpers.getFirefoxInfo(),
helpers.getSafariInfo()
]);
browsers.forEach(([name, version, path]) => {
if (version !== 'Not Found') {
console.log(`${name}: ${version}`);
}
});All helper functions follow consistent return patterns:
[name, version] for simple version detection[name, version, path] for version with installation path[name, detailedObject] for SDKs with multiple components[name, 'Not Found'] when tool/software is not installed[name, 'N/A'] when tool is not supported on current platformAll helper functions handle errors gracefully: