Metadata-Version: 2.4
Name: lsoph
Version: 0.0.2
Summary: An interactive lsof alternative
Author-email: Gareth Davidson <gaz@bitplane.net>
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Classifier: Programming Language :: Python :: 3
Classifier: License :: Public Domain
Classifier: Operating System :: POSIX :: Linux
Classifier: Topic :: Software Development :: Libraries :: Python Modules
License-File: LICENSE.md
Requires-Dist: psutil~=7.0
Requires-Dist: textual~=3.1
Requires-Dist: flake8 ; extra == "dev"
Requires-Dist: pre-commit ; extra == "dev"
Requires-Dist: pytest ; extra == "dev"
Requires-Dist: coverage ; extra == "dev"
Requires-Dist: pytest-cov ; extra == "dev"
Requires-Dist: build ; extra == "dev"
Requires-Dist: twine ; extra == "dev"
Requires-Dist: pydoc-markdown ; extra == "dev"
Project-URL: Bug Tracker, https://github.com/bitplane/lsoph/issues
Project-URL: Homepage, https://bitplane.net/dev/python/lsoph
Project-URL: Source Code, https://github.com/bitplane/lsoph
Provides-Extra: dev

# 📁 `lsoph`

TUI that lists open files for a given process.

Usage:

```shell
uvx lsoph -p <pid>
```

* [🎬 demo](https://asciinema.org/a/c7T8id39jU7ap6E0D99S5dJ6F)
* [🏠 home](https://bitplane.net/dev/python/lsoph)
* [🐱 github](https://github.com/bitplane/lsoph)
* [🐍 pypi](https://pypi.org/project/lsoph)

## Why?

Because I wanted this in a tmux panel, and decided to create it as GenAI slop!

I'd heard good things about Gemini 2.5 Pro, and figured it'd only take a couple
of hours. So did it as a coding test.

It descended into madness over the course of a weekend, with input from ChatGPT
and Claude to keep things moving. I do not recommend this; vibe coders, I never
realised how bad you have it!

### Gemini 2.5 Pro

* ☕ Writes more code than a Java consultancy that's paid by LoC.
* 🤡 Defends against every type of exception, even import errors; belt,
  braces and elasticated waist.
* 👖 Its trousers still fall down.
* 🧱 Hard codes special cases and unreachable logic.
* 🔥 Will put verbose debug logging in your hottest loops.
* 🗑 Starts at the complexity ceiling, and manages to climb higher with
  every change.
* ✅ It needs to be BEST CORRECT, with the pig-headed stubbornness of
  `class UnwaveringPigsHead(basemodel)`.
* 🖕 Leaves passive aggressive comments in your code if you abuse it enough,
  and doesn't like to tidy up.
* 🪦 It can't write test cases, or testable code.
* 💣 Carried by an enormous context window and rapid generation speed,
  then the wheels come off.

### GPT 4o and 4.5

* 💩 Can't take the volume of dogshit produced by Gemini (but to be fair who
  can?)
* 💤 Gets lazy because it's got no context window left, or because Sama is
  saving all his GPUs. Probably both.
* 🥱 Attention slips, it forgets where its up to and then hallucinates all
  the details.
* 🤥 Sycophantmaxxer, but still ignores your requests.
* 🎉 Can actually write unit tests.
* 🚬 Has actually stopped being such an aggressively "safety focused" PR
  bellend.
* 😎 A classic case of being down with the kids, a move that's absolute chefs
  kiss.

### Claude 3.7

* 🫗 It has none of the tools that GPT has, none of the mental models that
  Gemini has.
* 🚽 Still pisses all over them from a great height.
* 💇 Decent eye for aesthetics.
* 🪟 Has a better window size than GPT, and can focus attention better too.
* 👉 Mostly does as its told.
* 💩 Still can't write good code.
* 🤓 No banter game whatsoever.

## Summary

In the kingdom of the token generators, the one-eyed Claude is king.

## License

WTFPL with one additional clause:

* ⛔ DON'T BLAME ME


