Skip to content

Terminal mission control TUI to launch apps, monitor processes, manage bookmarks, clipboard history, configs, Docker, Git, network, SSH, scripts, services, notifications, scratchpad notes, an embedded shell, and a calculator. Fast, keyboard-driven, cross-platform. Built in Rust with ratatui.

License

Notifications You must be signed in to change notification settings

Cod-e-Codes/launchr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

launchr

A fast terminal dashboard to launch, monitor, and manage apps, bookmarks, clipboard history, configuration files, Docker containers, Git repositories, network connections, SSH hosts, scripts, notifications, shell history, quick notes (scratchpad), an embedded shell terminal, and a calculator. Built in Rust with ratatui.

launchr demo

Build

  • Prerequisites: Rust stable, Cargo
  • Build: cargo build --release
  • Run (dev): cargo run

Tested on Linux/macOS/Windows. On Windows, run in a true terminal (Windows Terminal/PowerShell).

Keybindings

  • Global: q quit, Tab/Shift+Tab next/previous section, j/k or ↓/↑ navigate, Enter activate
  • Lists: n new, d delete, r refresh, t toggle details, PgUp/PgDn Home/End
  • Search: / open fuzzy search (scoped to current section), type to filter, Enter jump, Esc close
  • Help: ? toggle help overlay
  • Apps: Enter launch, s stop process (also from Dashboard)
  • Clipboard: Enter copy to clipboard, p pin/unpin entry
  • Configs: Enter open in editor, b backup, v view (scrollable with syntax highlighting), c copy, o open in editor, f search
  • Docker: Enter exec into container, v switch view (containers/images), a toggle show all
  • Network: v switch view (connections/interfaces/ports), f filter connections by state
  • SSH: x disconnect latest session (terminates the ssh process)
  • Scripts: S schedule selected script (example every 60s)
  • Git: Enter open in editor, S scan for repositories
  • Scratchpad: n new note, c copy to clipboard, e export to path, R rename, f search notes, t toggle preview
  • Shell: i input command, h search history, C clear history
  • Services: s start, S stop, r restart, E enable, D disable, l logs, u toggle user/system, f filter, t details
  • Calculator: ` toggle typing mode, ←→↑↓ navigate buttons, Enter/Space press button, m toggle basic/scientific mode, h history view, r recall from history, 0-9 digits, +/-/*//^% operators, () parentheses, c/C clear/clear all, y copy result

Sections: 1 Dashboard, 2 Apps, 3 Bookmarks, 4 Clipboard, \ Configs, 5 Docker, 6 Network, 7 SSH, 8 Scripts, 9 Git, 0 History, - Scratchpad, = Shell, ] Services, ` Calculator, [ Notifications

Features

  • Dashboard: running processes (scrollable), active SSH sessions, recent notifications
  • Apps: auto-scan PATH for executables (on Windows, filters to .exe/.bat/.cmd/.ps1); show running processes via sysinfo
  • Bookmarks: open files/dirs/URLs with platform-native open
  • Clipboard: track clipboard history with timestamps, pin important entries, copy back to clipboard
  • Configs: manage configuration files with backup, preview, copy, and search functionality
  • Docker: view and manage containers and images; exec into running containers; toggle between running and all containers
  • Git: scan directories for repositories; view status, branch, uncommitted changes, ahead/behind commits; open repositories in editor
  • Network: monitor active connections with state filtering; view network interfaces with IP/MAC addresses; list listening ports with process info
  • SSH: connect via system SSH (uses -p <port>); auto-detects active sessions by scanning running ssh processes; disconnect (x) ends the underlying process
  • Scripts: run commands; simple scheduling (example)
  • History: browse and run recent shell commands
  • Scratchpad: quick note-taking with auto-detection of your preferred editor (VSCode, Sublime, Notepad++, vim, etc.); search, rename, export, copy notes to clipboard
  • Shell: embedded minimal shell terminal with built-in commands (cd, pwd, history, etc.) and external command execution through your system shell
  • Services: manage system services (systemd/launchd/Windows Services); start/stop/restart, enable/disable, view logs, filter by state
  • Calculator: visual calculator with button navigation, basic and scientific modes, expression evaluation, calculation history, and result copying
  • Notifications: system-level notifications for actions
  • Context-aware fuzzy search / per section
  • Dynamic header: username, time, arch, detected shell, CPU cores and average usage

Shell detection & history

  • Detects shell: PowerShell (Windows), Bash, Zsh, or Fish
  • Loads recent history from:
    • PowerShell: %APPDATA%/Microsoft/Windows/PowerShell/PSReadLine/ConsoleHost_history.txt
    • Bash: ~/.bash_history
    • Zsh: ~/.zsh_history
    • Fish: ~/.local/share/fish/fish_history (or %APPDATA%/fish/fish_history on Windows)
  • Header shows the detected shell

Configuration

Location:

  • Linux: ~/.config/launchr/config.toml
  • macOS: ~/Library/Application Support/launchr/config.toml
  • Windows: %APPDATA%/launchr/config.toml

On first run, a default file is created. Example (TOML):

# Bookmarks
[[bookmarks]]
name = "Home"
path = "~"
bookmark_type = "directory"

[[bookmarks]]
name = "Rust"
path = "https://www.rust-lang.org"
bookmark_type = "url"

# SSH Hosts
[[ssh_hosts]]
name = "Prod"
host = "prod.example.com"
port = 22
user = "ubuntu"

# Scripts
[[scripts]]
name = "List"
command = "ls -la"
description = "List current dir"

# Git repo search paths
git_search_paths = [
  "~/Projects",
  "~/Documents/GitHub",
  "~/code",
]

# Scratchpad
[scratchpad]
editor = "nvim"            # optional
# directory = "/path/to/notes"  # optional

# Config files managed by Configs section
[[configs]]
name = "Bash Config"
path = "/home/you/.bashrc"
category = "Shell"
description = "Bash shell configuration"
editor = "nvim"            # optional per-entry

An example file is available at examples/config.example.toml.

Add entries in-app:

  • Bookmarks: n then name|path|type
  • Configs: n then name|path|category|description|editor
  • SSH: n then name|user@host:port
  • Scripts: n then name|command|description

Module Details

Clipboard Module

  • Stores clipboard content with metadata (type, timestamp)
  • Pin frequently used entries to keep them persistent
  • Supports text, command, and URL types
  • Windows: uses clip command for clipboard operations

Configs Module

  • Track and manage configuration files with categories and descriptions
  • Open configs in editor in new terminal window (respects $EDITOR or custom per-config editor)
  • Create timestamped backups of config files
  • Preview config contents with syntax highlighting (scrollable with ↑↓, Esc to exit)
  • Directory preview: shows directory contents with file sizes, prioritizes common config files
  • Syntax highlighting for JSON, YAML, TOML, INI, bash, SSH, Git, Docker, and more
  • Copy config contents to clipboard (directory info for directories)
  • Search configs by name, path, category, or description
  • Auto-detects common configs on first run (bash, zsh, git, ssh, vim)
  • Shows file size and last modified time

Docker Module

  • Lists containers with status, image, and port information
  • Lists Docker images with repository, tag, and size
  • Exec into containers (opens new terminal window)
  • Toggle between running containers and all containers
  • Requires Docker CLI installed

Git Module

  • Scans configurable search paths for Git repositories (default: ~/Projects, ~/Documents/GitHub, etc.)
  • Displays repository status: clean, modified, ahead, behind
  • Shows current branch, uncommitted changes count, and last commit message
  • Opens repository in available editor (nvim, nano, code etc.)
  • Requires Git CLI installed

Network Module

  • Connections view: active network connections with protocol, addresses, state, and process info
  • Interfaces view: network adapters with IP addresses, MAC addresses, and status
  • Ports view: listening ports with process names and PIDs
  • Filter connections by state (ESTABLISHED, LISTEN, etc.)
  • Uses platform-specific commands: ss/netstat (Linux), netstat (macOS), netstat/ipconfig (Windows)

Scratchpad Module

  • Quick note-taking with automatic editor detection (checks for VSCode, Sublime Text, Notepad++, vim, etc.)
  • Opens editors in a new window/terminal - launchr remains responsive and non-blocking
  • Auto-generates timestamped filenames or use custom names
  • Search notes by filename or content
  • Copy note contents to clipboard
  • Export notes to custom paths
  • Rename notes in-place
  • Preview pane with toggle (t)
  • Respects EDITOR environment variable or configured editor in config.toml
  • Default storage: ~/.launchr/scratchpad/ (configurable)

Shell Module

  • Embedded terminal with command execution
  • Built-in commands: cd, pwd, clear, exit, export, history
  • External command execution through system shell (PowerShell on Windows, bash/zsh on Unix)
  • Command history with exit status indicators (✓/✗)
  • Working directory tracking, history search, clear history
  • Shows current prompt with user@hostname:dir format

Services Module

  • Cross-platform: systemd (Linux), launchd (macOS), Windows Services
  • Start, stop, restart, enable, disable services
  • View service logs (systemd only)
  • Filter by state (running/stopped/failed) or toggle user/system scope
  • Displays state, PID, memory usage, enabled status, description, uptime
  • Search services by name or description

Calculator Module

  • Visual calculator interface with button navigation using arrow keys
  • Basic arithmetic: addition, subtraction, multiplication, division, exponentiation, modulo
  • Scientific functions: sin, cos, tan, sqrt, log, ln, exp, abs, reciprocal, square
  • Expression parsing with proper order of operations and parentheses support
  • Calculation history with timestamps and recall functionality
  • Real-time expression evaluation as you type
  • Copy results to clipboard
  • Toggle between Basic and Scientific modes with automatic scrolling for large layouts
  • Typing mode for direct expression input with visual button navigation
  • History view with dedicated panel toggle

Notes

  • Uses sysinfo for processes, which for PATH resolution, and crossterm/ratatui for TUI.
  • Some actions spawn external programs; ensure they exist in PATH (e.g., ssh, docker, git).
  • Network monitoring requires appropriate permissions to view process information on some systems.

License

MIT. See the LICENSE file in the repository.

About

Terminal mission control TUI to launch apps, monitor processes, manage bookmarks, clipboard history, configs, Docker, Git, network, SSH, scripts, services, notifications, scratchpad notes, an embedded shell, and a calculator. Fast, keyboard-driven, cross-platform. Built in Rust with ratatui.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Languages