| Crates.io | infors |
| lib.rs | infors |
| version | 1.0.4 |
| created_at | 2025-11-30 16:41:03.647833+00 |
| updated_at | 2025-11-30 16:41:03.647833+00 |
| description | Fast, minimal, customizable system info tool in Rust (Neofetch alternative) |
| homepage | |
| repository | https://github.com/artificialxdev/infors |
| max_upload_size | |
| id | 1958450 |
| size | 3,324,077 |
Found a bug? Got a feature idea?
Head over to the issues!







โก Blazing fast startup thanks to Rust
๐จ Customizable output layout with colorized terminal output
๐งฉ Modular design โ enable or disable components via config
๐พ Smart defaults but easily extendable
๐ฆ Detects installed packages, shell, GPU, DE/WM, and more
๐ผ๏ธ Custom ASCII art support and override via config
๐จ Supports theme-based color profiles (ascii_colors=distro, etc.)
๐ Single JSONC config: ~/.config/infors/config.jsonc
๐งต Accepts piped ASCII input โ use fortune | cowsay | infors for dynamic text logos
If you're on Arch Linux or an Arch-based distribution (like Manjaro), you can install infors from the AUR using an AUR helper like yay:
yay -S infors
or
git clone https://aur.archlinux.org/infors.git
cd infors
makepkg -si
COMING SOOON
COMING SOOON
If you're on Windows, download the latest .zip from the GitHub Releases:
Make sure you have Rust & Cargo installed:
cargo install infors
After that, just run:
infors
If you hit issues with PATH, try adding ~/.cargo/bin to your shell:
export PATH="$HOME/.cargo/bin:$PATH"
git clone https://github.com/artificialxdev/infors.git
cd infors
cargo build --release
Add to PATH:
cp target/release/infors~/.local/bin/
Then run:
infors
infors can accept piped input to use as the ASCII logo.
This allows you to create dynamic, fun logos on the fly using other command-line tools.
Examples:
echo "Rustacean" | infors
fortune | cowsay | infors
infors will detect piped input via stdin and render the ASCII art above your system information.
If no piped input is provided, it will fall back to your configured or auto-detected ASCII art.
On first run, infors writes a single config.jsonc file to your configuration directory:
# Linux
~/.config/infors/config.jsonc
# Windows
C:\Users\<username>\AppData\Roaming\infors\config.jsonc
The file uses JSON with comments (JSONC), so you can keep inline explanations next to your settings. It combines the previous trio of files into a single document with clear sections:
flags โ Display and formatting toggles.modules (alias layout) โ Output order, headings, and custom rows.logo โ Override ASCII art source or padding. Omitted keys fall back to defaults.The flags object fine-tunes how each block is rendered. Values shown below match the generated defaults; unset keys fall back to the same defaults internally.
| Key | Allowed values | Default | What it controls |
|---|---|---|---|
ascii_distro |
"auto" or distro name |
"auto" |
ASCII art selection. Piped input always overrides this. |
ascii_colors |
"distro" or comma list of color indices |
"distro" |
Palette for ASCII art and color swatches. |
custom_ascii_path |
"" or path |
"" |
Custom ASCII art file. Leave empty for bundled art. |
battery_display |
"off", "bar", "infobar", "barinfo" |
"off" |
Battery meter style (or disable entirely). |
color_blocks |
string glyph | "โ" |
Character(s) used for the 16-color preview. |
cpu_brand |
true / false |
true |
Prefix CPU model with the vendor name. |
cpu_cores |
true / false |
true |
Show total core/thread counts. |
cpu_frequency |
true / false |
true |
Include advertised CPU frequency. |
cpu_speed |
true / false |
true |
Include current CPU speed reading. |
cpu_temp |
"C" / "F" |
"C" |
Temperature unit. Any other value skips conversion. |
cpu_show_temp |
true / false |
false |
Toggle CPU temperature output entirely. |
de_version |
true / false |
true |
Append desktop-environment version. |
distro_display |
name, name_version, name_arch, name_model, name_model_version, name_model_arch, name_model_version_arch |
"name" |
Level of OS detail shown in the distro line. |
disk_display |
info, percentage, infobar, barinfo, bar |
"info" |
Disk usage presentation for each mount. |
disk_subtitle |
name, dir, none, mount |
"dir" |
Label used alongside disk usage. |
memory_percent |
true / false |
true |
Add percentage to the memory line. |
memory_unit |
kib, mib, gib |
"mib" |
Preferred memory units. |
package_managers |
off, on, tiny |
"tiny" |
Package counter verbosity. |
refresh_rate |
true / false |
true |
Append monitor refresh rate where available. |
shell_path |
true / false |
false |
Print full shell path instead of name only. |
shell_version |
true / false |
true |
Append shell version. |
uptime_shorthand |
full, tiny, seconds |
"tiny" |
Uptime formatting style. |
os_age_shorthand |
full, tiny, seconds |
"tiny" |
OS install age formatting style. |
โน๏ธ Piped input (for example
fortune | cowsay | infors) replaces the ASCII logo regardless ofascii_distroorcustom_ascii_path.
Here is a compact example that shortens durations and hides temperature and refresh-rate extras:
{
"flags": {
"uptime_shorthand": "tiny",
"cpu_show_temp": false,
"refresh_rate": false,
"package_managers": "on"
}
}
Use the logo object to point to custom ASCII art or adjust how the bundled ASCII art is padded. When type is "file" the source path behaves just like custom_ascii_path.
{
"logo": {
"type": "file",
"source": "~/.config/infors/branding/about.txt",
"padding": { "top": 2, "right": 6, "left": 0 }
}
}
The modules array (also accepted as layout) controls rendering order. Entries can be a literal string ("break" inserts an empty spacer) or an object describing a module. Objects accept a type (collector name such as titles, distro, os_age, uptime, etc.) and optional properties like key for the label or format for custom text.
{
"modules": [
"break",
{ "type": "custom", "format": "== System ==" },
{ "type": "titles", "key": "User" },
{ "type": "distro", "key": "Distro" },
{ "type": "cpu", "key": "CPU" },
{ "type": "memory", "key": "Memory" },
{ "type": "colors", "key": "" }
]
}
Rearrange, duplicate, or remove entries to customize your output. Insert "break" wherever you want an empty spacer line.
config.jsonc in your favorite text editor.infors to see your changes.For advanced details, see the comments in config.jsonc or check the wiki (if available).
Need a temporary tweak for screenshots or testing? infors now mirrors most flags settings on the CLI so you can adjust the output without touching config.jsonc.
--config <path> loads an alternate JSONC file. --no-config ignores files altogether and runs with the built-in defaults.--ascii_distro <name>, --ascii_colors <list>, --custom_ascii_path <file>, and --color-blocks <glyph>.--battery-display, --disk-display, --disk-subtitle, --memory-unit, --packages, --uptime, --os-age, --distro-display, --cpu-temp-unit.--only cpu,memory,shell renders just the listed modules; --hide gpu removes modules from the current layout.--cpu-speed / --no-cpu-speed, --shell-path / --no-shell-path, --memory-percent / --no-memory-percent, etc., for quick on/off control of individual fields.Run infors --help to see the complete list of overrides.
| Feature | Status |
|---|---|
| Base module system | โ Done |
| Config file loader | โ Done |
| Custom layout tags | โ Done |
| GPU/CPU/Mem/DE/WM detection | โ Done |
| Linux support | โ Done |
| Windows support | โ Done |
| Multi-Threading | โ Done |
| CLI override options | ๐ Basic |
| ASCII art & theming | ๐ Basic |
| Plugin/module system | โ Maybe |
| Fetch info over SSH | โ Maybe |
git checkout -b feature/my-feature)git commit -m 'feat: add my feature')git push origin feature/my-feature)We welcome clean PRs and documented modules! โจ
MIT License ยฉ ArtificialXDev