Metadata-Version: 2.4
Name: lazyviewer
Version: 0.1.0
Summary: Terminal source tree viewer with split-pane preview and search
Author: Adam Ritter
License: MIT License
        
        Copyright (c) 2026 Adam Ritter
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: Homepage, https://github.com/adamritter/lazyviewer
Project-URL: Repository, https://github.com/adamritter/lazyviewer
Project-URL: Issues, https://github.com/adamritter/lazyviewer/issues
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: Pygments>=2.15
Requires-Dist: platformdirs>=4.2
Requires-Dist: tree-sitter-languages>=1.10; python_version < "3.13"
Requires-Dist: tree-sitter-language-pack>=0.8; python_version >= "3.13"
Dynamic: license-file

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:

```bash
pipx install lazyviewer
```

Or with pip:

```bash
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`
