Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,5 @@ __pycache__/
*.egg-info/
dist/
build/
dist/
CLAUDE.md
13 changes: 9 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# ktop

![ktop screenshot](screenshot.png?v=2)
![ktop screenshot](static/screenshot.png?v=2)

A terminal-based system resource monitor built for tracking resource usage when running hybrid LLM workloads.

Expand All @@ -20,12 +20,17 @@ A terminal-based system resource monitor built for tracking resource usage when
## Install

```bash
git clone https://github.com/brontoguana/ktop.git && cd ktop && ./setup.sh
# Install with uv (recommended)
uv tool install --from=git+https://github.com/brontoguana/ktop ktop
```

That's it — clones the repo, installs dependencies into a venv, adds `ktop` to `~/.local/bin`, and launches it.
Or run directly without (separately) installing:

For a system-wide install: `sudo ./setup.sh --system`
```bash
uvx --from=git+https://github.com/brontoguana/ktop ktop
```

**Note:** `uvx` is included with [`uv`](https://astral.sh/uv). See the uv documentation for installation instructions.

## Usage

Expand Down
36 changes: 36 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "ktop"
version = "0.1.0"
description = "Terminal system resource monitor for hybrid LLM workloads"
authors = [{name = "brontoguana", email = "brontoguana@users.noreply.github.com"}]
readme = "README.md"
requires-python = ">=3.8"
license = {text = "MIT"}
keywords = ["monitor", "system", "gpu", "cpu", "memory", "terminal"]
classifiers = [
"Environment :: Console",
"Intended Audience :: Developers",
"Intended Audience :: System Administrators",
"License :: OSI Approved :: MIT License",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python :: 3",
"Topic :: System :: Monitoring",
"Topic :: Utilities",
]
dependencies = [
"psutil>=5.9",
"rich>=13.0",
"pynvml>=11.5",
]

packages = [
{ from="src", name="ktop" },
]

[project.scripts]
ktop = "ktop:main"

3 changes: 0 additions & 3 deletions requirements.txt

This file was deleted.

4 changes: 1 addition & 3 deletions ktop.py → src/ktop/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
#!/usr/bin/env python3
"""ktop - Terminal system resource monitor for hybrid LLM workloads."""
from __future__ import annotations

import argparse
Expand Down Expand Up @@ -771,4 +769,4 @@ def main():


if __name__ == "__main__":
main()
sys.exit(main())
File renamed without changes