Skip to main content

A simple Python directory lister with optional tree view

Project description

shea

License: MIT Python 3.9+ Code style: Ruff

Shea (short for "shell apps") is a collection of modern Python-based shell utilities with colorful emoji icons. Currently includes:

  • pyls - Directory listing with tree view (ls/tree replacement)
  • pytop - Process viewer sorted by CPU/memory usage (top/htop alternative)
  • pydisk - Disk usage viewer with interactive directory explorer (df/ncdu alternative)

Installation

You can install with pip (PEP 517 using Flit under the hood):

pip install .

Or directly with Flit:

python -m pip install flit
flit install

Usage

Directory Listing (pyls)

List current directory (folders first, then files):

shea

Tree view:

shea -t

Specify a path and a maximum depth:

shea --tree --depth 2 ~/projects

Process Viewer (pytop)

Launch the interactive process monitor:

pytop

Features:

  • ๐Ÿ”ฅ Real-time CPU usage per core with visual bars
  • ๐Ÿ’พ Memory and swap usage with color-coded horizontal charts
  • โš™๏ธ System information (uptime, process count)
  • ๐Ÿ“Š Process table showing top 50 processes by CPU usage
  • ๐Ÿ”„ Click column headers to sort (CPU/MEM/TIME always descending, others toggle)
  • Interactive TUI interface with live updates

Controls:

  • q - Quit
  • r - Force refresh
  • Arrow keys - Navigate process list
  • Click column headers - Sort by that column

Disk Usage Viewer (pydisk)

Show all disk partitions with usage information:

pydisk

Launch interactive directory explorer for a specific path:

pydisk /
pydisk /home
pydisk ~/projects

Features:

  • ๐Ÿ’พ Disk usage table showing all partitions with visual bars
  • ๐Ÿ“Š Color-coded usage percentages (green/cyan/yellow/red)
  • ๐Ÿ” Interactive TUI to explore directory sizes
  • ๐Ÿ“ Navigate directories to see which files/folders use the most space
  • โšก Recursively calculates folder sizes

Interactive mode controls:

  • q - Quit
  • r - Refresh current directory
  • u or Esc - Go up one directory level
  • Click/Enter on a row - Enter directory or show file info
  • Arrow keys - Navigate file/folder list

Output examples

Listing:

$ pyls
๐Ÿ“ dist
๐Ÿ“ shea
๐Ÿ“ tests
๐Ÿ“„ pyproject.toml
๐Ÿ“„ README.md

Tree view:

$ pyls -t
.
โ”œโ”€โ”€ ๐Ÿ“ dist
โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ pyl-0.1.0-py3-none-any.whl
โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ pyl-0.1.0.tar.gz
โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ qwe-0.1.0-py3-none-any.whl
โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ qwe-0.1.0.tar.gz
โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ shea-0.1.0-py3-none-any.whl
โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ shea-0.1.0.tar.gz
โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ shea-0.1.1-py3-none-any.whl
โ”‚   โ””โ”€โ”€ ๐Ÿ“„ shea-0.1.1.tar.gz
โ”œโ”€โ”€ ๐Ÿ“ shea
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ __pycache__
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ __init__.cpython-310.pyc
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ __main__.cpython-310.pyc
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ _version.cpython-310.pyc
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ main.cpython-310.pyc
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ pyls.cpython-310.pyc
โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ __init__.py
โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ __main__.py
โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ _version.py
โ”‚   โ””โ”€โ”€ ๐Ÿ“„ pyls.py
โ”œโ”€โ”€ ๐Ÿ“ tests
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ __pycache__
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ test_basic.cpython-310-pytest-8.3.2.pyc
โ”‚   โ””โ”€โ”€ ๐Ÿ“„ test_basic.py
โ”œโ”€โ”€ ๐Ÿ“„ pyproject.toml
โ””โ”€โ”€ ๐Ÿ“„ README.md

License

MIT

Development

This project uses pre-commit with Ruff for linting and formatting.

To set up pre-commit hooks:

python -m pip install pre-commit
pre-commit install

Run on all files once:

pre-commit run -a

Ruff lint will auto-fix simple issues on commit; if it makes changes, the commit will fail so you can review and re-commit.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shea-0.3.0.tar.gz (14.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

shea-0.3.0-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file shea-0.3.0.tar.gz.

File metadata

  • Download URL: shea-0.3.0.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.32.3

File hashes

Hashes for shea-0.3.0.tar.gz
Algorithm Hash digest
SHA256 30cacfdf5005278532691c0741e21dbd99985021e1bd282649595ef67d116bb4
MD5 ae75c6b4b9a5f98decf44420d3c80897
BLAKE2b-256 0a5e67da9484e850cedf9aec85e5d00a13916d6b4f225e00851370a66a0ea9cc

See more details on using hashes here.

File details

Details for the file shea-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: shea-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 13.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.32.3

File hashes

Hashes for shea-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cefb261ecb21096a4593972a8c9aebd6affe79a86824ae48dbb1eadfef6c7887
MD5 ebfbb9c2b2cdfc8bc9a570dc04ff2136
BLAKE2b-256 922bc06b1d67e3eea71e22ec01d4d2a31b919b566cfdec0cd1bf6d0d85bf3bf8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page