Skip to content
AstraFoundryPublic

About

A calm, native macOS client for the Mihomo proxy core, built with SwiftUI and a shared agent-friendly CLI.

Topics

Resources

Stars

295 stars

Watchers

0 watching

Forks

Repository files navigation

Kumo app banner

Kumo

A calm desktop client for the Mihomo proxy core.

Go + MyGo app · React UI · Agent-friendly CLI

Go macOS 13+ Powered by Mihomo Status: active development

Features · Quick Start · Usage · Architecture · Docs · Roadmap


Overview

Kumo connects you through Mihomo without turning proxy management into a network operations dashboard. The first screen answers four questions: is Kumo connected, which mode is active, is the system proxy on, and which profile and nodes are in use. DNS, TUN, rules, logs, overrides and the routing topology stay one click away.

Features

Area What Kumo provides
Desktop app One Go binary built with MyGo: a native window with a React + coss ui frontend, a menu bar item and notifications.
Topology A React Flow canvas of entry → rules → groups → nodes, with selected paths, dynamic members, broken references and a text inspector.
Leaves no trace Quitting, or a crash caught by the guardian process, stops the core and clears the system proxy — only if Kumo still owns it.
Plays well with others Another app taking over the system proxy is shown, not fought; a port held by another program is named, with a free port offered.
CLI for humans and agents The same executable as kumo: stable commands, --json, dry-run, predictable exit codes.
Agent guidance Each page copies a ready prompt for a coding agent; the Kumo skill installs for Claude Code, Codex, Cursor, Gemini CLI and .agents.
First run A guided setup with an animated preview of each step.

Quick Start

Download the disk image from Releases, open Kumo and follow Setup. It finds a Mihomo you have, or downloads one.

From source

Requires Go 1.27+, Bun and, on Linux, WebKitGTK.

bun install
make dev          # live reload
make build        # package into build/
make check        # generate, go vet/test, typecheck, FSD and message checks

Usage

Group Pages
Daily Overview, Profiles, Proxies, Topology
Inspect Connections, Logs, Rules
Configure Core, System Proxy, DNS, TUN, Sniffer, Resources, Overrides
Kumo Agents, Settings, About
kumo status --json
kumo start
kumo proxies --json
kumo select Proxy "Tokyo 01"
kumo sysproxy on
kumo topology --issues
kumo prompt proxies           # a ready-made prompt for a coding agent
kumo -l                       # every command

Architecture

internal/domain          rules: runtime, system proxy ownership, profiles, overrides, config, topology
internal/application     use cases shared by the app, the CLI and the guardian
internal/infrastructure  storage, Mihomo client/launcher, system proxy, ports, processes
internal/interfaces      cli (kumo) and desktop (MyGo bindings, window, tray, quit path)
src/                     React frontend in Feature-Sliced Design: app, pages, widgets, features, entities, shared

The backend follows Domain-Driven Design; the frontend follows Feature-Sliced Design. See docs/README.md.

Documentation

Contributing

  1. Read AGENTS.md and the document under docs/ for your change.
  2. Keep business rules in internal/domain and internal/application; surfaces only call services.
  3. Run make check; for lifecycle changes also make e2e MIHOMO=<path>.
  4. Update docs/ in the same change when behavior, architecture, persistence, permissions or tests change.

License

Kumo is licensed under the GNU Affero General Public License v3.0 only (AGPL-3.0-only). See LICENSE for the full text.

Third-party components bundled or used by Kumo may be licensed under different terms. See THIRD_PARTY_NOTICES.md.

Acknowledgements

Star History

Star History Chart

About

A calm, native macOS client for the Mihomo proxy core, built with SwiftUI and a shared agent-friendly CLI.

Topics

Resources

Stars

295 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages