gooserelayvpn-android-client

Builds and configures an Android VPN client tunneling SOCKS5 traffic through Google Apps Script with AES-256-GCM encryption.

4|Updated May 16, 2026
One-click install
npx skills add https://github.com/reason-machines/devtools-skills --skill gooserelayvpn-android-client-reason-machines
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: gooserelayvpn-android-client
Source: https://github.com/reason-machines/devtools-skills/tree/main/skills/gooserelayvpn-android-client
Command: npx skills add https://github.com/reason-machines/devtools-skills --skill gooserelayvpn-android-client-reason-machines

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Setting up a domain-fronted Android VPN client requires coordinating a Go mobile library, Android VpnService integration, Apps Script deployments, and matching encryption keys across client and server, which is error-prone without clear guidance. ## Core Features & Use Cases - Go Mobile AAR Build: Compile the GooseRelay Go core into an Android AAR library using gomobile for arm64-v8a, armeabi-v7a, x86, and x86_64 targets. - Profile-Based Configuration: Create, import, and export JSON VPN profiles defining SOCKS5 settings, SNI hostnames, Apps Script deployment IDs, and the tunnel key. - VpnService and tun2socks Integration: Route full-device or per-app (split tunnel) traffic through the local SOCKS5 proxy into the encrypted tunnel. - Use Case: A developer builds the debug APK, imports a profile JSON with their Apps Script deployment ID and tunnel key, connects the VPN, and diagnoses a stuck "Preparing" state by checking the in-app logs for a mismatched tunnel key. ## Quick Start Build the GooseRelayVPN Android debug APK and generate a profile JSON configured with my Apps Script deployment ID and tunnel key.

Frequently Asked Questions about gooserelayvpn-android-client

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build the GooseRelayVPN Android client APK?▼

Run bash android/build_go_mobile.sh to compile the Go core into an AAR via gomobile, then run ./gradlew :app:assembleDebug in the android directory. You need JDK 17, Go 1.22+, the Android SDK with NDK, and gomobile installed.

How to configure an Android VPN profile JSON with Apps Script?▼

Create a JSON profile with socks_host, socks_port, google_host, sni hostnames, script_keys containing your Apps Script deployment IDs, and a base64 tunnel_key generated by scripts/gen-key.sh. The tunnel key must match the VPS goose-server configuration.

Does the Android VPN client support split tunneling per app?▼

Yes, split tunneling is supported through the VpnService Builder's addAllowedApplication method. Set splitTunnel to true in the profile and list package names in allowedApps so only those apps route through the tunnel.

Why is my Android VPN stuck in the Preparing state?▼

A stuck Preparing state usually means invalid script_keys deployment IDs, a tunnel_key mismatch between client and server, or an inaccessible Apps Script deployment. Check the app's Logs tab for connection, decryption, or timeout errors to identify the cause.

Can I use the SOCKS5 proxy without enabling Android VpnService?▼

Yes, you can start only the SOCKS5 server by calling the Go core's Start function with the profile JSON, without establishing a VPN interface. Individual apps must then be manually configured to use 127.0.0.1:1080 as their SOCKS5 proxy.