Nukemichi is an Android private network management tool built on top of the sing-box unified proxy platform. The project combines two roles in one app:
- a user-facing client for connecting and monitoring a configured profile
- a guided deployment workflow for provisioning and maintaining your own server setup
The long-term direction is simple: make private network operations accessible for regular users without removing the lower-level controls that engineers expect.
Warning
Intense development is in progress. Architecture, UX, APIs, and build steps may change between commits.
- Connects Android devices to a configured sing-box profile
- Provides a wizard for deploying and managing a remote server
- Integrates with
agent-michi, a companion backend used for structured remote operations such as host inspection, deployment, and service management - Exposes modular APIs so other developers can build on top of the project without depending on internal implementation details
Planned and in-progress areas:
- RBAC-oriented UX split between a simplified user flow and a more advanced engineering flow
- one-click server deployment workflow
- embedded tutorials and FAQ content for private networking, server basics, and self-hosting
- multiple deployment strategies for different operational requirements
- stronger app-side privacy and environment hardening
- improved transport defaults and optional advanced tunneling features
app/: Android application entry point and dependency wiringcore/box/: sing-box profile, config, and VPN integrationcore/agent/: API and implementation foragent-michiintegrationcore/security/api/: public security API surface intended for extensioncore/ssh/: SSH transport layer for remote operationsfeature/wizard/: guided deployment and bootstrap flowfeature/dashboard/: active profile and runtime monitoring UI
This public repository intentionally exposes the application architecture, module boundaries, and public APIs without shipping private defensive strategy details. Security-related extension points remain available for contributors, while the production-specific implementation can stay private.
- macOS or Linux
- JDK 21+
- Android SDK
- Android NDK
- Android Studio Iguana or newer is recommended
git clone <your-public-repo-url>
cd nukemichi-androidcore/agent/impl expects these compressed assets:
core/agent/impl/src/main/assets/bin/amd64/agent-michi.zstcore/agent/impl/src/main/assets/bin/arm64/agent-michi.zstcore/agent/impl/src/main/assets/bin/armv7/agent-michi.zst
Sync them from a published agent-michi release:
./gradlew :core:agent:impl:syncAgentBundledBinaries -PagentReleaseTag=v1.0.0Validate the assets:
./gradlew :core:agent:impl:verifyAgentBundledBinariesHelper script:
scripts/ensure-agent-binaries.sh
./gradlew :app:assembleDebugOutput:
app/build/outputs/apk/debug/
Set these in ~/.gradle/gradle.properties or provide them through Gradle properties:
RELEASE_STORE_FILE=/absolute/path/to/release.jks
RELEASE_STORE_PASSWORD=your_store_password
RELEASE_KEY_ALIAS=your_key_alias
RELEASE_KEY_PASSWORD=your_key_password./gradlew :app:assembleReleaseOutput:
app/build/outputs/apk/release/
./gradlew :app:signingReport
./gradlew :core:agent:impl:verifyAgentBundledBinaries- Finish the guided deployment flow
- Formalize RBAC and split user/engineer experiences
- Add tutorial and FAQ modules
- Add selectable deployment strategy presets in the wizard
- Expand
agent-michioperations exposed through the app - Add tests around config generation, bootstrap flow, and profile lifecycle
- Document contribution rules for public extensions
flowchart TD
A["Splash"] --> B["Hello"]
B --> C["Standard Onboarding"]
B --> D["Learn Hub"]
B --> E["Advanced Mode Intro"]
C --> C1["Path Choice"]
C1 --> C2["Server Access"]
C2 --> C3["Deploy or Import"]
C3 --> C4["Deploy Progress"]
C4 --> C5["VPN Permission"]
C5 --> F["Standard Dashboard"]
E --> E1["Unlock Warning"]
E1 --> E2["Advanced Onboarding"]
E2 --> E3["Strategy Choice"]
E3 --> E4["Advanced Params"]
E4 --> E5["Review"]
E5 --> E6["Deploy Progress"]
E6 --> G["Advanced Dashboard"]
F --> H["Subscription Picker"]
F --> I["Settings Standard"]
F --> D
G --> J["Server"]
G --> K["Runtime"]
G --> L["Config"]
G --> M["Settings Advanced"]
G --> D
I --> I1["General"]
I --> I2["Connection"]
I --> I3["My Network"]
I --> I4["Server"]
I --> I5["Learn"]
I --> I6["Advanced Mode"]
I --> I7["Danger Zone"]
M --> M1["Deployment"]
M --> M2["VPS Control"]
M --> M3["sing-box Control"]
M --> M4["Connection Control"]
M --> M5["Diagnostics"]
M --> M6["Return To Standard"]
M --> I7
The project is still moving quickly, so expect rough edges. Public contributions are most useful in these areas:
- UI and UX improvements
- testing and validation
- documentation
- modular API design
- deployment workflow reliability
See LICENSE.