peektea brews on WSL ๐Ÿ‘€๐Ÿต (and installs in one line) Developer Maneshwar has added Windows Subsystem for Linux (WSL) support to peektea, a minimal terminal file browser built with Bubble Tea. The tool now automatically detects WSL environments and routes file openings through `wslview` or `explorer.exe` when no Linux GUI apps are available, converting Linux paths to Windows UNC paths as needed. Peektea also now installs via a single curl command, replacing the previous "brew from source" requirement. 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 https://github.com/lovestaco/peektea/blob/master/media/wsl demo.gif 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 https://wslutiliti.es/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 https://github.com/charmbracelet/bubbletea . 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 https://github.com/lovestaco/peektea/releases/latest : | 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 https://github.com/lovestaco/peektea/blob/master/media/init wsl support.gif 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 peektea v0.2.1 linux/amd64 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 https://github.com/HexmosTech/git-lrc/readme/README.da.md | ๐Ÿ‡ช๐Ÿ‡ธ Espaรฑol https://github.com/HexmosTech/git-lrc/readme/README.es.md | ๐Ÿ‡ฎ๐Ÿ‡ท Farsi https://github.com/HexmosTech/git-lrc/readme/README.fa.md | ๐Ÿ‡ซ๐Ÿ‡ฎ Suomi https://github.com/HexmosTech/git-lrc/readme/README.fi.md | ๐Ÿ‡ฏ๐Ÿ‡ต ๆ—ฅๆœฌ่ชž https://github.com/HexmosTech/git-lrc/readme/README.ja.md | ๐Ÿ‡ณ๐Ÿ‡ด Norsk https://github.com/HexmosTech/git-lrc/readme/README.nn.md | ๐Ÿ‡ต๐Ÿ‡น Portuguรชs https://github.com/HexmosTech/git-lrc/readme/README.pt.md | ๐Ÿ‡ท๐Ÿ‡บ ะ ัƒััะบะธะน https://github.com/HexmosTech/git-lrc/readme/README.ru.md | ๐Ÿ‡ฆ๐Ÿ‡ฑ Shqip https://github.com/HexmosTech/git-lrc/readme/README.sq.md | ๐Ÿ‡จ๐Ÿ‡ณ ไธญๆ–‡ https://github.com/HexmosTech/git-lrc/readme/README.zh.md | 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