# yoo
<p align="center">
<strong>A tiny developer companion for better coding sessions.</strong>
</p>
<p align="center">
Start a session with useful project details, environment checks, tip packs, a focus timer, and a fast project overview.
</p>
<p align="center">
<a href="https://crates.io/crates/yoo">
<img src="https://img.shields.io/crates/v/yoo?style=for-the-badge&logo=rust&label=crates.io" alt="Crates.io version">
</a>
<a href="https://crates.io/crates/yoo">
<img src="https://img.shields.io/crates/d/yoo?style=for-the-badge&label=downloads" alt="Crates.io downloads">
</a>
<a href="https://github.com/nihitdev/scoop-nihitdev">
<img src="https://img.shields.io/badge/Scoop-nihitdev-blue?style=for-the-badge" alt="Available via Scoop">
</a>
<a href="https://github.com/nihitdev/yo-cli/actions/workflows/ci.yml">
<img src="https://github.com/nihitdev/yo-cli/actions/workflows/ci.yml/badge.svg" alt="CI status">
</a>
<a href="LICENSE">
<img src="https://img.shields.io/badge/license-GPL--3.0--or--later-blue?style=for-the-badge" alt="GPL-3.0-or-later license">
</a>
</p>
## What is yoo?
`yoo` is a Rust CLI that makes opening a terminal feel a little better.
It gives you a friendly developer-session greeting, shows project and Git state, checks your Rust setup, fetches environment information, analyses the project in the current directory, offers practical tips, and includes a lightweight local focus timer.
```text
Terminal open. Brain online. Let's go. ⚡
📁 Project: yo-cli
🌿 Git branch: main
✏️ Working tree: clean
💡 Tip: Write the test that would have caught your last bug.
```
## Features
- 🚀 Friendly developer session starter
- 🩺 `yoo doctor` for Rust, Cargo, Git, config, and project checks
- ⚡ `yoo fetch` for developer-environment and project detection
- 📦 `yoo project` for project metadata, source stats, Git details, and project-file checks
- 📄 JSON output with `yoo fetch --json` and `yoo project --json`
- ⏱️ Local coding-session timer with `yoo session`
- 📝 YAML configuration
- 💡 Built-in and community YAML tip packs
- 🌿 Current Git branch and working-tree status
- 🎨 Nine terminal themes
- 🦀 Written in Rust
- ✅ Unit tests, formatting checks, Clippy, and GitHub Actions CI
## Screenshots
### Start a coding session
```bash
yoo --fast --name YourName
```
<p align="center">
<img src="docs/images/hero.png" alt="yoo welcome screen" width="780">
</p>
### Check your setup
```bash
yoo doctor
```
<p align="center">
<img src="docs/images/doctor.png" alt="yoo doctor output with Rust and Git checks" width="780">
</p>
### Fetch your developer environment
```bash
yoo fetch
```
<p align="center">
<img src="docs/images/fetch.png" alt="yoo fetch showing developer environment and project status" width="780">
</p>
### Inspect the current project
```bash
yoo project
```
```text
yoo project — project overview
📦 Name: yoo
🔧 Language: Rust
📦 Package manager: Cargo
📄 Manifest: Cargo.toml
🏷 Version: 0.5.0
🦀 Edition: 2024
⚖ License: GPL-3.0-or-later
📁 Source files: 10
📏 Source lines: 2,000+
🌿 Git branch: main
✏️ Working tree: clean
```
## Installation
### Cargo (cross-platform)
```bash
cargo install yoo
```
Update later:
```bash
cargo install yoo --force
```
### Scoop (Windows)
```powershell
scoop bucket add nihitdev https://github.com/nihitdev/scoop-nihitdev
scoop install yoo
```
Update later:
```powershell
scoop update
yoo --version
scoop update yoo
```
### WinGet (Windows)
The package is being prepared for the official WinGet community repository.
```powershell
winget install --id Nihitdev.Yoo
```
Start your first developer session:
```bash
yoo
```
## Commands
```text
yoo
yoo doctor
yoo fetch
yoo fetch --json
yoo status
yoo project
yoo project --json
yoo init
yoo config
yoo tips
yoo tip rust
yoo session
yoo session 25
```
## Useful options
```bash
yoo --fast
yoo --name YourName
yoo --theme tokyo-night
yoo --plain
yoo --no-art
yoo project --plain
yoo fetch --json
yoo project --json
```
## Themes
```text
neon
ocean
mono
dracula
tokyo-night
gruvbox
nord
rose-pine
catppuccin
```
Example:
```bash
yoo --fast --theme tokyo-night
```
## Project detection
`yoo project` and `yoo fetch` detect these project markers:
| Rust | `Cargo.toml` | Cargo |
| Node.js | `package.json` | npm, pnpm, Yarn, or Bun |
| Python | `pyproject.toml` | pip, uv, Poetry, or Pipenv |
| Go | `go.mod` | Go modules |
| Java | `pom.xml` or Gradle files | Maven or Gradle |
| .NET | `.sln` or `.csproj` | .NET SDK |
`yoo project` counts source files and lines while skipping generated or heavy folders such as `.git`, `target`, `node_modules`, `dist`, `build`, `.next`, `.venv`, and `vendor`.
## Configuration
Create the default YAML configuration and a sample community tip pack:
```bash
yoo init
```
Config locations:
```text
Windows: %APPDATA%\yoo\config.yaml
Linux: ~/.config/yoo/config.yaml
macOS: ~/Library/Application Support/yoo/config.yaml
```
Print the active config path:
```bash
yoo config
```
## Tip packs
`yoo` ships with these built-in tip packs:
```text
general
git
linux
rust
```
Get one random Rust tip:
```bash
yoo tip rust
```
Community packs are YAML files stored here:
```text
Windows: %APPDATA%\yoo\tips
Linux: ~/.config/yoo/tips
macOS: ~/Library/Application Support/yoo/tips
```
## Development
```bash
git clone https://github.com/nihitdev/yo-cli.git
cd yo-cli
cargo fmt --check
cargo test
cargo clippy -- -D warnings
cargo run -- doctor
cargo run -- fetch
cargo run -- project
cargo run -- project --json
```
## Roadmap
- [x] Developer session greeting
- [x] Git branch and working-tree summary
- [x] YAML configuration
- [x] Themes
- [x] `yoo doctor`
- [x] Local coding-session timer
- [x] Community YAML tip packs
- [x] `yoo fetch` developer environment and project status
- [x] `yoo project` project overview and source stats
- [x] JSON output for `yoo fetch` and `yoo project`
- [ ] More tip packs from contributors
- [ ] Shell completion support
- [ ] Better terminal accessibility options
- [ ] Optional release update checker
## Contributing
Contributions, ideas, tip packs, and bug reports are welcome.
Read [CONTRIBUTING.md](CONTRIBUTING.md) before opening a pull request.
## License
`yoo` is licensed under the GNU General Public License v3.0 or later.
See [LICENSE](LICENSE) for details.
---
Built with ❤️ and Rust by [@nihitdev](https://github.com/nihitdev).