A Multi-platform screenfetch/neofetch
npm install yayfetch
🧁Multi-platform customizable screenfetch tool🧁
npx and bunx
npx yayfetch
bunx yayfetch
bun install --global yayfetch/npm install -g yayfetch and then just call yayfetch!
-p or --pick - first asks you what information you want to display, then displays it
-c or --color - allows to specify in which color the data will be shown in predefined colors. Cannot be used with --rgb flag. Available predefined colors:
pink(default), orange, green, white, black, red, blue, yellow, violet, rainbow
--rgb r,g,b - specify RGB values in which data will be shown. Cannot be used with -c(--color) flag. Example npx yayfetch --rgb 125,25,78
--no-logo - prints data without ASCII art
--custom-lines {[key]: value, [key2]: value2, ...} - object with {[key]: value} string pairs separated by spaces ex.
'{"Funny:": "joke", "exampleline:": "examplevalue"}'. This is being parsed using JSON.parse, so if you encounter any problem, make sure that string you provided can be parsed by it.
--no-colored-boxes - hides the colored boxes underneath the information.
-h or --help - shows available flags.
--config - specify a file path to a custom config. See here
--custom-lines).
"ascii" line in the config. It should be an Array with path(s) to the ASCII(s).
json
{
"ascii": ["./path/to/file.txt", "./path/to/2nd/file.txt"]
}
`
- ### Custom images
You can also defined iamges instead of ASCIIs, by defining images field. Note that this flag is mutually exclusive with ascii flag.
Uses terminal-image underneath, so refer to it when specifying options.
`ts
interface ImageOptions {
path: string;
options?: {
width?: string | number | undefined;
height?: string | number | undefined;
preserveAspectRatio?: boolean | undefined;
};
}
`
Example:
`json
{
"image": {
"path": "./path/to/file.img",
"options": { "preserveAspectRatio": false }
}
}
`
- ### Line Animations
Output can be animated by line-animations flag in the config file. It should be an AnimationOptions object.
`ts
type Animations = 'colors' | 'flowing-rainbow';
interface AnimationOptions {
type: Animations; // Animations - applied per column basis
msFrequency: number; // How fast should the animation be
}
`
Note: Printing to stdout is not performant, so it may not work well with less performant console environments
Example:
`json
{
"line-animations": {
"type": "flowing-rainbow",
"msFrequency": 150
}
}
`
Example config
You can specify options through a file and use them by using --config . Config file should contain a JSON object with keys representing flags.
Note that every flag with a prefix of --no- just negates the flag that is on by default. For example CLI flag --no-colored-boxes negates colored-boxes flag, which is true by default. This is important for creating a config, because if you want to invoke --no-colored-boxes through config, you would provide a "colored-boxes": false in JSON object.
Example config:
`
{
"color": "blue",
"colored-boxes": false,
"logo": false,
"custom-lines": {"Funny:": "joke", "exampleline:": "examplevalue"}
}
`
It doesn't work!
If it doesn't work for you make sure that you have the newest node(it's developed using node 18.18.0).
If you came here because of the 'Error - check https://www.npmjs.com/package/yayfetch for more'` error, then most likely the software just can't detect the information. Why? Because of the system you use. It may not work when: