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

https://github.com/nobbmaestro/lazyhis

Simple terminal UI for shell history
https://github.com/nobbmaestro/lazyhis

golang history history-management shell

Last synced: 2 months ago
JSON representation

Simple terminal UI for shell history

Awesome Lists containing this project

README

          


LazyHis


A simple terminal UI for shell history, written in Go!



GitHub Release


GitHub Last Commit


GitHub Commits Since


MIT License


animated

## Why LazyHis?

LazyHis focuses on simplicity, speed, and a clean terminal UI.

- 🚀 **Fast**: Written in Go for maximum performance.
- 🎨 **Customizable**: Supports themes and keybindings.
- 🔍 **Powerful**: Advanced filtering, customizable, and shell integration.

## Table of contents

- [Quick Install](#quick-install)
- [Homebrew](#homebrew)
- [Build from Source](#build-from-source)
- [Configure zsh](#configure-zsh)
- [Feature Roadmap](#feature-roadmap)
- [Customization](#customization)
- [Alternatives](#alternatives)

## Quick Install

### 1. Install the lazyhis binary:

#### With [Homebrew](https://brew.sh) (Recommended)

```sh
brew tap nobbmaestro/homebrew-tap
brew install lazyhis
```

#### Build from Source

```sh
git clone git@github.com:nobbmaestro/lazyhis.git
cd lazyhis
make install
```

### 2. Add the init script to your shell's config file:

#### Zsh

Add the following to the end of ~/.zshrc:

```sh
# ~/.zshrc

eval "$(lazyhis init zsh)"
```

### 3. Import existing histfile:

#### Zsh

```sh
lazyhis history import --zsh /path/to/histfile
```

## Feature Roadmap

- [ ] Add export CLI command for exporting to HISTFILE
- [x] Add generate shell-completions CLI command
- [x] Add prune CLI command for removing history based on ignore pattern
- [x] Add dry flag for prune CLI command
- [x] Add verbosity flag for prune and import CLI commands
- [x] Copy to clipboard via GUI
- [x] Customizable GUI theme
- [x] Customizable command exclusion by patterns
- [x] Customizable command exclusion by prefix
- [x] Customizable keybindings
- [x] Delete history entries via GUI
- [ ] Delete multiple history entries via GUI
- [ ] Edit history entries via GUI
- [x] Filter history by context via GUI
- [ ] Fuzzy-finder search strategy in GUI
- [ ] Support for inline GUI mode

## Customization

Check out the [configuration docs](docs/config.md).

## Alternatives

If `lazyhis` isn't quite what you're looking for, you might prefer:

- [Atuin](https://github.com/atuinsh/atuin)