An advanced Windows system information fetcher written in C++ — featuring self-healing configuration, modular architecture, compact & detailed modes, and extreme customization.
Built for Windows. Built to last. Built to be shared.
Simplicity is the priority.
- Two user-editable files
- Self-healing engine
- Modular, scalable design
- Clean separation between data, logic, and presentation
BinaryFetch guarantees that the program never crashes due to missing user files.
If a user:
- deletes
BinaryArt.txt - deletes
BinaryFetch_Config.json - runs BinaryFetch for the first time
👉 The engine automatically recreates everything from defaults.
you can modify and customize them safely from,
C:\Users\Public\BinaryFetch\
| File | Purpose |
|---|---|
BinaryArt.txt |
User ASCII art (fully editable, copy-paste-done !) |
BinaryFetch_Config.json |
Module configuration & layout |
That’s it.
No profiles. No databases. No complex formats.
Use $n in your BinaryArt.txt file where n is the color number:
| Code | Color | ANSI Code | Code | Color | ANSI Code |
|---|---|---|---|---|---|
$1 |
Red | \033[31m |
$8 |
Bright Red | \033[91m |
$2 |
Green | \033[32m |
$9 |
Bright Green | \033[92m |
$3 |
Yellow | \033[33m |
$10 |
Bright Yellow | \033[93m |
$4 |
Blue | \033[34m |
$11 |
Bright Blue | \033[94m |
$5 |
Magenta | \033[35m |
$12 |
Bright Magenta | \033[95m |
$6 |
Cyan | \033[36m |
$13 |
Bright Cyan | \033[96m |
$7 |
White | \033[37m |
$14 |
Bright White | \033[97m |
$15 |
Reset | \033[0m |
Single color per line:
$1⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
Output: Entire line in red
Multiple colors per line:
$2⠀⣿⣿⣿⣿⣿⣿$3⣿⣿⣿⣿⣿⣿$1⣿⣿⣿⣿⣿⣿
Output: Green → Yellow → Red
No color (default white):
⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
- Modular system info engine
- Compact mode & expanded mode
- Multi-GPU support
- Multi-monitor support
- Audio input/output detection
- Power & battery detection
- Predictive disk performance
- Clean ASCII rendering pipeline
- Community-shareable profiles (just JSON + ASCII)
BinaryFetch follows a module-per-domain architecture.
Each system category is implemented as an independent class with no side effects.
TOTAL MODULES & SUB-MODULES:
Breakdown:
- Core Modules: 12 (compact mode)
- Detailed Modules: 12 (expanded info)
- Utility Modules: 10 (support/helper classes) Each module has 1-11 sub-modules for specific data retrieval.
BinaryFetch never breaks due to user mistakes. (expect json syntax)
- Missing ASCII art file → recreated from bundled default
- Missing JSON config → recreated from default schema
- Deleted directories → recreated silently
- Corrupted config → safely regenerated
- ✅ First run always succeeds
- ✅ User customization preserved
- ✅ No duplicated logic
- ✅ No orchestration spaghetti
- ✅ Clean single-call API
- ✅ Future-proof modularity
- Header Module - System banner/logo display
- Compact Time Module - Real-time clock display
- Compact OS Module - OS summary
- Compact CPU Module - Processor overview
- Compact GPU Module - Graphics card overview
- Compact Screen Module - Display information
- Compact Memory Module - RAM usage summary
- Compact Audio Module - Audio device status
- Compact Performance Module - System performance metrics
- Compact User Module - User session info
- Compact Network Module - Network connection status
- Compact Disk Module - Storage usage summary
- Detailed Memory Module - In-depth RAM analysis
- Detailed Storage Module - Comprehensive disk info
- Network Info Module - Complete network details
- Dummy Network Info Module - Fallback network display
- OS Info Module - Operating system details
- CPU Info Module - Processor specifications
- GPU Info Module - Graphics card details
- Display Info Module - Monitor/display configuration
- BIOS/Motherboard Info Module - Firmware and hardware details
- User Info Module - User account information
- Performance Info Module - System performance metrics
- Audio & Power Info Module - Audio devices and power status
- Color Customization: 14+ color options per module
- Toggle Controls: Individual enable/disable for each module
- Granular Display: Control over every element's visibility
- Emoji Support: Optional emoji indicators
- Compact/Detailed Views: Multiple display modes
- Theme System: Consistent color scheme across all modules
- Total Configurable Options: 300+ individual settings
- Color Properties: 150+ color configuration points
- Toggle Switches: 80+ enable/disable controls
- Sub-section Controls: 60+ detailed display options
- Customizable Elements: 200+ individually configurable components
- Snapshot form realtime data: e.g. Disk information inlcuding read\write\used
- Hardware Profiling: Detailed component specifications
- Performance Tracking: CPU/GPU/RAM/Disk utilization
- Network Analysis: Connection and speed monitoring
- Storage Analysis: Disk usage and performance metrics
- Display Configuration: Monitor settings and resolutions
- Audio Monitoring: Input/output device status
- User Session Info: Account and computer details
- System Uptime: Runtime tracking
- Power Management: Battery status monitoring
- Modular Design: Independent module enable/disable
- Fallback Systems: Dummy/backup modules like dummy network
- Detailed/Compact Toggle: Two viewing modes for each module type
- Consistent Formatting: Uniform display structure
- Extensible Architecture: Easy addition of new modules
- Cross-Platform Ready: Windows-focused but adaptable
- Colored Brackets/Parentheses: Syntax highlighting
- Separator Lines: Section dividers
- Label/Value Distinction: Clear text differentiation
- Emoji Integration: Visual indicators
- Header Banners: Module identification
- Progress/Status Indicators: Visual performance representation
Total Configurable Components: 400+ individual display elements across 24 main modules with extensive customization options for appearance, content, and functionality.
- Total Classes: 34
- Total Functions: 158
- Total Objects Instantiated: 21
- Total Helper Lambda Functions: 5
- Total Structures: 8
- Functions: 1
- Functions:
loadFromFile()- Returnsbool(success/failure)
- Functions: 2
- Functions:
push(std::string)- Returnsvoidfinish()- Returnsvoid
- Functions: 7
- Functions:
GetOSName()- Returnsstd::string(OS name)GetOSVersion()- Returnsstd::string(OS version)GetOSArchitecture()- Returnsstd::string(architecture)get_os_kernel_info()- Returnsstd::string(kernel info)get_os_uptime()- Returnsstd::string(uptime)get_os_install_date()- Returnsstd::string(install date)get_os_serial_number()- Returnsstd::string(serial number)
- Functions: 11
- Functions:
get_cpu_info()- Returnsstd::string(CPU model)get_cpu_utilization()- Returnsstd::string(usage percentage)get_cpu_speed()- Returnsstd::string(current speed)get_cpu_base_speed()- Returnsstd::string(base speed)get_cpu_cores()- Returnsstd::string(core count)get_cpu_logical_processors()- Returnsstd::string(logical processors)get_cpu_sockets()- Returnsstd::string(socket count)get_cpu_virtualization()- Returnsstd::string(virtualization status)get_cpu_l1_cache()- Returnsstd::string(L1 cache size)get_cpu_l2_cache()- Returnsstd::string(L2 cache size)get_cpu_l3_cache()- Returnsstd::string(L3 cache size)
- Functions: 4
- Functions:
getTotal()- Returnsstd::string(total RAM in GB)getFree()- Returnsstd::string(free RAM in GB)getUsedPercentage()- Returnsstd::string(usage percentage)getModules()- Returnsstd::vector<memory_module>(RAM modules)
- Functions: 1
- Functions:
get_all_gpu_info()- Returnsstd::vector<GPUData>(all GPU info)
- Functions: 1
- Functions:
primary_gpu_info()- ReturnsGPUDetailedData(detailed GPU info)
- Functions: 1
- Functions:
process_storage_info(callback)- Returnsvoid(processes via callback)
- Functions: 7
- Functions:
get_network_name()- Returnsstd::string(network name)get_local_ip()- Returnsstd::string(local IP)get_public_ip()- Returnsstd::string(public IP)get_locale()- Returnsstd::string(locale)get_mac_address()- Returnsstd::string(MAC address)get_network_upload_speed()- Returnsstd::string(upload speed)get_network_download_speed()- Returnsstd::string(download speed)
- Functions: 3
- Functions:
get_username()- Returnsstd::string(username)get_computer_name()- Returnsstd::string(computer name)get_domain_name()- Returnsstd::string(domain name)
- Functions: 5
- Functions:
get_system_uptime()- Returnsstd::string(system uptime)get_cpu_usage_percent()- Returnsstd::string(CPU usage %)get_ram_usage_percent()- Returnsstd::string(RAM usage %)get_disk_usage_percent()- Returnsstd::string(disk usage %)get_gpu_usage_percent()- Returnsstd::string(GPU usage %)
- Functions: 1
- Functions:
getScreens()- Returnsstd::vector<ScreenInfo>(screen info)
- Functions: 3
- Functions:
get_output_devices()- Returnsstd::vector<AudioDevice>(audio outputs)get_input_devices()- Returnsstd::vector<AudioDevice>(audio inputs)get_power_status()- ReturnsPowerStatus(power/battery info)
- Functions: 5
- Functions:
get_bios_vendor()- Returnsstd::string(BIOS vendor)get_bios_version()- Returnsstd::string(BIOS version)get_bios_date()- Returnsstd::string(BIOS date)get_motherboard_model()- Returnsstd::string(motherboard model)get_motherboard_manufacturer()- Returnsstd::string(manufacturer)
- Functions: 10
- Functions:
getHour()- Returnsint(hour 0-23)getMinute()- Returnsint(minute 0-59)getSecond()- Returnsint(second 0-59)getDay()- Returnsint(day 1-31)getMonthName()- Returnsstd::string(month name)getMonthNumber()- Returnsint(month 1-12)getYearNumber()- Returnsint(year)getWeekNumber()- Returnsint(week number)getDayName()- Returnsstd::string(day name)getLeapYear()- Returnsstd::string(leap year status)
- Functions: 4
- Functions:
active_audio_input()- Returnsstd::string(input device)active_audio_input_status()- Returnsstd::string(input status)active_audio_output()- Returnsstd::string(output device)active_audio_output_status()- Returnsstd::string(output status)
- Functions: 4
- Functions:
getOSName()- Returnsstd::string(OS name)getOSBuild()- Returnsstd::string(OS build)getArchitecture()- Returnsstd::string(architecture)getUptime()- Returnsstd::string(uptime)
- Functions: 4
- Functions:
getCPUName()- Returnsstd::string(CPU name)getCPUCores()- Returnsstd::string(core count)getCPUThreads()- Returnsstd::string(thread count)getClockSpeed()- Returnsstd::string(clock speed in GHz)
- Functions: 3
- Functions:
get_total_memory()- Returnsstd::string(total RAM in GB)get_free_memory()- Returnsstd::string(free RAM in GB)get_used_memory_percent()- Returnsstd::string(RAM usage %)
- Functions: 1
- Functions:
getScreens()- Returnsstd::vector<CompactScreenInfo>(screen info)
- Functions: 0 (declared but not used in current code)
- Functions: 4
- Functions:
getGPUName()- Returnsstd::string(GPU name)getGPUUsagePercent()- Returnsstd::string(GPU usage %)getVRAMGB()- Returnsstd::string(VRAM in GB)getGPUFrequency()- Returnsstd::string(GPU frequency)
- Functions: 4
- Functions:
getCPUUsage()- Returnsstd::string(CPU usage %)getGPUUsage()- Returnsstd::string(GPU usage %)getRAMUsage()- Returnsstd::string(RAM usage %)getDiskUsage()- Returnsstd::string(disk usage %)
- Functions: 3
- Functions:
getUsername()- Returnsstd::string(username)getDomain()- Returnsstd::string(domain)isAdmin()- Returnsstd::string(admin status)
- Functions: 3
- Functions:
get_network_name()- Returnsstd::string(network name)get_network_type()- Returnsstd::string(network type)get_network_ip()- Returnsstd::string(IP address)
- Functions: 2
- Functions:
getAllDiskUsage()- Returnsstd::map<std::string, double>(drive:usage%)getDiskCapacity()- Returnsstd::map<std::string, double>(drive:capacity GB)
- Functions: Not instantiated in main
- These headers are included but their classes aren't instantiated in main:
- CompactSystem
- DetailedScreen
- Various other headers in includes
- Fields: capacity, type, speed
- Fields: gpu_name, gpu_memory, gpu_usage, gpu_vendor, gpu_driver_version, gpu_temperature, gpu_core_count
- Fields: name, vram_gb, frequency_ghz
- Fields: drive_letter, total_space, used_space, used_percentage, file_system, is_external, serial_number, read_speed, write_speed, predicted_read_speed, predicted_write_speed, storage_type
- Fields: name, current_width, current_height, native_resolution, refresh_rate, aspect_ratio, scale_percent, upscale, dsr_enabled, dsr_type
- Fields: name, isActive
- Fields: hasBattery, batteryPercent, isCharging
- Fields: name, native_width, native_height, scale_percent, upscale, refresh_rate
- Returns:
std::string(ANSI color code) - Parameters: section, key, defaultColor
- Returns:
bool(section enabled status) - Parameters: section
- Returns:
bool(subsection enabled status) - Parameters: section, key
- Returns:
bool(nested section enabled status) - Parameters: module, section
- Returns:
bool(deep nested config enabled status) - Parameters: module, section, key
- String Returns: 121 functions (76.6%)
- Vector Returns: 6 functions (3.8%)
- Map Returns: 2 functions (1.3%)
- Structure Returns: 8 functions (5.1%)
- Boolean Returns: 1 function (0.6%)
- Void Returns: 6 functions (3.8%)
- Integer Returns: 10 functions (6.3%)
- Callback-based: 1 function (0.6%)
- String Dominance: Most functions (76.6%) return strings for easy display formatting
- Modular Design: Each class has a specific, focused responsibility
- Data Structures: Well-defined structures for complex data types
- Configuration Integration: All output is JSON-configurable via helper functions
- Separation of Concerns: Compact vs Detailed modules for different display needs
Q: What about the Linux version of Binary Fetch?
A: The Linux version is currently under development.
Q: Will Linux users get the same features as the Windows version?
A: Yes, Linux will have all the features of the Windows version — and potentially more.
Q: Does Binary Fetch share user data?
A: No. Binary Fetch does not collect or share any user data.
Q: Does Binary Fetch run in the background?
A: No. Binary Fetch is a CLI tool and only runs when the command is executed in the terminal.



.gif?raw=true)