Skip to main content

Safe, Mole-inspired maintenance for Linux + Docker.

Project description

LinuxMole

Safe maintenance for Linux + Docker, inspired by Mole for macOS, a wonderful project.

Stars Version License Python Last commit pipx

Overview

LinuxMole is a Mole-inspired CLI for Linux servers with Docker. It focuses on safe, transparent maintenance with previews, structured output, and explicit confirmation.

Project Status

Note: LinuxMole is under active development. Core functionality is complete and tested, with additional features being implemented.

Aspect Status
Version 1.0.7
Tests 120 passing (100%)
Coverage 14.98%
Architecture Modular (28 modules)
CI/CD ✅ GitHub Actions (Python 3.8-3.12)
Completion 9/11 tasks (81.8%)

Implemented Features ✅

  • ✅ Complete system and Docker status monitoring
  • ✅ Safe cleanup operations (system + Docker)
  • ✅ Disk usage analyzer with interactive TUI
  • ✅ Application uninstaller (apt/snap/flatpak)
  • ✅ Whitelist management and config file support
  • ✅ Automated testing and CI/CD pipeline
  • ✅ Python 3.8-3.12 compatibility
  • ✅ Logging and error handling
  • ✅ Modular architecture

In Progress 🚧

  • TUI launcher integration (low priority)

Coming Soon 🔜

  • Comprehensive documentation (commands, configuration, examples)
  • Additional test coverage
  • Performance optimizations

Features

  • Mole-like console UX with structured sections and previews
  • Safe-by-default cleanup with explicit confirmation
  • Docker-aware maintenance (images, networks, volumes, logs)
  • System maintenance (journald, tmpfiles, apt, caches)
  • Whitelist support and detailed preview logs

Screenshots

System status Kernel

Help Output

 _      _                     __  __       _
| |    (_)                   |  \/  |     | |
| |     _ _ __  _   ___  __  | \  / | ___ | | ___
| |    | | '_ \| | | \ \/ /  | |\/| |/ _ \| |/ _ \
| |____| | | | | |_| |>  <   | |  | | (_) | |  __/
|______|_|_| |_|\__,_/_/\_\  |_|  |_|\___/|_|\___|

https://github.com/4ndymcfly/linux-mole

Safe maintenance for Linux + Docker.


COMMANDS
lm                      Main menu
lm status               Full status (system + docker)
lm status system        System status only
lm status docker        Docker status only
lm clean                Full cleanup (system + docker)
lm clean system         System cleanup only
lm clean docker         Docker cleanup only
lm analyze              Analyze disk usage
lm purge                Clean project build artifacts
lm installer            Find and remove installer files
lm whitelist            Show whitelist config
lm uninstall            Remove LinuxMole from this system
lm --version            Show version
lm update               Update LinuxMole (pipx)


OPTIONS (clean only)
--dry-run               Preview only, no actions executed
--yes                   Assume 'yes' for confirmations
-h, --help              Show help


EXAMPLES
  lm status
  lm status --paths
  lm status docker --top-logs 50
  lm clean --containers --networks --images dangling --dry-run
  lm clean docker --images unused --yes
  lm clean docker --truncate-logs-mb 500 --dry-run
  lm clean system --journal --tmpfiles --apt --dry-run
  lm clean system --logs --logs-days 14 --dry-run
  lm clean system --kernels --kernels-keep 2 --dry-run
  lm analyze --path /var --top 15
  lm purge
  lm installer
  lm whitelist
  lm --version
  lm update

Installation

Recommended (pipx)

  1. Install pipx:
sudo apt update && sudo apt install -y pipx
pipx ensurepath
  1. Install LinuxMole:
pipx install linuxmole

Development install (latest main):

pipx install "git+https://github.com/4ndymcfly/linux-mole.git"
  1. Run:
lm status

Legacy (optional)

sudo ./install-linuxmole.sh

Commands

  • lm status Full status (system + docker)
  • lm status system System status only
  • lm status docker Docker status only
  • lm clean Full cleanup (system + docker)
  • lm clean system System cleanup only
  • lm clean docker Docker cleanup only
  • lm analyze Analyze disk usage
  • lm purge Clean project build artifacts
  • lm installer Find and remove installer files
  • lm whitelist Show whitelist config
  • lm uninstall Remove LinuxMole from this system
  • lm --version Show version
  • lm update Update LinuxMole (pipx)

Clean Examples

lm clean --containers --networks --images dangling --dry-run
lm clean system --journal --tmpfiles --apt --dry-run
lm clean system --logs --logs-days 14 --dry-run
lm clean system --pip-cache --npm-cache --cargo-cache --go-cache --dry-run
lm clean system --snap --flatpak --logrotate --dry-run
lm clean system --kernels --kernels-keep 2 --dry-run

Analyze / Purge / Installer

lm analyze --path /var --top 15
lm purge
lm installer

Whitelist / Config

  • Whitelist file: ~/.config/linuxmole/whitelist.txt
  • Purge paths file: ~/.config/linuxmole/purge_paths
  • Edit whitelist: lm whitelist --edit

Contributing

See CONTRIBUTING.md for guidelines.

Release

See PUBLISHING.md for the PyPI/pipx release workflow.

  1. Update version in pyproject.toml and lm.py
  2. Tag and push: git tag vX.Y.Z && git push --tags
  3. Users upgrade: pipx upgrade linuxmole

Acknowledgements

Thanks to the original Mole project for inspiration: https://github.com/tw93/mole

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

linuxmole-1.0.7.tar.gz (54.2 kB view details)

Uploaded Source

Built Distribution

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

linuxmole-1.0.7-py3-none-any.whl (54.6 kB view details)

Uploaded Python 3

File details

Details for the file linuxmole-1.0.7.tar.gz.

File metadata

  • Download URL: linuxmole-1.0.7.tar.gz
  • Upload date:
  • Size: 54.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for linuxmole-1.0.7.tar.gz
Algorithm Hash digest
SHA256 18df958d22f3c1faf64abce0277b86bd20b2fd0f443da8928dacc191553cc48b
MD5 c8849645e65ed62e4235a370d5cfdbe5
BLAKE2b-256 74dbb5f30afbbc38915ee33178cc246ab1f7b50f3d635e2ba307911a1cc8314f

See more details on using hashes here.

File details

Details for the file linuxmole-1.0.7-py3-none-any.whl.

File metadata

  • Download URL: linuxmole-1.0.7-py3-none-any.whl
  • Upload date:
  • Size: 54.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for linuxmole-1.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 2932c9278bf6cde9dfbfd95b27732aee5abc0456b31c48ca71691ad76174f03d
MD5 6dede1fd8d0c9c88a7b353ae2bbf7ace
BLAKE2b-256 b3b5fc48d61dfa9ce65181502f117cd5efb1fa80655ed65c4e5f68fc1f322ff9

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