yoo 0.6.2

A tiny developer companion for better coding sessions.
# 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&amp;logo=rust&amp;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&amp;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.6.1
🦀 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 version
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:

| Project type | Marker | Package-manager detection |
| :-- | :-- | :-- |
| 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`.

## Privacy

`yoo` runs locally. It does not use AI services, collect telemetry, run a background service, or send project data anywhere. Environment and project information stays on your machine and is written only to the requested terminal or JSON output.

## 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 build --release

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`
- [x] Automated cross-platform GitHub releases
- [ ] More tip packs from contributors
- [ ] Shell completion support
- [ ] Better terminal accessibility options

## 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).