{"slug": "peektea-brews-on-wsl-and-installs-in-one-line", "title": "peektea brews on WSL 👀🍵 (and installs in one line)", "summary": "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.", "body_md": "*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.*\n\nTwo things I kept putting off.\n\nFirst: people on Windows asked if peektea runs on WSL. It does now.\n\nSecond: \"brew it from source\" is a terrible install story for a tool that's supposed to be minimal. That's fixed too.\n\n[Demo here](https://github.com/lovestaco/peektea/blob/master/media/wsl_demo.gif) in case above preview not showing up.\n\nWSL is Linux. peektea runs on Linux. So far, so good.\n\nThe problem is `o`\n\nthe key that opens files.\n\nOn a normal Linux machine, pressing `o`\n\non an image launches `feh`\n\nor `eog`\n\n. On WSL there are no Linux GUI apps.\n\nThe call fails silently or prints an error.\n\npeektea now detects WSL at startup:\n\n```\nfunc IsWSL() bool {\n    if os.Getenv(\"WSL_DISTRO_NAME\") != \"\" {\n        return true\n    }\n    data, err := os.ReadFile(\"/proc/version\")\n    return err == nil && strings.Contains(strings.ToLower(string(data)), \"microsoft\")\n}\n```\n\nWhen WSL is detected, file opens route through `wslview`\n\n(from [wslu](https://wslutiliti.es/wslu/)) if it's installed, otherwise fall back to `explorer.exe`\n\n:\n\n```\nfunc WSLOpener() string {\n    if _, err := exec.LookPath(\"wslview\"); err == nil {\n        return \"wslview\"\n    }\n    if _, err := exec.LookPath(\"explorer.exe\"); err == nil {\n        return \"explorer.exe\"\n    }\n    if _, err := os.Stat(\"/mnt/c/Windows/explorer.exe\"); err == nil {\n        return \"/mnt/c/Windows/explorer.exe\"\n    }\n    return \"\"\n}\n```\n\nThere's one more wrinkle: Windows programs can't read Linux paths like `/home/taco/file.png`\n\n.\n\nThey need UNC paths like `\\\\wsl.localhost\\Ubuntu\\home\\taco\\file.png`\n\n.\n\nWSL ships `wslpath`\n\nfor exactly this:\n\n```\nfunc WindowsPath(path string) string {\n    out, err := exec.Command(\"wslpath\", \"-w\", path).Output()\n    if err != nil {\n        return path\n    }\n    return strings.TrimSpace(string(out))\n}\n```\n\nWhen the configured opener ends in `.exe`\n\n, the path gets converted before the command runs.\n\n`wslview`\n\nhandles conversion itself so it doesn't need this, only raw `explorer.exe`\n\ndoes.\n\nA minimal terminal file browser built with [Bubble Tea](https://github.com/charmbracelet/bubbletea).\n\nPeek through your filesystem with arrow keys (or vim keys), then pour each file straight into the app you've configured for it.\n\nA quick peek before you steep:\n\n**One-liner:**\n\n```\ncurl -fsSL https://raw.githubusercontent.com/lovestaco/peektea/master/scripts/install.sh | sh\n```\n\n**Download a binary** (no Go required) — grab the latest release for your platform from the [releases page](https://github.com/lovestaco/peektea/releases/latest):\n\n| Platform | File |\n|---|---|\n| Linux x86-64 | `peektea_` |\n| Linux arm64 | `peektea` |\n| macOS x86-64 | `peektea` |\n| macOS Apple Silicon | `peektea_darwin_arm64.tar.gz` |\n\nExtract and put the `peektea`\n\nbinary anywhere on your `$PATH`\n\n.\n\n**Install with Go:**\n\n```\ngo install github.com/lovestaco/peektea@latest\n```\n\n**Build from source:**\n\n```\ngit clone https://github.com/lovestaco/peektea\ncd peektea\nmake install\n```\n\n`make install`\n\nputs the binary in `~/go/bin`\n\nand figures out `$PATH`\n\nfor you:\n\n`~/.local/bin`\n\nis on your PATH — symlinks the binary there, works immediately in the current shell.`~/go/bin`\n\nto your `.bashrc`\n\n…`peektea init`\n\non a normal Linux machine asks you to pick a text editor, file manager, image viewer, and PDF viewer from what's installed.\n\nOn WSL there usually aren't any Linux GUI apps. Asking you to pick between zero options isn't a great experience.\n\nSo on WSL, init skips those categories and sets the Windows opener as the fallback instead of `xdg-open`\n\n.\n\nYou still get the full text editor setup (vim, nvim, nano those work fine in WSL), and the Windows side handles everything visual.\n\n[Demo here](https://github.com/lovestaco/peektea/blob/master/media/init_wsl_support.gif) in case the above preview is not showing up.\n\nWhile at it, `peektea init`\n\ngot smarter in general.\n\nIf you decline the \"already exists, overwrite?\" prompt, it used to just exit.\n\nNow it keeps your config and continues to the chafa check, so you can re-run `peektea init`\n\nany time just to install extras without nuking your setup.\n\nAnd if chafa isn't installed, it doesn't just print the install command anymore.\n\nIt offers to run it:\n\n```\n── Image previews\n   chafa not found — it renders images right in the terminal (the `p` preview).\n   Install it now? (sudo apt install -y chafa) [Y/n]:\n```\n\nIt detects your package manager (`apt`\n\n, `dnf`\n\n, `pacman`\n\n, `zypper`\n\n, `apk`\n\n, `brew`\n\n) and runs the right command. Bare enter means yes.\n\nThe other thing that needed fixing: the only install method was cloning the repo and running `make install`\n\n.\n\nThat requires Go, git, and knowing where `~/go/bin`\n\nis.\n\nToo much friction for a tool that's supposed to just work.\n\npeektea now ships pre-built binaries for Linux and macOS (x86-64 and arm64) on every release.\n\n**One-liner:**\n\n```\ncurl -fsSL https://raw.githubusercontent.com/lovestaco/peektea/master/scripts/install.sh | sh\n```\n\nThe script detects your OS and architecture, pulls the right binary from the latest release, and installs it to `~/.local/bin`\n\nor `/usr/local/bin`\n\nwhichever is already on your PATH.\n\n**With Go:**\n\n```\ngo install github.com/lovestaco/peektea@latest\n```\n\n** peektea version now works correctly** regardless of how you installed it.\n\nWhen installed via `go install`\n\n, the binary reads its own module version from `debug.ReadBuildInfo()`\n\n.\n\nWhen built with `make install`\n\n, the version comes from `git describe`\n\nvia ldflags.\n\nEither way:\n\n```\npeektea version\n# peektea v0.2.1 (linux/amd64)\n```\n\nAI agents write code fast. They also silently remove logic, change behavior, and introduce bugs — without telling you. You often find out in production.\n\ngit-lrc fixes this. It hooks into git commit and reviews every diff before it lands. 60-second setup. Completely free.\n\nAny feedback or contributors are welcome! It's online, source-available, and ready for anyone to use.\n\n⭐ Star it on GitHub:\n\n| [🇩🇰 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) |\n\nAI agents write code fast. They also *silently remove logic*, change behavior, and introduce bugs -- without telling you. You often find out in production.\n\n** git-lrc fixes this.** It hooks into\n\n`git commit`\n\nand 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", "url": "https://wpnews.pro/news/peektea-brews-on-wsl-and-installs-in-one-line", "canonical_source": "https://dev.to/lovestaco/peektea-brews-on-wsl-and-installs-in-one-line-34ef", "published_at": "2026-06-06 17:47:41+00:00", "updated_at": "2026-06-06 18:11:39.372788+00:00", "lang": "en", "topics": ["ai-tools"], "entities": ["peektea", "WSL", "git-lrc", "Maneshwar", "wslview", "wslu", "explorer.exe"], "alternates": {"html": "https://wpnews.pro/news/peektea-brews-on-wsl-and-installs-in-one-line", "markdown": "https://wpnews.pro/news/peektea-brews-on-wsl-and-installs-in-one-line.md", "text": "https://wpnews.pro/news/peektea-brews-on-wsl-and-installs-in-one-line.txt", "jsonld": "https://wpnews.pro/news/peektea-brews-on-wsl-and-installs-in-one-line.jsonld"}}