Skip to content

Repository files navigation

yoo

A small, local-first CLI for viewing project, Git, and development environment information.

πŸ“š Read the complete yo-CLI Wiki (https://github.com/nihitdev/yo-cli/wiki)

Crates.io version npm version Latest release

CI status Supported platforms GPL-3.0-or-later license

yoo showing a developer session summary

About

yoo collects common project and environment checks in a few commands:

yoo             # show a session summary
yoo doctor      # check development tools and configuration
yoo project     # inspect the current repository

The project is:

  • local-only, with no telemetry, accounts, daemon, or AI service
  • written in Rust
  • available on Windows, Linux, and macOS
  • usable in scripts through yoo fetch --json and yoo project --json

Quick start

On Windows:

winget source update
winget install --id Nihitdev.yoo --exact

Then run:

yoo --fast
yoo doctor
yoo project

No configuration is required. Run yoo init only when you want to customize the theme, profile, timer, or tip packs.

The core workflow

1. Start a coding session

yoo --fast

See the current project, Git branch, working-tree state, and one practical reminder without opening an IDE.

yoo developer session starter

2. Check your setup

yoo doctor

Check Rust, Cargo, Git, Rustfmt, Clippy, yoo configuration, project detection, and repository state. Project detection works with Rust, Node.js, Python, Go, Java, and .NET repositories.

yoo doctor checking the local development setup

3. Understand the project

yoo project

Get project metadata, package-manager detection, source statistics, Git details, and common repository-file checks.

yoo project showing repository details

4. Inspect the environment

yoo fetch

yoo fetch showing developer environment information

Installation

Prebuilt binary with Cargo Binstall

cargo binstall yoo

If needed, install Cargo Binstall first with cargo install cargo-binstall.

Cargo

cargo install yoo

npm

npm install -g @nihitde_v/yoo

pnpm

pnpm add -g @nihitde_v/yoo

Bun

bun add -g @nihitde_v/yoo

These packages download the matching prebuilt binary from GitHub Releases.

WinGet

winget source update
winget install --id Nihitdev.yoo --exact

Scoop

scoop bucket add nihitdev https://github.com/nihitdev/scoop-bucket
scoop install yoo

The Chocolatey package is awaiting registry review.

Arch Linux

yay -S yoo-bin

Build from source

git clone https://github.com/nihitdev/yo-cli.git
cd yo-cli
cargo install --path .

Commands

Command Purpose
yoo Start a developer session
yoo doctor Check local tools, configuration, project detection, and Git
yoo project Show project metadata, source stats, Git details, and repository files
yoo fetch Show the developer environment and current project
yoo status Alias for yoo fetch
yoo session [MINUTES] Start a local focus timer
yoo tip [PACK] Print a tip from a built-in or local pack
yoo tips List available tip packs
yoo init Create the default config and sample tip pack
yoo config Print the active config path
yoo help Show complete CLI help

Useful display options:

yoo --fast
yoo --theme tokyo-night
yoo --plain
yoo --no-art
yoo project --plain

Project detection

Project type Marker Package manager
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

Generated and dependency directories such as .git, target, node_modules, dist, build, .next, .venv, and vendor are skipped while counting source files.

JSON output

Use undecorated JSON in scripts and editor integrations:

yoo fetch --json
yoo project --json

Example project fields:

{
  "yoo_version": "0.6.6",
  "project": {
    "name": "yoo",
    "language": "Rust",
    "version": "0.6.6"
  },
  "git": {
    "branch": "main",
    "changed_files": 0
  }
}

Example terminal output:

πŸ“¦ Name:            yoo
πŸ”§ Language:        Rust
🏷 Version:         0.6.6

--json cannot be combined with display options such as --plain, --no-art, or --theme.

Configuration

Create the default YAML file and a sample community tip pack:

yoo init
yoo config

Config locations:

Windows: %APPDATA%\yoo\config.yaml
Linux:   ~/.config/yoo/config.yaml
macOS:   ~/Library/Application Support/yoo/config.yaml

The main settings are:

profile:
  name: developer

appearance:
  theme: neon
  ascii: true
  colors: true
  typing_speed_ms: 12

git:
  show_branch: true
  show_status: true

tips:
  enabled: true
  pack: general

session:
  default_minutes: 25
  show_complete_message: true

Available themes: neon, ocean, mono, dracula, tokyo-night, gruvbox, nord, rose-pine, and catppuccin.

Tip packs

Built-in packs include general, git, linux, and rust.

yoo tip rust
yoo tips

Local packs are simple YAML files stored in the tips directory beside the yoo config:

name: team
description: Team workflow reminders.
tips:
  - Keep pull requests small enough to review carefully.
  - Write down the command that fixed the problem.

Privacy

yoo reads local environment, project, and Git information and prints it to the terminal or requested JSON output. It does not transmit or retain project data.

Development

git clone https://github.com/nihitdev/yo-cli.git
cd yo-cli
cargo fmt --check
cargo test --locked
cargo clippy --locked -- -D warnings
cargo build --release --locked

Contributions should stay focused and keep yoo lightweight. See CONTRIBUTING.md.

Troubleshooting

Problem What to try
Missing config warning Run yoo init; defaults already work without a config file
No colours Check whether output is redirected or use a terminal with ANSI support
Missing Git information Run yoo inside a Git repository and ensure git is in PATH
Slow Cargo installation Use cargo binstall yoo for a prebuilt binary
JSON rejects an option Remove display flags when using --json

License

GPL-3.0-or-later. See LICENSE.

About

A tiny developer companion for better coding sessions.

Topics

Resources

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

Contributors

Languages