-
Notifications
You must be signed in to change notification settings - Fork 2
Home
yoo is a small, local-first CLI for viewing project, Git, and development environment information.
It is written in Rust and works on Windows, Linux, and macOS.
yoo --fast
yoo doctor
yoo projectNo configuration is required for normal use.
yoo only reads local environment, project, and Git information. It has no telemetry, accounts, daemon, or external AI service.
Choose one installation method. You do not need to install yoo more than once.
Windows users can install yoo with WinGet:
winget source update
winget install --id Nihitdev.yoo --exactUpgrade it later with:
winget upgrade --id Nihitdev.yoo --exactInstall a prebuilt binary:
cargo binstall yooIf Cargo Binstall is unavailable:
cargo install cargo-binstall
cargo binstall yooBuild and install from crates.io:
cargo install yoonpm install --global @nihitde_v/yoopnpm add --global @nihitde_v/yoobun add --global @nihitde_v/yooThe npm, pnpm, and Bun packages download the matching prebuilt binary from GitHub Releases.
scoop bucket add nihitdev https://github.com/nihitdev/scoop-bucket
scoop install yooUsing an AUR helper:
yay -S yoo-binRust 1.85 or newer is required:
git clone https://github.com/nihitdev/yo-cli.git
cd yo-cli
cargo install --path .yoo --version
yoo doctorIf yoo is not recognized after installation, restart the terminal and check the
Troubleshooting page.
Run yoo inside a project directory:
yooFor faster output without the typing animation:
yoo --fast| Command | Description |
|---|---|
yoo |
Start a developer session |
yoo doctor |
Check local tools, configuration, project detection, and Git |
yoo project |
Show project metadata, source statistics, and Git details |
yoo fetch |
Show the development environment and current project |
yoo status |
Alias for yoo fetch
|
yoo session [MINUTES] |
Start a local focus timer |
yoo tip [PACK] |
Print a random tip |
yoo tips |
List available tip packs |
yoo init |
Create the default configuration and sample tip pack |
yoo config |
Print the active configuration path |
yoo version |
Print the installed version |
yoo help |
Show the complete help message |
yoo --fast
yoo --no-art
yoo --plain
yoo --name YourName
yoo --theme tokyo-nightAvailable themes:
neonoceanmonodraculatokyo-nightgruvboxnordrose-pinecatppuccin
cd path/to/project
yoo projectThis displays information such as:
- Project name and language
- Project version
- Package manager
- Source-file statistics
- Git branch and working-tree status
- Common repository files
yoo doctorThis checks Rust, Cargo, Git, Rustfmt, Clippy, configuration, project detection, and repository state.
Use JSON output in scripts and editor integrations:
yoo fetch --json
yoo project --json--json cannot be combined with display options such as --plain, --no-art, or --theme.
Start the configured default timer:
yoo sessionStart a 45-minute timer:
yoo session 45The alternative syntax is:
yoo session --minutes 45Print a tip from the configured pack:
yoo tipSelect a specific pack:
yoo tip rustList all available packs:
yoo tipsBuilt-in packs include general, git, linux, and rust.
Create the default configuration:
yoo initPrint its location:
yoo configConfiguration locations:
Windows: %APPDATA%\yoo\config.yaml
Linux: ~/.config/yoo/config.yaml
macOS: ~/Library/Application Support/yoo/config.yaml
yoo detects a project by looking for common manifest and project files in the current directory.
| Project type | Detected files | Package managers |
|---|---|---|
| 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 projectFor machine-readable output:
yoo project --jsonFor Node.js projects, yoo checks lockfiles to detect the package manager:
-
package-lock.jsonfor npm -
pnpm-lock.yamlfor pnpm -
yarn.lockfor Yarn -
bun.lockorbun.lockbfor Bun
Generated files and dependencies are excluded from source statistics. Common ignored directories include:
.gittargetnode_modulesdistbuild.next.venvvendor
Make sure you are running yoo from the project root:
cd path/to/project
yoo projectIf a supported project is not detected, open a bug report and include the relevant manifest filename:
Report a project-detection bug
If the terminal cannot find yoo, restart the terminal after installation.
Check whether it is available:
Get-Command yoocommand -v yooAlso make sure your package manager's binary directory is included in PATH.
Create the default configuration:
yoo initA configuration file is optional. The built-in defaults work without one.
Print the expected configuration path:
yoo configMake sure:
- You are running
yooinside a Git repository. - Git is installed.
- The
gitcommand is available inPATH.
Check Git with:
git --version
git statusRun yoo from the project root containing files such as:
Cargo.tomlpackage.jsonpyproject.tomlgo.modpom.xml-
.slnor.csproj
Then run:
yoo projectColour is automatically disabled when appropriate. If output is redirected, use plain output explicitly:
yoo --plainOtherwise, use a terminal with ANSI colour support.
cargo install yoo compiles the project locally.
Use Cargo Binstall for a prebuilt binary:
cargo binstall yooJSON output cannot be combined with display options.
This is invalid:
yoo project --json --plainUse:
yoo project --jsonyoo doctorOpen an issue and include:
- Operating system
- Installation method
- Output from
yoo --version - Output from
yoo doctor - The exact command and error message
Contributions to yoo are welcome. Keep changes focused and avoid adding unnecessary dependencies or complexity.
- Git
- Rust 1.85 or newer
- Cargo
- Rustfmt
- Clippy
Install the Rust toolchain through rustup if necessary.
Fork the repository, then clone your fork:
git clone https://github.com/YOUR-USERNAME/yo-cli.git
cd yo-cliBuild and run the project:
cargo build
cargo run -- --fastRun these checks before opening a pull request:
cargo fmt --check
cargo test --locked
cargo clippy --locked -- -D warnings
cargo build --release --locked- Keep each pull request focused.
- Explain what changed and why.
- Add or update tests for behaviour changes.
- Avoid unnecessary dependencies and large abstractions.
- Update documentation when users will notice the change.
- Keep
yoolocal-first and lightweight. - Do not add telemetry or unnecessary network services.
Tip packs are YAML files:
name: web
description: Useful web-development reminders.
tips:
- Test loading, error, and empty states.
- Check the browser console before guessing.Tips should be:
- Practical
- Short
- Original
- Safe for a broad developer audience
- Create a branch.
- Make and test your changes.
- Commit with a clear message.
- Push the branch to your fork.
- Open a pull request against the
mainbranch.
Example:
git switch -c fix/project-detection
git add .
git commit -m "fix: improve project detection"
git push --set-upstream origin fix/project-detectionOpen an issue with:
- A clear description
- Steps to reproduce the problem
- Expected and actual behaviour
- Operating system
-
yooversion - Relevant command output