Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
98 commits
Select commit Hold shift + click to select a range
619ef7a
Merge pull request #5 from Linus-Shyu/system/feat
Linus-Shyu Jan 17, 2026
e8714f1
Update README.md
Linus-Shyu Jan 17, 2026
d4096c1
Update Developer information
Linus-Shyu Jan 17, 2026
f10b6f1
Fix::Command Line
Linus-Shyu Jan 17, 2026
d2a8aa2
Merge pull request #6 from Linus-Shyu/system/feat
Linus-Shyu Jan 17, 2026
32e9e65
fix: typo
xs10l3 Jan 18, 2026
c0b4496
Merge pull request #7 from Linus-Shyu/fix/typo
Linus-Shyu Jan 18, 2026
948b18e
Add apt packages calculator
Linus-Shyu Jan 18, 2026
5223131
Resolve merge conflict in hyperlink.rs and prepare for v0.1.5
Linus-Shyu Jan 18, 2026
46b8b56
Update README.md
Linus-Shyu Jan 18, 2026
aabc0f8
Fix README.md
Linus-Shyu Jan 18, 2026
c4b80ae
Fix code quality issues and improve calculate_max_info_width
Linus-Shyu Jan 19, 2026
e5f349f
Update README.md
Linus-Shyu Jan 19, 2026
f284756
Update Windows Winget
Linus-Shyu Jan 22, 2026
f2aad60
Add the -p command for packages
Linus-Shyu Jan 25, 2026
fdf6358
Update sys_info to new Version & -c command
Linus-Shyu Jan 26, 2026
d5c0bef
Update -t for system uptime
Linus-Shyu Jan 26, 2026
e860b08
Updtae more command like -s -d and so on
Linus-Shyu Jan 28, 2026
b3ba913
Add help info
Linus-Shyu Jan 31, 2026
b80dde6
Delete .DS_Store files
Linus-Shyu Jan 31, 2026
390ba65
Create brew_update.yml
Linus-Shyu Jan 31, 2026
3998932
update
Linus-Shyu Jan 31, 2026
ca3ad3f
update
Linus-Shyu Jan 31, 2026
3fd9fae
Update homebrew
Linus-Shyu Jan 31, 2026
7a9ee33
Update brew_update.yml
Linus-Shyu Jan 31, 2026
62a69ae
Test
Linus-Shyu Jan 31, 2026
f7f81e8
Delete .github/workflows/brew_update.yml
Linus-Shyu Jan 31, 2026
f3e3fe2
Update Release.yml
Linus-Shyu Jan 31, 2026
35de592
V0.2.0
Linus-Shyu Jan 31, 2026
1292e16
Update Release.yml
Linus-Shyu Jan 31, 2026
b991d76
Update about info
Linus-Shyu Feb 1, 2026
86d41c0
Update Release.yml
Linus-Shyu Feb 1, 2026
9608481
Update Release.yml
Linus-Shyu Feb 1, 2026
6380f6e
Create winget-init.yml
Linus-Shyu Feb 1, 2026
6c10d8f
Update winget-init.yml
Linus-Shyu Feb 1, 2026
8b46021
Update winget-init.yml
Linus-Shyu Feb 1, 2026
9212063
Update winget-init.yml
Linus-Shyu Feb 1, 2026
7aa3cbe
Update winget-init.yml
Linus-Shyu Feb 1, 2026
f0fa6d6
Update winget-init.yml
Linus-Shyu Feb 1, 2026
92b6bfd
Refactor arguments for Komac New command
Linus-Shyu Feb 1, 2026
7130a48
Update winget-init.yml
Linus-Shyu Feb 1, 2026
62481e4
Update winget-init.yml
Linus-Shyu Feb 1, 2026
d58bc3f
Update winget-init.yml
Linus-Shyu Feb 1, 2026
704896b
Update winget-init.yml
Linus-Shyu Feb 1, 2026
77852a3
Update winget-init.yml
Linus-Shyu Feb 1, 2026
15382c8
Update winget-init.yml
Linus-Shyu Feb 1, 2026
95e49e8
Update winget-init.yml
Linus-Shyu Feb 1, 2026
66f5754
build: finalize multi-platform distribution pipeline
Linus-Shyu Feb 1, 2026
a29087f
chore: prepare for v0.2.4 full-platform release
Linus-Shyu Feb 1, 2026
02397cc
Update Release.yml
Linus-Shyu Feb 1, 2026
02ee56f
Update Release.yml
Linus-Shyu Feb 1, 2026
60442f3
Update install way
Linus-Shyu Feb 1, 2026
ad570f6
Fix Cargo.toml
Linus-Shyu Feb 1, 2026
6d0ac87
Fix cargo.toml
Linus-Shyu Feb 1, 2026
d834870
Update winget-init.yml
Linus-Shyu Feb 1, 2026
e404589
Update WinGet-First-Submission.yml
Linus-Shyu Feb 1, 2026
e6d3e55
Update WinGet-First-Submission.yml
Linus-Shyu Feb 1, 2026
118a520
Update winget-init.yml
Linus-Shyu Feb 1, 2026
9d37e61
Update WinGet-First-Submission.yml
Linus-Shyu Feb 1, 2026
8fae702
Update winget-init.yml
Linus-Shyu Feb 1, 2026
401aac3
Delete .github/workflows/WinGet-First-Submission.yml
Linus-Shyu Feb 1, 2026
7130320
Delete .github/workflows/winget-init.yml
Linus-Shyu Feb 1, 2026
e5338c3
Update Release.yml
Linus-Shyu Feb 1, 2026
f62273a
Update Release.yml
Linus-Shyu Feb 1, 2026
87d00f7
Update Release.yml
Linus-Shyu Feb 1, 2026
1a04564
Update Release.yml
Linus-Shyu Feb 1, 2026
aef91ab
Update Release.yml
Linus-Shyu Feb 1, 2026
2ae849c
Update Release.yml
Linus-Shyu Feb 1, 2026
9a6f8f0
Update release config
Linus-Shyu Feb 1, 2026
ac65de4
Update release config
Linus-Shyu Feb 1, 2026
a33126b
Fix
Linus-Shyu Feb 1, 2026
d8829ac
fix yml
cloudsmithy Feb 2, 2026
b8f29e8
add LICENSE
cloudsmithy Feb 2, 2026
f88677e
add README
cloudsmithy Feb 2, 2026
dec2905
Merge pull request #9 from cloudsmithy/master
Linus-Shyu Feb 2, 2026
d6fda00
Fix Release.yml
Linus-Shyu Feb 2, 2026
2e642a2
Fix Cargo.toml file
Linus-Shyu Feb 2, 2026
777d7be
docs: English localization for README installation and troubleshooting
Linus-Shyu Feb 2, 2026
1716cc9
release: v0.2.3 - Winget auto-PR to microsoft/winget-pkgs
Linus-Shyu Feb 2, 2026
63fcb30
chore: install scripts (master), README/Cargo fixes, winget manifest sed
Linus-Shyu Feb 2, 2026
b0fb836
fix: winget manifest ManifestVersion 1.10.0 for schema compliance
Linus-Shyu Feb 2, 2026
5b7c529
chore: release workflow updates for v0.2.3
Linus-Shyu Feb 2, 2026
dc72555
fix(winget): InstallerUrl quoted for 1.10.0 manifest validation
Linus-Shyu Feb 2, 2026
de80ef2
chore: use winget-releaser (Komac) for WinGet PR, share token with Ho…
Linus-Shyu Feb 2, 2026
3986663
Delete .github/workflows/winget-publish.yml
Linus-Shyu Feb 2, 2026
b5d6ba0
chore: use winget manifest template in Release.yml, add winget/0.2.3,…
Linus-Shyu Feb 2, 2026
20f8535
Merge branch 'master' of github.com:Linus-Shyu/StarFetch_Core
Linus-Shyu Feb 2, 2026
1e4d56a
fix(release): use --force-with-lease for winget fork push
Linus-Shyu Feb 2, 2026
9fe72c7
fix(release): fetch fork before winget push to fix --force-with-lease
Linus-Shyu Feb 2, 2026
13b54b1
fix(winget): use manifest schema 1.10.0 for winget-pkgs validation
Linus-Shyu Feb 2, 2026
a3655a4
Fix: Fix README(add new language(ZH-CN)and translated)
daicx0904 Feb 2, 2026
8133830
Merge pull request #10 from daicx0904/dev-README_FIX
Linus-Shyu Feb 3, 2026
934ba9c
fix(winget): use version manifest filename PackageIdentifier.yaml per…
Linus-Shyu Feb 3, 2026
b091453
docs: add contributors cloudsmithy and Daicx in README, Cargo.toml, a…
Linus-Shyu Feb 3, 2026
6f73b36
Add developer info
Linus-Shyu Feb 5, 2026
65b3595
Update Cargo.toml
Linus-Shyu Feb 5, 2026
12dec74
Bump time from 0.3.41 to 0.3.47 in /StarFetch
dependabot[bot] Feb 5, 2026
24728ac
Merge pull request #11 from Linus-Shyu/dependabot/cargo/StarFetch/tim…
Linus-Shyu Feb 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
341 changes: 253 additions & 88 deletions .github/workflows/Release.yml

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions .idea/dictionaries/project.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

109 changes: 109 additions & 0 deletions README.cn.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
# StarFetch ⭐

[![Star历史图表](https://api.star-history.com/svg?repos=Linus-Shyu/StarFetch_Core&type=date&legend=top-left)](https://www.star-history.com/#Linus-Shyu/StarFetch_Core&type=date&legend=top-left)

[![用Rust编写](https://img.shields.io/badge/Written%20in-Rust-CE412B?style=for-the-badge&logo=rust&logoColor=white)](https://www.rust-lang.org/)
[![吉祥物](https://img.shields.io/badge/Mascot-Ferris-orange?style=for-the-badge)](https://rustacean.net/)
[![许可证](https://img.shields.io/badge/license-MIT-blue.svg?style=for-the-badge)](LICENSE)

<p align="center">
<a href="README.md">English</a>
<a href="README.cn.md">简体中文</a>
</p>

一个用Rust编写的美观且快速的系统信息工具,灵感来自neofetch。StarFetch使用优雅的ASCII艺术和智能的终端自适应来展示您的系统信息。

## 💡 灵感与鼓励

StarFetch 的诞生源于对命令行工具传承的深切尊重。我们非常荣幸能够收到**Dylan Araps**([neofetch](https://github.com/dylanaraps/neofetch)的作者)的这些鼓励之词:

> "Starfetch很酷。看得出投入了很多心血。…祝你一切顺利,希望你能实现自己的目标。"
> — **Dylan Araps**

他的提醒"编写软件很有趣,但也可能非常耗费精力"以及"照顾好自己"是我们在这个项目中坚持的核心价值观。

---

## ✨ 功能特性

- 🎨 **自适应ASCII艺术** - 根据终端宽度自动调整显示。
- 🖥️ **全面的系统信息** - 主机名、操作系统、内核、运行时间、CPU、内存和软件包。
- 🔗 **智能超链接** - 带有终端检测的可点击开发者链接。
- 🌈 **美丽的颜色** - 支持ANSI颜色以获得优雅的终端输出。
- ⚡ **闪电般快速** - 用Rust编写以获得最佳性能。
- 🔧 **跨平台** - 适用于macOS、Linux和Windows。

## 📸 截图

```text
╔════════════════════════════════╗
║ ★ STARFETCH ★ ║
╚════════════════════════════════╝

Developed by Linus Shyu

hostname
--------
OS: macOS
Kernel: 25.2.0
Uptime: 6 Days 14 Hours 32 Minutes
Packages: 30 (brew)
CPU Cores: 10
CPU Brand: Apple M5
CPU Frequency: 4608 MHz
CPU Usage: 10.24%
Total Memory: 16 GB
Used Memory: 10.79 GB

```

## 🚀 安装

### 环境

- **Rust** (最新稳定版) - [安装Rust](https://www.rust-lang.org/tools/install)
- **Cargo** (Rust附带)

### 从源代码构建

```bash
git clone https://github.com/Linus-Shyu/StarFetch_Core.git
cd StarFetch_Core/StarFetch
cargo build --release

```

### 全局安装

```bash
cargo install --path .

```

## 📦 依赖

- `ansi_term` - 终端颜色和样式。
- `sysinfo` - 跨平台系统信息。
- `systemstat` - 系统统计信息(运行时间等)。
- `terminal_size` - 终端宽度检测。

## 👥 作者

- **Linus Shyu** ([@Linus-Shyu](https://github.com/Linus-Shyu))
- **Dylan Su** ([@xs10l3](https://github.com/xs10l3))
- **cloudsmithy** ([@cloudsmithy](https://github.com/cloudsmithy))
- **Daicx** ([@daicx0904](https://github.com/daicx0904))

## 🙏 致谢

- **Dylan Araps** - 感谢原始灵感和友善的鼓励。
- **Rust基金会** - 感谢商标合规性指导。我们使用**Ferris the Crab**(非官方但被官方认可的吉祥物)来代表我们对Rust社区的热爱。🦀
- **开源社区** - 感谢那些使这个项目成为可能的优秀的开源库。

## 📄 许可证

本项目采用MIT许可证 - 详见[LICENSE](https://www.bing.com/search?q=LICENSE)文件。

---

⭐ 如果您觉得StarFetch有用,请考虑在GitHub上给它一个星标!
204 changes: 98 additions & 106 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,161 +1,153 @@
# StarFetch
# StarFetch

A beautiful system information tool written in Rust, inspired by neofetch. StarFetch displays your system information with an elegant ASCII art banner.
[![Star History Chart](https://api.star-history.com/svg?repos=Linus-Shyu/StarFetch_Core&type=date&legend=top-left)](https://www.star-history.com/#Linus-Shyu/StarFetch_Core&type=date&legend=top-left)

## Features
[![Written in Rust](https://img.shields.io/badge/Written%20in-Rust-CE412B?style=for-the-badge&logo=rust&logoColor=white)](https://www.rust-lang.org/)
[![Mascot](https://img.shields.io/badge/Mascot-Ferris-orange?style=for-the-badge)](https://rustacean.net/)
[![License](https://img.shields.io/badge/license-MIT-blue.svg?style=for-the-badge)](LICENSE)

- 🎨 **Adaptive ASCII Art**: Automatically selects between full and compact ASCII art based on terminal width
- 🖥️ **System Information**: Displays hostname, OS, kernel version, and uptime
- 🔗 **Clickable Links**: Developer name with clickable hyperlink support
- 🌈 **Colorful Output**: Beautiful colored terminal output using ANSI colors
- ⚡ **Fast & Lightweight**: Written in Rust for optimal performance
<p align="center">
<a href="README.cn.md">简体中文</a>
<a href="README.md">English</a>
</p>

## Screenshot
A beautiful and fast system information tool written in Rust, inspired by neofetch. StarFetch displays your system information with elegant ASCII art and smart terminal adaptation.

```
_____/\\\\\\\\\\\_______________________________________________/\\\\\\\\\\\\\\\_____________________________________________/\\\_________
___/\\\/////////\\\____________________________________________\/\\\///////////_____________________________________________\/\\\_________
__\//\\\______\///______/\\\___________________________________\/\\\________________________________/\\\____________________\/\\\_________
___\////\\\__________/\\\\\\\\\\\__/\\\\\\\\\_____/\\/\\\\\\\__\/\\\\\\\\\\\_________/\\\\\\\\___/\\\\\\\\\\\_____/\\\\\\\\_\/\\\_________
______\////\\\______\////\\\////__\////////\\\___\/\\\/////\\\_\/\\\///////________/\\\/////\\\_\////\\\////____/\\\//////__\/\\\\\\\\\\__
_________\////\\\______\/\\\________/\\\\\\\\\\__\/\\\___\///__\/\\\______________/\\\\\\\\\\\_____\/\\\_______/\\\_________\/\\\/////\\\_
__/\\\______\//\\\_____\/\\\_/\\___/\\\/////\\\__\/\\\_________\/\\\_____________\//\\///////______\/\\\_/\\__\//\\\________\/\\\___\/\\\_
_\///\\\\\\\\\\\/______\//\\\\\___\//\\\\\\\\/\\_\/\\\_________\/\\\______________\//\\\\\\\\\\____\//\\\\\____\///\\\\\\\\_\/\\\___\/\\\_
___\///////////_________\/////_____\////////\//__\///__________\///________________\//////////______\/////_______\////////__\///____\///__
## 💡 Inspiration & Encouragement

StarFetch was born from a deep respect for the legacy of command-line tools. We are incredibly honored to have received these words of encouragement from **Dylan Araps**, the creator of [neofetch](https://github.com/dylanaraps/neofetch):

> "Starfetch looks cool. It looks like a lot of care has gone into it. ... I wish you all the best and I hope you succeed in your goals."
> — **Dylan Araps**

His reminder that "writing software is fun but can also be very draining" and to "look after yourselves" is a core value we carry forward in this project.

---

## ✨ Features

- 🎨 **Adaptive ASCII Art** - Automatically adjusts display based on terminal width.
- 🖥️ **Comprehensive System Info** - Hostname, OS, kernel, uptime, CPU, memory, and packages.
- 🔗 **Smart Hyperlinks** - Clickable developer links with terminal detection.
- 🌈 **Beautiful Colors** - ANSI color support for elegant terminal output.
- ⚡ **Lightning Fast** - Written in Rust for optimal performance.
- 🔧 **Cross-Platform** - Works on macOS, Linux, and Windows.

## 📸 Screenshot

```text
╔════════════════════════════════╗
║ ★ STARFETCH ★ ║
╚════════════════════════════════╝

Developed by Linus Shyu

hostname
--------
OS: macOS
Kernel: 25.2.0
Uptime: 2 Days 5 Hours 30 Minutes
Uptime: 6 Days 14 Hours 32 Minutes
Packages: 30 (brew)
CPU Cores: 10
CPU Brand: Apple M5
CPU Frequency: 4608 MHz
CPU Usage: 10.24%
Total Memory: 16 GB
Used Memory: 10.79 GB

```

## Installation
## 🚀 Installation

### Prerequisites
Install with your system package manager—as simple as neofetch.

- Rust (latest stable version)
- Cargo (comes with Rust)
### APT (Ubuntu / Debian / Kali)

### Build from Source
On Linux, these two commands are all you need (x86_64 and ARM64):

1. Clone the repository:
```bash
git clone https://github.com/Linus-Shyu/StarFetch_Core.git
cd StarFetch_Core/StarFetch
curl -1sLf 'https://dl.cloudsmith.io/public/starlakeai/starfetch/setup.deb.sh' | sudo -E bash
sudo apt-get install starfetch
```

2. Build the project:
```bash
cargo build --release
```
### Homebrew (macOS)

3. Run the executable:
```bash
cargo run --release
brew tap Linus-Shyu/tap
brew install starfetch
```

Or install it globally:
```bash
cargo install --path .
### Winget (Windows)

```powershell
winget install Linus-Shyu.StarFetch
```

## Usage
---

Simply run:
```bash
starfetch
```
### Other installation options

**Universal install script (when no package manager is available):**

Or if you built it locally:
```bash
cargo run
# Linux / macOS / BSD
curl -fsSL https://raw.githubusercontent.com/Linus-Shyu/StarFetch_Core/master/install.sh | bash
```

## Project Structure

```
StarFetch/
├── src/
│ ├── main.rs # Main entry point
│ ├── art.rs # ASCII art generation and terminal width detection
│ ├── system.rs # System information retrieval
│ └── hyperlink.rs # Hyperlink and text styling utilities
├── Cargo.toml # Project dependencies and metadata
└── README.md # This file
```powershell
# Windows (PowerShell)
irm https://raw.githubusercontent.com/Linus-Shyu/StarFetch_Core/master/install.ps1 | iex
```

## Dependencies

- `ansi_term` - Terminal colors and styling
- `sysinfo` - System information retrieval
- `systemstat` - System statistics (uptime, etc.)
- `terminal_size` - Terminal width detection

## Features in Detail

### Adaptive ASCII Art

StarFetch automatically detects your terminal width:
- **Width ≥ 120 characters**: Displays full "STARFETCH" ASCII art
- **Width < 120 characters**: Displays compact box art
- **Unable to detect**: Falls back to full ASCII art

### System Information

Displays:
- **Hostname**: Your system's hostname
- **OS**: Operating system name
- **Kernel**: Kernel version
- **Uptime**: System uptime in days, hours, and minutes

### Clickable Links

The developer name is displayed as a clickable hyperlink (supported in modern terminals like iTerm2, Windows Terminal, etc.)
### Prerequisites

## Development
- **Rust** (latest stable version) - [Install Rust](https://www.rust-lang.org/tools/install)
- **Cargo** (comes with Rust)

### Format Code
### Build from Source

```bash
cargo fmt
```

### Check for Issues
git clone https://github.com/Linus-Shyu/StarFetch_Core.git
cd StarFetch_Core/StarFetch
cargo build --release

```bash
cargo check
```

### Build
### Install Globally

```bash
cargo build
cargo install --path .

```

### Run Tests
### Troubleshooting

```bash
cargo test
```
If you see warnings like `profile package spec 'zlib-rs' in profile 'dev' did not match any packages`, your **global Cargo config** (`~/.cargo/config.toml`) has profile overrides for packages such as `zlib-rs` or `adler2` that this repo does not use. Edit `~/.cargo/config.toml` and remove or comment out sections like `[profile.dev.package.zlib-rs]`, `[profile.release.package.adler2]`, and `[profile.release.package.zlib-rs]`. You can also ignore the warning—it does not affect the build.

## 📦 Dependencies

## Contributing
- `ansi_term` - Terminal colors and styling.
- `sysinfo` - Cross-platform system info.
- `systemstat` - System statistics (uptime, etc.).
- `terminal_size` - Terminal width detection.

Contributions are welcome! Please feel free to submit a Pull Request.
## 👥 Authors

## License
- **Linus Shyu** ([@Linus-Shyu](https://github.com/Linus-Shyu))
- **Dylan Su** ([@xs10l3](https://github.com/xs10l3))
- **cloudsmithy** ([@cloudsmithy](https://github.com/cloudsmithy))
- **Daicx** ([@daicx0904](https://github.com/daicx0904))

See [LICENSE](LICENSE) file for details.
## 🙏 Acknowledgments

## Author
- **Dylan Araps** - For the original inspiration and kind words.
- **Rust Foundation** - For guidance on trademark compliance. We use **Ferris the Crab** (the unofficial-official mascot) to represent our love for the Rust community. 🦀
- **The Open Source Community** - For the amazing crates that make this project possible.

**Linus Shyu**
## 📄 License

- GitHub: [@Linus-Shyu](https://github.com/Linus-Shyu)
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Acknowledgments
---

- Inspired by [neofetch](https://github.com/dylanaraps/neofetch)
- Built with ❤️ using Rust
⭐ If you find StarFetch useful, please consider giving it a star on GitHub!
Loading