Hello, I'm Maneshwar. I'm building git-lrc, a Micro AI code reviewer that runs on every commit. It is free and source-available on Github. Star git-lrc to help devs discover the project. Do give it a try and share your feedback.
Two things I kept putting off.
First: people on Windows asked if peektea runs on WSL. It does now.
Second: "brew it from source" is a terrible install story for a tool that's supposed to be minimal. That's fixed too.
Demo here in case above preview not showing up.
WSL is Linux. peektea runs on Linux. So far, so good.
The problem is o
the key that opens files.
On a normal Linux machine, pressing o
on an image launches feh
or eog
. On WSL there are no Linux GUI apps.
The call fails silently or prints an error.
peektea now detects WSL at startup:
func IsWSL() bool {
if os.Getenv("WSL_DISTRO_NAME") != "" {
return true
}
data, err := os.ReadFile("/proc/version")
return err == nil && strings.Contains(strings.ToLower(string(data)), "microsoft")
}
When WSL is detected, file opens route through wslview
(from wslu) if it's installed, otherwise fall back to explorer.exe
:
func WSLOpener() string {
if _, err := exec.LookPath("wslview"); err == nil {
return "wslview"
}
if _, err := exec.LookPath("explorer.exe"); err == nil {
return "explorer.exe"
}
if _, err := os.Stat("/mnt/c/Windows/explorer.exe"); err == nil {
return "/mnt/c/Windows/explorer.exe"
}
return ""
}
There's one more wrinkle: Windows programs can't read Linux paths like /home/taco/file.png
.
They need UNC paths like \\wsl.localhost\Ubuntu\home\taco\file.png
.
WSL ships wslpath
for exactly this:
func WindowsPath(path string) string {
out, err := exec.Command("wslpath", "-w", path).Output()
if err != nil {
return path
}
return strings.TrimSpace(string(out))
}
When the configured opener ends in .exe
, the path gets converted before the command runs.
wslview
handles conversion itself so it doesn't need this, only raw explorer.exe
does.
A minimal terminal file browser built with Bubble Tea.
Peek through your filesystem with arrow keys (or vim keys), then pour each file straight into the app you've configured for it.
A quick peek before you steep:
One-liner:
curl -fsSL https://raw.githubusercontent.com/lovestaco/peektea/master/scripts/install.sh | sh
Download a binary (no Go required) — grab the latest release for your platform from the releases page:
| Platform | File |
|---|---|
| Linux x86-64 | peektea_ |
| Linux arm64 | peektea |
| macOS x86-64 | peektea |
| macOS Apple Silicon | peektea_darwin_arm64.tar.gz |
Extract and put the peektea
binary anywhere on your $PATH
.
Install with Go:
go install github.com/lovestaco/peektea@latest
Build from source:
git clone https://github.com/lovestaco/peektea
cd peektea
make install
make install
puts the binary in ~/go/bin
and figures out $PATH
for you:
~/.local/bin
is on your PATH — symlinks the binary there, works immediately in the current shell.~/go/bin
to your .bashrc
…peektea init
on a normal Linux machine asks you to pick a text editor, file manager, image viewer, and PDF viewer from what's installed.
On WSL there usually aren't any Linux GUI apps. Asking you to pick between zero options isn't a great experience.
So on WSL, init skips those categories and sets the Windows opener as the fallback instead of xdg-open
.
You still get the full text editor setup (vim, nvim, nano those work fine in WSL), and the Windows side handles everything visual.
Demo here in case the above preview is not showing up.
While at it, peektea init
got smarter in general.
If you decline the "already exists, overwrite?" prompt, it used to just exit.
Now it keeps your config and continues to the chafa check, so you can re-run peektea init
any time just to install extras without nuking your setup.
And if chafa isn't installed, it doesn't just print the install command anymore.
It offers to run it:
── Image previews
chafa not found — it renders images right in the terminal (the `p` preview).
Install it now? (sudo apt install -y chafa) [Y/n]:
It detects your package manager (apt
, dnf
, pacman
, zypper
, apk
, brew
) and runs the right command. Bare enter means yes.
The other thing that needed fixing: the only install method was cloning the repo and running make install
.
That requires Go, git, and knowing where ~/go/bin
is.
Too much friction for a tool that's supposed to just work.
peektea now ships pre-built binaries for Linux and macOS (x86-64 and arm64) on every release.
One-liner:
curl -fsSL https://raw.githubusercontent.com/lovestaco/peektea/master/scripts/install.sh | sh
The script detects your OS and architecture, pulls the right binary from the latest release, and installs it to ~/.local/bin
or /usr/local/bin
whichever is already on your PATH.
With Go:
go install github.com/lovestaco/peektea@latest
** peektea version now works correctly** regardless of how you installed it.
When installed via go install
, the binary reads its own module version from debug.ReadBuildInfo()
.
When built with make install
, the version comes from git describe
via ldflags.
Either way:
peektea version
AI agents write code fast. They also silently remove logic, change behavior, and introduce bugs — without telling you. You often find out in production.
git-lrc fixes this. It hooks into git commit and reviews every diff before it lands. 60-second setup. Completely free.
Any feedback or contributors are welcome! It's online, source-available, and ready for anyone to use.
⭐ Star it on GitHub:
| 🇩🇰 Dansk | 🇪🇸 Español | 🇮🇷 Farsi | 🇫🇮 Suomi | 🇯🇵 日本語 | 🇳🇴 Norsk | 🇵🇹 Português | 🇷🇺 Русский | 🇦🇱 Shqip | 🇨🇳 中文 |
AI agents write code fast. They also silently remove logic, change behavior, and introduce bugs -- without telling you. You often find out in production.
** git-lrc fixes this.** It hooks into
git commit
and reviews every diff git-lrc-intro-60s.mp4See git-lrc catch serious security issues such as leaked credentials, expensive cloud operations, and sensitive material in log statements