command-line tool that stars the GitHub repositories, designed for multi-ecosystems 🌟 https://crates.io/crates/thanks-stars
  • Rust 91.8%
  • Shell 5.1%
  • JavaScript 2.9%
  • Just 0.2%
Find a file
2025-10-27 20:39:54 +09:00
.github chore: fix npm workflow 2025-10-26 00:16:02 +09:00
bin feat: added npm install binary 2025-10-25 23:45:44 +09:00
npm chore: updated postinstall script 2025-10-26 00:27:55 +09:00
scripts feat: added npm install binary 2025-10-25 23:45:44 +09:00
src chore: reduce binary size 2025-10-27 20:39:45 +09:00
tests chore: run clippy 2025-10-24 03:14:20 +09:00
.gitignore feat: added npm install binary 2025-10-25 23:45:44 +09:00
Cargo.lock chore(release): v0.10.1 2025-10-27 20:39:54 +09:00
Cargo.toml chore(release): v0.10.1 2025-10-27 20:39:54 +09:00
CHANGELOG.md feat: add gemfile support 2025-10-23 13:43:59 +09:00
cliff.toml chore: fix workflows 2025-10-23 02:30:46 +09:00
CODE_OF_CONDUCT.md Add Contributor Covenant Code of Conduct 2025-10-26 21:18:45 +09:00
CONTRIBUTING.md feat: add haskell support 2025-10-27 19:59:39 +09:00
dist-workspace.toml chore: update workflow 2025-10-22 23:49:06 +09:00
justfile chore: optimize http client 2025-10-27 20:22:48 +09:00
LICENSE Initial commit 2025-10-21 22:38:52 +09:00
package.json chore(release): v0.10.1 2025-10-27 20:39:54 +09:00
pnpm-lock.yaml feat: added npm install binary 2025-10-25 23:45:44 +09:00
README.md feat: add haskell support 2025-10-27 19:59:39 +09:00

🌟 Thanks Stars

Thanks Stars is a command-line companion that stars the GitHub repositories powering your project so you can show appreciation to the maintainers of your dependencies. It draws inspiration from teppeis/thank-you-stars, but reimagines the experience in Rust with first-class support for multiple ecosystems.

https://github.com/user-attachments/assets/d7a7b047-312e-4d56-ba5d-25ed6eb2e5ce

Highlights

  • Detects dependencies across popular package managers and build tools.
  • Uses your GitHub personal access token to star repositories on your behalf.
  • Provides friendly progress output and summarizes what happened at the end of a run.

🧭 Supported Ecosystems

The following ecosystems are currently detected when you run the tool:

Ecosystem Detection Source Implementation
Cargo (Rust) Cargo.toml src/ecosystems/cargo.rs
Node.js package.json src/ecosystems/node.rs
Deno deno.lock, deno.json, deno.jsonc src/ecosystems/deno.rs
JSR jsr.json src/ecosystems/jsr.rs
Go (Go Modules) go.mod src/ecosystems/go.rs
Dart pubspec.yaml src/ecosystems/dart.rs
Composer (PHP) composer.lock / composer.json src/ecosystems/composer.rs
Ruby (Bundler) Gemfile / Gemfile.lock src/ecosystems/ruby.rs
Python pyproject.toml / requirements.txt / Pipfile / Pipfile.lock / uv.lock src/ecosystems/python.rs
R (renv) renv.lock src/ecosystems/renv.rs
Gradle gradle.lockfile / build.gradle / build.gradle.kts src/ecosystems/gradle.rs
Maven pom.xml src/ecosystems/maven.rs
Haskell package.yaml / *.cabal / stack.yaml / cabal.project src/ecosystems/haskell.rs

Looking for support for a different ecosystem? Open an ecosystem support request and tell us about the manifest and lockfiles we should detect.

🚀 Installation

Choose the installation method that best fits your environment:

🍺 Homebrew

$ brew tap Kenzo-Wada/thanks-stars
$ brew install thanks-stars

🦀 Cargo

$ cargo install thanks-stars

📦 npm

$ npm install -g thanks-stars

💻 Shell installer (macOS/Linux)

$ curl -LSfs https://github.com/Kenzo-Wada/thanks-stars/releases/latest/download/thanks-stars-installer.sh | sh

🪟 PowerShell installer (Windows)

$ iwr https://github.com/Kenzo-Wada/thanks-stars/releases/latest/download/thanks-stars-installer.ps1 -useb | iex

🐧 Linux package managers

Native packages like apt/apt-get, pacman, nix, etc... are not published yet. Until a maintainer volunteers to host those repositories, please use one of the installers above or the manual download method. Contributions toward official Linux packages are very welcome—see CONTRIBUTING.md for coordination details.

📦 Manual download

Grab the archive for your platform from the GitHub Releases page and place the thanks-stars binary somewhere on your PATH.

🛠 Usage

Authenticate once with a GitHub personal access token, then run the tool in the root of your project.

Authenticate with GitHub

$ thanks-stars auth --token ghp_your_token_here

If you omit --token, the command will prompt you to paste it securely. By default the configuration is stored in a user-specific config.toml; you can override the storage location with the THANKS_STARS_CONFIG_DIR environment variable.

Run inside your project

$ cd path/to/your/project
$ thanks-stars

Example output:

$ thanks-stars
⭐ Starred https://github.com/xxx/xxx via Cargo.toml
✅ Already starred https://github.com/xxx/xxx via package.json
...
✨ Completed! ⭐ Starred 10 repositories.

Run thanks-stars --help to explore all available options.

Preview your run with --dry-run

If you want to see which repositories would be starred without making any changes to your GitHub account, pass the --dry-run flag:

$ thanks-stars --dry-run
⭐ Would star https://github.com/xxx/xxx via Cargo.toml
✅ Already starred https://github.com/xxx/yyy via package.json
✨ Dry run complete! ⭐ 1 repository would be starred, ✅ 1 already starred.

The command still inspects your dependencies so it can report which ones are already starred, but it avoids sending any API requests that would change your starred repositories.


Thanks Stars helps you recognize the maintainers who keep your stack running—so while you're at it, don't forget to this project too!