MyGo 云音乐
用 Go 与 MyGo 写成的第三方网易云音乐桌面客户端。原生界面,没有 WebView;边下边播,无损与 Hi-Res,逐字歌词与「律动」,刘海播放器。
Translation pending
Multi-tone frequency generator. Layer tones, route each to left, right or both channels and to separate output devices. Works fully offline.
Translation pending
MediaHTML · JavaScriptGitHub @shep95OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A multi-tone frequency generator set inside an orbital observation chamber. Pick frequencies from the built-in library (brainwave, Schumann, solfeggio, reference tones, …) or enter your own, layer them, and route each tone to L / L+R / R and — in Chrome/Edge — to a specific output device.
Plain static files, no build step, no external requests. Works 100% offline.
index.html the whole app (HTML + CSS + JS)
sw.js service worker — precaches everything for offline use
manifest.webmanifest makes it installable (home screen / dock / start menu)
assets/vista.webp background scene (736 × 983)
assets/inter-var.woff2 Inter variable font, self-hosted (OFL, see inter-LICENSE.txt)
icons/ app + favicon icons
vercel.json headers (security, service worker, manifest)
/) — find and run any frequency, preset,
saved combo, playlist or action from the keyboard. ? opens shortcuts &
settings (visual quality auto / full / lite, haptics).shepherd.freq.html with the
image, font and icons embedded. Open it from any device's files, no network
needed.Import this repo at https://vercel.com/new. Framework Preset Other, build
command and output directory empty. Or with the CLI: vercel --prod.
When you change a file that the service worker caches, bump VERSION in
sw.js so installed copies pick up the update.
docs/design-system.md — component relationship map, visual hierarchy,
motion system and the performance contract.docs/audit-2026-10.md — the October 2026 audit: every bug found and fixed.tests/run.mjs drives a real Chromium through every feature, safety gate and
a set of attacks (296 checks), served with the production headers:
npm i --no-save playwright && npx playwright install chromium
node tests/run.mjs
npx serve . # or: python3 -m http.server 3000
The service worker and device scanning need https:// or localhost.
Everything placed over the scene is anchored to positions measured from the image's luminance profile: header in the ceiling band (0–8.9 %), the hero frequency in the calm haze band (38.7–50.9 %), the live wave drawn on the distant land horizon (51.4 %), tone cards resting on the land above the diners, light that swells at the orbital horizon (15.3 %) and floor as tones play. The stage keeps the image's aspect ratio and is centred on the window opening, so those anchors hold on every screen size.
prefers-reduced-motion.A static, client-only app — no server code, accounts, cookies, analytics or third-party resources. Hardening (each control was attack-tested):
| Threat | Control |
|---|---|
| Script injection (XSS) via labels, saved data or Bluetooth device names | all dynamic text escaped; strict CSP with SHA-256 hashes for the one inline script and style — no unsafe-inline, no unsafe-eval, no external origins |
| Injection through any HTML sink | Trusted Types default policy routes every innerHTML through a tag-aware sanitizer; eval, string timers and new policies are refused |
| Data exfiltration | connect-src 'self', default-src 'none', form-action 'none' |
| Clickjacking / framing | frame-ancestors 'none', X-Frame-Options: DENY, JS frame-guard in the single file |
| Prototype pollution | saved state rebuilt from an allow-list of keys (no object spread); built-in prototypes and app data frozen |
| Oversized / malformed saved state | strict type checks and clamps; max 48 tones, 40-char labels; control and bidi-override characters stripped |
| Service-worker cache poisoning | caches an explicit allow-list only; no query strings, redirects, errors or cross-origin responses |
| Cross-origin attacks / side channels | COOP + COEP + CORP same-origin (cross-origin isolated), nosniff, no-referrer, Origin-Agent-Cluster |
| Downgrade | HSTS (2 years) + upgrade-insecure-requests |
| Permission abuse | Permissions-Policy denies everything except microphone (device names, on click only, released immediately), speaker selection, and — only on a tap — geolocation and Bluetooth |
| Repo files exposed by deploy | .vercelignore ships only the app |
| Supply chain | zero runtime dependencies; font self-hosted; CI action pinned by commit |
After editing index.html, run node tools/csp.mjs to refresh the CSP
hashes (CI fails if you forget). Report vulnerabilities via
SECURITY.md.
AudioContext.setSinkId (Chromium). Elsewhere
tones play through the system default.localStorage.