Terminal source tree viewer with split-pane preview and search
Project description
LazyViewer
A TUI source code viewer I vibe coded to browse full source code with git diff previews inline with easy keyboard navigation of both the source code and the file tree.
As I am coding with LLMs, they create a lot of code that I wanted to browse fast, and I haven't found a great viewer for it where I can see the changes like in Cursor/VSCode GUI, but still fit well with the TUIs. The best I found were LazyGit (awesome tool) and nvim tree view with preview, but with LazyGit I couldn't browse all the files, just the changes, and nvim's tree browser with preview was quite slow and is not optimized for viewing these changes either.
I created a simple tool, LazyViewer that is just between these 3 tools and optimized for my most common workflow for understanding the code base that LLMs create.
It has syntax highlighting, shows the function headers, is able to browse multiple project trees, respects .gitignore and hidden files (but can be turned off), git overlay is on by default, but it can be turned off, and it's quite interactive (ripgrep for a syntax with a mouse click for example).
There are lots of ways I'm tempted to improve it (inline editor support?), but at the same time I'm trying to keep it minimal and focus on the smooth interaction of the features that isn't available using other tools that treat them as separate features of a more complex program.
The code base is really ugly, far from how I'd like it to be, but it's partly because I started working on it with codex before this program existed :)
I'm having fun using/developing it though, hopefully it will be fun/useful for others as well.
Tip: add alias lv='lazyviewer' to your shell config.
Install
The easiest way:
pipx install lazyviewer
Or with pip:
pip install lazyviewer
/ content search uses ripgrep (rg). Install it with your package manager:
- macOS (Homebrew):
brew install ripgrep - Ubuntu/Debian:
sudo apt install ripgrep - Fedora:
sudo dnf install ripgrep - Arch:
sudo pacman -S ripgrep - Windows (winget):
winget install BurntSushi.ripgrep
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lazyviewer-0.1.1.tar.gz.
File metadata
- Download URL: lazyviewer-0.1.1.tar.gz
- Upload date:
- Size: 126.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c2280d279860e62eb993289f2da5641e9749bf542918606a22d652c682e54a9
|
|
| MD5 |
6a16af2294382e6314e51e6730d7d785
|
|
| BLAKE2b-256 |
9eafc956a1bd12cfc4228ebaabd6ce3a9b23920800ea9e146604a5d06e9d99bf
|
Provenance
The following attestation bundles were made for lazyviewer-0.1.1.tar.gz:
Publisher:
publish-pypi.yml on adamritter/lazyviewer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lazyviewer-0.1.1.tar.gz -
Subject digest:
6c2280d279860e62eb993289f2da5641e9749bf542918606a22d652c682e54a9 - Sigstore transparency entry: 992619225
- Sigstore integration time:
-
Permalink:
adamritter/lazyviewer@bae0450db0b63a7d53e8b61f4fa6fc5bae93dec7 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/adamritter
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@bae0450db0b63a7d53e8b61f4fa6fc5bae93dec7 -
Trigger Event:
release
-
Statement type:
File details
Details for the file lazyviewer-0.1.1-py3-none-any.whl.
File metadata
- Download URL: lazyviewer-0.1.1-py3-none-any.whl
- Upload date:
- Size: 162.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
37b105924cdeb96713598076f05e27c7cb1081d752be75d2cdc5270e5ad74b69
|
|
| MD5 |
f0c597cc96149a02f9094885b591c66c
|
|
| BLAKE2b-256 |
813da94852fbde97f64970b445c412d8063967f8874d5454069088efe89fc9ef
|
Provenance
The following attestation bundles were made for lazyviewer-0.1.1-py3-none-any.whl:
Publisher:
publish-pypi.yml on adamritter/lazyviewer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lazyviewer-0.1.1-py3-none-any.whl -
Subject digest:
37b105924cdeb96713598076f05e27c7cb1081d752be75d2cdc5270e5ad74b69 - Sigstore transparency entry: 992619228
- Sigstore integration time:
-
Permalink:
adamritter/lazyviewer@bae0450db0b63a7d53e8b61f4fa6fc5bae93dec7 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/adamritter
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@bae0450db0b63a7d53e8b61f4fa6fc5bae93dec7 -
Trigger Event:
release
-
Statement type: