A Node.js module for retrieving system and process information, with native support for macOS, Linux, and Windows.
npm install @jkuri/psutil
import {
getVirtualMemory,
getVirtualMemoryAsync,
getDiskPartitions,
getDiskPartitionsAsync
} from '@jkuri/psutil';
// Memory information
const memInfo = getVirtualMemory();
console.log(`Memory usage: ${memInfo.percent.toFixed(1)}%`);
// Disk partitions
const partitions = getDiskPartitions();
partitions.forEach(partition => {
console.log(`${partition.device}: ${partition.percent.toFixed(1)}% used`);
});
// Asynchronous operations
getVirtualMemoryAsync().then(memInfo => {
console.log('Memory info:', memInfo);
});
getDiskPartitionsAsync().then(partitions => {
console.log('Disk partitions:', partitions);
});
Returns an object containing information about the system's virtual memory.
export type VirtualMemory = {
total: number;
available: number;
used: number;
free: number;
shared: number;
swapTotal: number;
swapFree: number;
active: number;
inactive: number;
wired: number;
percent: number;
};
export function getVirtualMemory(): VirtualMemory;
Returns a promise that resolves to an object containing information about the system's virtual memory.
export function getVirtualMemoryAsync(): Promise<VirtualMemory>;
Returns an array of objects containing information about all disk partitions on the system.
export type DiskPartition = {
device: string; // Device path (e.g., "/dev/disk1s1", "C:")
mountpoint: string; // Mount point (e.g., "/", "C:\")
fstype: string; // File system type (e.g., "apfs", "ntfs", "ext4")
opts: string; // Mount options
total: number; // Total space in bytes
used: number; // Used space in bytes
free: number; // Free space in bytes
percent: number; // Usage percentage (0-100)
};
export function getDiskPartitions(): DiskPartition[];
Returns a promise that resolves to an array of disk partition information objects.
export function getDiskPartitionsAsync(): Promise<DiskPartition[]>;
MIT License