Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Mho
A Rust-based proxy core management tool supporting Clash/Mihomo/SingBox and other proxy cores. This is a Rust port of ShellCrash.
Features
- 🚀 Cross-platform support (Linux, macOS, Windows, Android)
- 📦 Automatic download and installation of proxy cores
- 🔄 Automatic configuration and GeoIP database updates
- 🌐 Multiple Web UI support (Metacubexd, Yacd)
- ⏰ Scheduled task support (automatic config and database updates)
- 🔧 Flexible configuration management
- 🪞 Multiple GitHub mirror support for accelerated downloads
Desktop Client
A cross-platform desktop GUI client built with Tauri: mho-tauri
Installation
Quick Install
Install with a single command using the installation script:
Using Proxy for Faster Downloads
If GitHub access is slow, use a mirror:
# Using gh-proxy mirror
|
|
# Using xget mirror
# Using jsdelivr CDN
mho-assets
https://github.com/ahaoboy/mho-assets
|
|
|
|
asusrouter
|
Custom Installation Directory
Build from Source
# Clone the repository
# Build
# Install
Usage
Initialize and Install
# Install all components (core, ui, geo, task)
# Force reinstallation of all
# Install specific components
# Force install specific component
Service Control
# Start proxy service
# Stop proxy service
# Check service status
Configuration Management (config subcommand)
All configuration options are now unified under the config subcommand:
# View all configuration as JSON
# Configuration URL
# GitHub download proxy
# Web UI type
# Web controller host
# Web controller secret
# Target platform
# Other common targets
# Maximum runtime (hours, 0 = disabled)
Scheduled Tasks
# Install scheduled tasks (via install subcommand)
# Manually run scheduled task
# Remove scheduled tasks
Self-Upgrade
Shell Completions
Generate shell completion scripts for auto-completion:
# Bash - Add to your shell profile
# Or source directly
# Fish - Install to fish completions directory
# Zsh
# PowerShell
# Elvish
ei
Configuration File
Configuration is stored next to the mho executable, in a portable
mho_config/ subdirectory:
<mho_dir>/mho_config/mho_config.json
Where <mho_dir> is the directory containing the mho binary (the
parent of mho / mho.exe). This makes an installation self-contained
and portable.
Example configuration:
Supported Platforms
- Linux (x86_64, aarch64, armv7, i686) - musl/gnu
- macOS (x86_64, aarch64/Apple Silicon)
- Windows (x86_64, i686, aarch64)
- Android (aarch64, armv7, x86_64, i686)
Scheduled Tasks
After installing scheduled tasks, the system will automatically:
- Every Wednesday at 3:00 AM: Update configuration files and GeoIP databases
- Every 10 minutes: Check and start proxy service (if not running)
Linux/macOS (crontab)
0 3 * * 3 ~/.mho/mho run-task
*/10 * * * * ~/.mho/mho start
Windows (Task Scheduler)
MhoRunTask: Runs every Wednesday at 03:00MhoStart: Runs every 10 minutes
Logging
Log files are written next to the mho executable, in:
<mho_dir>/mho_config/logs/mho.log(current)<mho_dir>/mho_config/logs/mho.log.1…mho.log.5(rotated backups)
When mho.log reaches 1 MB it is rotated: mho.log → mho.log.1 →
… → mho.log.5 (the oldest is dropped). At most 6 files (~6 MB) are
kept, so log storage is bounded — important on flash-constrained devices
like routers. Timestamps are RFC 3339 UTC.
Development
Building
# Development build
# Release build
# Run tests
License
MIT License - see LICENSE file for details
Acknowledgments
- ShellCrash - Original project
- Clash - Proxy core
- Mihomo - Clash fork
- SingBox - Universal proxy platform
Contributing
Issues and Pull Requests are welcome!