Skip to content
forked from lqdev/fitch

Fork of Fitch, a command‑line system information utility for Linux built with .NET. Contributing enhancements, fixes, and improvements to its cross‑platform tooling.

License

Notifications You must be signed in to change notification settings

jonas1ara/fitch

 
 

Repository files navigation

Fitch

Command line system information display utility for Windows and Linux systems built with .NET (F#).

Fitch CLI Tool

Generic badge Tests

NOTE: This application works on Windows and Linux systems. It's been tested on the following distributions:

Linux

  • Arch
    • Manjaro
  • Debian
    • Ubuntu
  • NixOS. For additional guidance, see this article.

Windows

  • Windows 10 and later

Dependencies

Installation

Prerequisites

Install from nuget

Instructions

Installation is as easy as:

dotnet tool install --global fitch

Build from source

Instructions - Linux

  1. Clone fitch repo on your machine

    git clone https://github.com/lqdev/fitch.git && cd fitch
  2. Run the setup script

    ./Setup.sh

    Setup.sh

    Running this script will generate an executable called fitch in the bin/Release/net8.0/linux-x64/publish directory and copy it to the /usr/bin/ directory, so you can run the application from anywhere in your system.

Instructions - Windows

  1. Clone fitch repo on your machine

    git clone https://github.com/lqdev/fitch.git; cd fitch
  2. Run the PowerShell setup script

    .\Setup.ps1

    Running this script will build, package, and install fitch as a global dotnet tool, so you can run the application from anywhere in your terminal.

Run application

  1. For both cases just type fitch in your terminal

    fitch
  2. (Optional) Add the fitch command to your shell config file to start when your shell starts

Configuration

Fitch can be customized through a configuration file. The configuration file is automatically created on first run with default values.

Configuration file location:

  • Linux: ~/.config/fitch/.fitch
  • Windows: %APPDATA%\fitch\.fitch

Configuration Options

The .fitch file uses TOML format with the following options:

# Modo de visualización: "logo" o "distroname"
displaymode = "distroname"

# Posición del logo: "left" o "right"
logoposition = "right"

# Color del texto: nombre de color Spectre (HotPink, Yellow, Blue, Green, etc.)
textcolor = "HotPink"

displaymode

  • "logo" - Displays the distribution's ASCII logo
  • "distroname" - Displays the distribution name with Spectre Console styling (default)

logoposition

  • "left" - Places the logo/name on the left side
  • "right" - Places the logo/name on the right side (default)

textcolor

  • Any valid Spectre Console color name (e.g., HotPink, Yellow, Blue, Green, Cyan, Magenta, etc.)
  • This color applies to the distribution name, kernel, and shell labels

Example Configurations

Show logo with custom colors:

displaymode = "logo"
logoposition = "left"
textcolor = "Cyan"

Show distro name on the right in blue:

displaymode = "distroname"
logoposition = "right"
textcolor = "Blue"

Building for Multiple Platforms

Fitch now supports building for both Windows and Linux in a single codebase. The application uses runtime OS detection to automatically select the correct system information gathering implementation.

Build All Platforms

On Linux:

./Build.sh

On Windows:

.\Build.ps1

This will generate executables for:

  • Windows x64 and Windows ARM64
  • Linux x64

Build for Specific Platform

# Linux
dotnet publish -c Release -r linux-x64

# Windows x64
dotnet publish -c Release -r win-x64

# Windows ARM64
dotnet publish -c Release -r win-arm64

Architecture

The application uses platform-specific modules that are selected at runtime:

  • SystemInfoLinux.fs - Gathers system info from /proc and /etc files
  • SystemInfoWindows.fs - Gathers system info using Windows Management Instrumentation (WMI)
  • SystemInfo.fs - Router module that detects the OS and calls the appropriate implementation

This approach allows maintaining a single codebase while supporting different operating systems efficiently.

To-Dos

  • Enable customization through config file
  • Cross-platform support (Windows and Linux)

Acknowledgements

This project was inspired by Nitch, Neofetch and made with WSL 🐧

About

Fork of Fitch, a command‑line system information utility for Linux built with .NET. Contributing enhancements, fixes, and improvements to its cross‑platform tooling.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • F# 80.4%
  • PowerShell 11.0%
  • Shell 8.6%