Skip to content

Abdenasser/neohtop

Repository files navigation

NeoHtop Logo

NeoHtop

A modern, cross-platform system monitor built on top of Svelte, Rust, and Tauri.

License GitHub stars GitHub issues GitHub release Notarized by Apple

NeoHtop Screenshot

Table of Contents

Why NeoHtop?

Read about the back story and motivation behind NeoHtop

Features

  • πŸš€ Real-time process monitoring
  • πŸ’» CPU and Memory usage tracking
  • 🎨 Beautiful, modern UI with dark/light themes
  • πŸ” Advanced process search and filtering
  • πŸ“Œ Pin important processes
  • πŸ›  Process management (kill processes)
  • 🎯 Sort by any column
  • πŸ”„ Auto-refresh system stats

Search Functionality

Search for processes by name, command, or PID. Use commas to search for multiple terms simultaneously. Regular expressions are supported for advanced filtering.

Examples:

  • arm, x86: Returns processes with "arm" or "x86" in the name or command
  • d$: Lists daemons (processes ending with 'd')
  • ^(\w+\.)+\w+$: Shows processes with reverse domain name notation (e.g., com.docker.vmnetd)

Tech Stack

  • Frontend: SvelteKit, TypeScript
  • Backend: Rust, Tauri
  • Styling: CSS Variables for theming
  • Icons: FontAwesome

Getting Started

Prerequisites

  • Node.js (v16 or later)
  • Rust (latest stable)
  • Xcode Command Line Tools (for macOS)

Installation

Download the latest release from the releases page.

Running with Sudo

Some processes require monitoring with sudo privileges. To monitor these processes, launch NeoHtop with sudo:

  • macOS: sudo /Applications/NeoHtop.app/Contents/MacOS/NeoHtop
  • Linux: pkexec /path/to/neohtop (recommended)

Development

Setup

# Install dependencies
npm install

# Run in development mode
npm run tauri dev

# Build for production
npm run tauri build

Code Formatting

We use Prettier for web code and cargo fmt for Rust code.

# Format all files
npm run format

# Check formatting without making changes
npm run format:check

Pull Requests

Before submitting a PR, ensure:

  1. All code is formatted (npm run format)
  2. The format check passes (npm run format:check)
  3. Your commits follow the project's commit message conventions

Contributing

We welcome contributions! Please see our contributing guidelines for more information.

Support

If you find this project helpful, consider buying me a coffee:

Buy Me A Coffee

License

This project is licensed under the MIT License - see the LICENSE file for details.