Convert Figma logo to code with AI

juewuy logoShellCrash

Run sing-box/mihomo as client in shell

11,735
1,773
11,735
6

Top Related Projects

23,920

A Clash Client For OpenWrt

26,092

A simple Python Pydantic model for Honkai: Star Rail parsed data from the Mihomo API.

4,701

Yet Another Clash Dashboard

Quick Overview

ShellCrash is a lightweight and easy-to-use Clash client for OpenWrt, Merlin, and other Linux systems. It provides a web-based interface for managing Clash configurations and proxies, making it accessible for users who prefer a graphical interface over command-line tools.

Pros

  • Simple installation process with a one-click script
  • Web-based interface for easy management of Clash configurations
  • Supports various Linux systems, including OpenWrt and Merlin
  • Regular updates and active community support

Cons

  • Limited documentation, especially for advanced configurations
  • May require some technical knowledge to troubleshoot issues
  • Potential security risks if not properly configured
  • Performance may vary depending on the hardware and network conditions

Getting Started

To install ShellCrash, run the following command in your terminal:

wget -O /tmp/install.sh https://raw.githubusercontent.com/juewuy/ShellCrash/master/install.sh && sh /tmp/install.sh

Follow the on-screen prompts to complete the installation. Once installed, access the web interface by navigating to http://your-device-ip:9999 in your web browser.

To update ShellCrash, run:

clash

And select the update option from the menu.

Competitor Comparisons

23,920

A Clash Client For OpenWrt

Pros of OpenClash

  • More comprehensive feature set, including advanced routing and policy groups
  • Better integration with OpenWrt systems
  • Larger and more active community, leading to frequent updates and improvements

Cons of OpenClash

  • Higher resource consumption, which may impact performance on low-end devices
  • Steeper learning curve due to more complex configuration options
  • Potentially less stable on non-OpenWrt systems

Code Comparison

OpenClash configuration example:

proxy-groups:
  - name: "Auto"
    type: url-test
    proxies:
      - "Server1"
      - "Server2"
    url: 'http://www.gstatic.com/generate_204'
    interval: 300

ShellCrash configuration example:

config_group_name="Auto"
config_group_type="url-test"
config_group_proxies="Server1,Server2"
config_group_url="http://www.gstatic.com/generate_204"
config_group_interval=300

While both projects aim to provide Clash functionality on embedded devices, OpenClash offers a more feature-rich experience at the cost of increased complexity and resource usage. ShellCrash, on the other hand, focuses on simplicity and broader compatibility, making it potentially more suitable for users with limited hardware or those seeking a straightforward setup process.

26,092

A simple Python Pydantic model for Honkai: Star Rail parsed data from the Mihomo API.

Pros of mihomo

  • More active development with frequent updates
  • Broader platform support, including mobile devices
  • Enhanced performance and stability for handling complex network configurations

Cons of mihomo

  • Steeper learning curve for new users
  • Less comprehensive documentation compared to ShellCrash

Code Comparison

ShellCrash:

#!/bin/sh
# ShellCrash configuration script
crash_dir="/etc/shellcrash"
config_file="$crash_dir/config.yaml"

mihomo:

package main

import (
    "github.com/Dreamacro/clash/constant"
    "github.com/Dreamacro/clash/hub/executor"
)

Key Differences

  • ShellCrash is primarily a shell-based implementation, making it easier to deploy on various systems with minimal dependencies
  • mihomo is written in Go, offering better performance and cross-platform compatibility
  • ShellCrash focuses on simplicity and ease of use, while mihomo provides more advanced features and customization options

Use Cases

  • ShellCrash: Ideal for users who prefer a lightweight, script-based solution and have simpler networking needs
  • mihomo: Better suited for power users and those requiring advanced traffic routing capabilities across multiple platforms

Community and Support

Both projects have active communities, but mihomo tends to have more frequent updates and a larger user base, potentially leading to faster issue resolution and feature development.

4,701

Yet Another Clash Dashboard

Pros of yacd

  • Focused on providing a clean, modern web dashboard for Clash
  • Lightweight and easy to integrate into existing Clash setups
  • Actively maintained with frequent updates and bug fixes

Cons of yacd

  • Limited to Clash configuration and monitoring
  • Requires a separate Clash core to function
  • Less comprehensive system-wide network management features

Code comparison

yacd (React component):

const ConnectionItem = ({ connection }) => (
  <div className="connection-item">
    <span>{connection.host}</span>
    <span>{connection.chains.join(' > ')}</span>
    <span>{formatTraffic(connection.upload + connection.download)}</span>
  </div>
);

ShellCrash (Shell script):

start_clash() {
  if [ "$mix_port" -ne 7890 ]; then
    sed -i "s/7890/$mix_port/g" $CFG_PATH
  fi
  $clash_bin -d $clash_dir -f $CFG_PATH >/dev/null 2>&1 &
  clash_pid=$!
}

Summary

yacd is a specialized web dashboard for Clash, offering a modern interface for configuration and monitoring. ShellCrash, on the other hand, is a more comprehensive network management tool that includes Clash functionality along with additional features for system-wide network control. While yacd excels in its focused approach and clean design, ShellCrash provides a broader range of networking capabilities and system integration.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

ShellCrash

A powerful script tool for the convenient deployment and management of mihomo/sing-box kernels in Shell environments.

简体中文 | English


:rocket: Core Features

  • Multi-Kernel Support: Easily manage and switch between mihomo and sing-box kernels directly within the Shell environment.
  • Flexible Configuration Management: Supports online import of subscription links and configuration files to simplify the setup process.
  • Automated Tasks: Configure scheduled tasks for automatic updates of configuration files and rules.
  • Graphical Dashboard: Support for online installation and use of local Web Dashboards to intuitively manage built-in rules and traffic.
  • Multiple Operation Modes: Supports switching between various traffic forwarding modes, including Router mode and Local mode.
  • One-Click Maintenance: Built-in online update functionality to keep the script and features up to date.

:computer: Device Support

ShellCrash is designed to be compatible with the vast majority of network devices based on the Linux kernel:

  • Router Devices: Supports various firmwares based on OpenWrt or its derivatives (e.g., Xiaomi, Netgear etc.).
  • Linux Servers: Supports devices running standard Linux/GNU distributions (e.g., Debian, CentOS, Armbian, Ubuntu, etc.).
  • Third-Party Firmware: Compatible with Padavan (Conservative Mode), Pandora, and ASUS/Merlin firmware.
  • Other Devices: Compatible with other devices based on Linux/GNU or Linux/busybox.
  • Docker:Compatible with Docker environments (e.g., Synology, PVE, etc.).

For additional device support, please submit an Issue or provide feedback in the Telegram Group (please include the device model and the output of the uname -a command).


:hammer_and_wrench: Installation Guide

[!TIP] If you encounter connection failures or SSL-related issues, please try switching to an alternative installation mirror.

Prerequisites

  1. Ensure the device has SSH enabled and Root privileges obtained (Linux systems with a GUI can use the terminal directly).
  2. Connect to the device using an SSH tool (such as PuTTY, JuiceSSH, or the system's built-in terminal).

:penguin: Standard Linux Device Installation

[!IMPORTANT] Please perform the installation as the root user.

Install via wget (jsDelivr CDN source)

export url='https://testingcf.jsdelivr.net/gh/juewuy/ShellCrash@dev' \
  && wget -q --no-check-certificate -O /tmp/install.sh $url/install_en.sh \
  && bash /tmp/install.sh \
  && . /etc/profile &> /dev/null

Or install via curl (Author's private source)

export url='https://gh.jwsc.eu.org/dev' && bash -c "$(curl -kfsSl $url/install_en.sh)" && . /etc/profile &> /dev/null

:satellite: Router Device Installation

Installation via curl:

GitHub Source (Recommended for overseas environments or environments with proxy access)

export url='https://raw.githubusercontent.com/juewuy/ShellCrash/dev' \
  && sh -c "$(curl -kfsSl $url/install_en.sh)" \
  && . /etc/profile &> /dev/null

Or jsDelivr CDN source

export url='https://testingcf.jsdelivr.net/gh/juewuy/ShellCrash@dev' \
  && sh -c "$(curl -kfsSl $url/install_en.sh)" \
  && . /etc/profile &> /dev/null

Or Author's private source

export url='https://gh.jwsc.eu.org/dev' && sh -c "$(curl -kfsSl $url/install_en.sh)" && . /etc/profile &> /dev/null

Installation via wget:

GitHub Source (Recommended for overseas environments or environments with proxy access)

export url='https://raw.githubusercontent.com/juewuy/ShellCrash/dev' \
  && wget -q --no-check-certificate -O /tmp/install.sh $url/install_en.sh \
  && sh /tmp/install.sh \
  && . /etc/profile &> /dev/null

Or jsDelivr CDN source

export url='https://testingcf.jsdelivr.net/gh/juewuy/ShellCrash@dev' \
  && wget -q --no-check-certificate -O /tmp/install.sh $url/install_en.sh \
  && sh /tmp/install.sh \
  && . /etc/profile &> /dev/null

:pager: Installation for Legacy Devices with Older wget Versions

Author's private HTTP beta source

export url='http://t.jwsc.eu.org' \
  && wget -q -O /tmp/install.sh $url/install_en.sh \
  && sh /tmp/install.sh \
  && . /etc/profile &> /dev/null

:cloud: Virtual Machines

  • Alpine Linux VM: It is highly recommended to use an Alpine image for optimal compatibility.
# Install necessary dependencies
apk add --no-cache wget openrc ca-certificates tzdata nftables iproute2 dcron
# Execute installation command
export url='https://testingcf.jsdelivr.net/gh/juewuy/ShellCrash@dev' \
  && wget -q --no-check-certificate -O /tmp/install.sh $url/install_en.sh \
  && sh /tmp/install.sh \
  && . /etc/profile &> /dev/null

:whale: Docker

Please visit the official Docker image:

:package: Local Installation

If online installation is not possible, please follow the guide for local installation:


:book: Usage Instructions

After installation, enter the following commands in the terminal to launch the management interface:

crash        # Launch the interactive script menu
crash -h     # View the list of command help

Running Dependencies

ComponentNecessityDescription
curl / wgetMandatoryRequired for node saving, online installation, and update operations.
iptables / nftablesCriticalWithout these, the script can only run in Pure Mode.
crontabLowRequired for scheduled tasks; otherwise, they will not function.
net-toolsVery LowUsed for automatic port occupancy detection.
ubus / iproute-docVery LowUsed for automatically obtaining the local Host address.

:link: Related Links

:scroll: License

This project is licensed under the GNU General Public License v3.0.