An open API service indexing awesome lists of open source software.

https://github.com/nickhartjes/lazyjust

A lazy TUI for just — browse, search, and run recipes without memorizing commands. Built with Bubble Tea.
https://github.com/nickhartjes/lazyjust

bubbletea catppuccin cli command-runner go just justfile terminal tui

Last synced: about 1 month ago
JSON representation

A lazy TUI for just — browse, search, and run recipes without memorizing commands. Built with Bubble Tea.

Awesome Lists containing this project

README

          

# lazyjust

A modern TUI frontend for [just](https://github.com/casey/just) — browse and run recipes without memorizing commands.

```
╭─ lazyjust ─────────────────────────────────────────────────────╮
│ │
│ ╭─ Recipes ──────────────╮ ╭─ Output ────────────────────╮ │
│ │ │ │ │ │
│ │ ┃ General │ │ 📋 build │ │
│ │ ● build │ │ │ │
│ │ Build the project │ │ Build the project │ │
│ │ │ │ │ │
│ │ ○ test │ │ go build -o lazyjust . │ │
│ │ Run all tests │ │ │ │
│ │ │ │ │ │
│ │ ┃ docker │ │ │ │
│ │ ○ docker-up │ │ │ │
│ │ Start containers │ │ │ │
│ │ │ │ │ │
│ ╰─────────────────────────╯ ╰──────────────────────────────╯ │
│ │
│ 📂 backend/justfile ╱ 4 recipes ╱ ↑↓ navigate ╱ ⏎ run │
╰────────────────────────────────────────────────────────────────╯
```

## Features

- **Split-panel layout** — recipes on the left, output on the right
- **Recipe groups** — color-coded headers from `[group]` attributes
- **Body preview** — see recipe commands before running
- **Parameter input** — modal form for recipes with parameters, with defaults pre-filled
- **Confirm support** — `[confirm]` recipes prompt before execution
- **Real-time output** — streaming stdout/stderr with animated spinner
- **Search** — fuzzy filter recipes with `/`
- **Aliases & dependencies** — shown inline next to recipe names
- **Variadic params** — `*args` and `+args` handled in the input modal
- **ANSI color passthrough** — colored output from recipes preserved
- **Catppuccin Mocha** — soft dark theme with polished styling

## Install

### Homebrew

```bash
brew tap nickhartjes/tap
brew install lazyjust
```

### From source

```bash
go install github.com/nickhartjes/lazyjust@latest
```

### Build locally

```bash
git clone https://github.com/nickhartjes/lazyjust.git
cd lazyjust
go build -o lazyjust .
```

### From releases

Download a binary from the [releases page](https://github.com/nickhartjes/lazyjust/releases).

## Usage

```bash
# Run in any directory with a justfile
lazyjust

# Specify a justfile explicitly
lazyjust --justfile path/to/justfile

# Version
lazyjust --version

# Shell completions (see below)
lazyjust --completions zsh
lazyjust --completions bash
lazyjust --completions fish
```

### Shell completions setup

**Zsh** — add to your `~/.zshrc`:

```zsh
# lazyjust completions
eval "$(lazyjust --completions zsh)"
```

Or, to load from a file (faster startup):

```zsh
# Generate once
lazyjust --completions zsh > ~/.zfunc/_lazyjust

# Add to ~/.zshrc (before compinit)
fpath=(~/.zfunc $fpath)
autoload -Uz compinit && compinit
```

**Bash** — add to your `~/.bashrc`:

```bash
# lazyjust completions
eval "$(lazyjust --completions bash)"
```

**Fish** — run once:

```fish
lazyjust --completions fish > ~/.config/fish/completions/lazyjust.fish
```

## Keybindings

| Key | Action |
|-----|--------|
| `↑`/`↓` or `j`/`k` | Navigate recipes (or scroll output when focused) |
| `Enter` | Run selected recipe |
| `/` | Search/filter recipes |
| `Tab` | Switch focus between recipes and output panel |
| `Esc` | Cancel running recipe / close modal / clear search |
| `y`/`n` | Confirm/cancel `[confirm]` recipes |
| `q` | Quit |
| `Ctrl+C` | Force quit |

## Justfile discovery

`lazyjust` finds your justfile the same way `just` does:

1. Looks for `justfile`, `Justfile`, or `.justfile` in the current directory
2. Walks up parent directories until one is found
3. Use `--justfile` to override

## Requirements

- [just](https://github.com/casey/just) must be installed and on your `$PATH`
- A terminal with true color support (for the Catppuccin theme)

## Development

```bash
# Run all checks
just check

# Build with version info
just build-release

# Run the TUI on its own justfile
just run

# Test goreleaser locally
just release-snapshot
```

## License

MIT