clash-nyanpasu Documentation

Clash Nyanpasu~(βˆ γƒ»Ο‰< )βŒ’β˜†β€‹

13,132 stars TypeScript TypeScript 1 file Β· ~1,316 tokens #clash#clash-meta#clash-nyanpasu#clash-rs#material-you#mihomo#react#rust
RAW Doc

File: README.md

Clash Nyanpasu

A [Clash](https://github.com/Dreamacro/clash) GUI based on [Tauri](https://github.com/tauri-apps/tauri).







Features

  • Built-in support Clash Premium, Mihomo, Clash Rust & Meow.
  • Profiles management and enhancement (by YAML, JavaScript & Lua). Doc
  • Provider management support.
  • Google Material You Design UI and animation support.

Preview

Development

Configure your development environment

You should install Rust and Node.js, see here for more details.

Clash Nyanpasu uses the pnpm package manager. See here for installation instructions. Then, install Node.js packages.

shell
pnpm i

Download the Clash binary & other dependencies

shell
# force update to latest version
# pnpm prepare:check --force

pnpm prepare:check

Run dev

shell
pnpm dev

# run it in another way if app instance exists
pnpm dev:diff

Build application

shell
pnpm build

Contributions

Issue and PR welcome!

Acknowledgement

Clash Nyanpasu was based on or inspired by these projects and so on:

Contributors

License

GPL-3.0 License. See License here for details.


This plugin will be migrated to https://github.com/tauri-apps/plugins-workspace/. 0.1.2 will be the last release in this repo.

Temporary solution until https://github.com/tauri-apps/tauri/issues/323 lands.

Depending on your use case, for example a Login with Google button, you may want to take a look at https://github.com/FabianLars/tauri-plugin-oauth instead. It uses a minimalistic localhost server for the OAuth process instead of custom uri schemes because some oauth providers, like the aforementioned Google, require this setup. Personally, I think it's easier to use too.

Check out the example/ directory for a minimal example. You must copy it into an actual tauri app first!

macOS

In case you're one of the very few people that didn't know this already: macOS hates developers! Not only is that why the macOS implementation took me so long, it also means you have to be a bit more careful if your app targets macOS:

  • Read through the methods' platform-specific notes.
  • On macOS you need to register the schemes in a Info.plist file at build time, the plugin can't change the schemes at runtime.
  • macOS apps are in single-instance by default so this plugin will not manually shut down secondary instances in release mode.
    • To make development via tauri dev a little bit more pleasant, the plugin will work similar-ish to Linux and Windows in debug mode but you will see secondary instances show on the screen for a split second and the event will trigger twice in the primary instance (one of these events will be an empty string). You still have to install a .app bundle you got from tauri build --debug for this to work!