Master Integrations Panel
One place for every credential. Each section saves to localStorage as you type. Test buttons hit real services — green = working, red = wrong key. Export to JSON when you want to copy your config to Oni or another browser.
How this works: Credentials live in your browser's localStorage under the
tfdwx.creds.* namespace. Nothing is uploaded anywhere. Senna's bundle reads from this same store automatically. To use these creds in Oni (different origin), use the Export → JSON button below, copy the output, then in Oni → Admin → click Import from Master Panel and paste.
Health Check
Run real network calls against every configured service and report which work.
@
Email · Direct (EmailJS)
EmptySend real emails from any browser app — no n8n required. Sign up at emailjs.com (free 200/mo) → connect Gmail/Outlook → create a template using
{{to_email}} {{subject}} {{message}} {{from_name}} → grab 3 IDs.Service IDemailjs.com → Email Services
Template IDemailjs.com → Email Templates
Public Keyemailjs.com → Account → API Keys (public, not private)
Default to:Where to send when not specified
n
n8n Workflow Webhook
EmptyOptional. Use n8n when you need branching logic (Switch by Friend → Email/Discord/LLM). The Oni-CRTL-Workflow.json scaffold + setup-oni-n8n.sh script live in /Oni/n8n/.
Webhook URLProduction URL of your /webhook/oni-crtl endpoint
Bearer tokenOptional shared secret (sent as Authorization: Bearer)
D
Discord Webhooks
EmptyIn Discord: Server Settings → Integrations → Webhooks → New Webhook. Copy the URL. One per target channel. Default is required; per-Friend ones are optional.
Default webhookUsed when no specific Friend webhook is set
1UP · #releasesFor new music drops
1UP · #liveFor Twitch live alerts
1UP · #now-playingFor SSM bounces
VCM · #completed-buildsFor GTR setup-done events
VCM · #ordersFor Tebex order pings
FastBread · #revenue (PRIVATE)For paid-lead notifications
Vegas (PRIVATE)For high-confidence picks · personal-only
Senna · #studio-logFor cue + sync milestones
T
Twitch (EventSub)
EmptyRegister an app at dev.twitch.tv → Applications. Get Client ID + Secret. EventSub requires a publicly-reachable callback URL (your n8n webhook works).
Client IDFrom dev.twitch.tv app
Client SecretFrom dev.twitch.tv app (keep private)
EventSub callback URLWhere Twitch POSTs events (your n8n webhook)
1UP channel nameTwitch login (lowercase)
VCM channel nameFor Vice City Mogul streams
Senna channel nameFor studio production streams
A
AI / LLM Providers
EmptyUsed by n8n's LLM-fallback node + Jenova's render queue. Browser-direct LLM calls aren't recommended (CORS issues, key exposure) — these are for n8n env vars.
Anthropic API keyconsole.anthropic.com → API Keys (sk-ant-...)
OpenAI API keyplatform.openai.com → API keys
ElevenLabs keyFor voice gen (Jenova VO)
Suno keyFor AI music underscore
Runway keyFor video gen
S
Streaming Services (Music)
EmptyMostly read-only stats (For Artists APIs). 1UP Radio uses public stream URLs — paste them below.
Spotify Client IDdeveloper.spotify.com → My Apps
Spotify Client SecretFrom the same app
YouTube API keyconsole.cloud.google.com → YouTube Data API v3
SoundCloud Client IDsoundcloud.com/you/apps
1UP Radio · Stream 1Public stream URL (Spotify/SC/Bandcamp embed src)
1UP Radio · Stream 2
1UP Radio · Stream 3
1UP Radio · Stream 4