rOSs

System Setup

Configure ingestion pathways, API keys, and self-improvement

Fleet Status loading
Telegram Ingestion off
Enable Telegram
Accept tasks via Telegram DM
1. Message @BotFather → /newbot → copy the token. 2. Send any message to your bot.
After messaging your bot, visit https://api.telegram.org/bot<TOKEN>/getUpdates — your chat_id is in the response.
Email Ingestion off
Enable Email
Poll Gmail for task emails (requires OAuth)
Only emails with this label will be ingested
GitHub Webhooks no secret
Repo → Settings → Webhooks → Add webhook. Set Payload URL to https://your-wfos/github/webhook, Content type: application/json, and paste this secret. Docs
API Keys check
console.anthropic.com/settings/keys → Create Key. Required for api_standard/premium tiers. Local triage stays on Ollama.
api.slack.com/apps → Create App → Incoming Webhooks → Add to channel → copy URL. Used for briefings and fleet alerts.
Any random string. Protects /ingest and all mutating endpoints. Generate one: openssl rand -hex 32
Optional second layer. Clients sign requests with this secret via HMAC-SHA256. Generate: openssl rand -hex 32
Google & Gmail check
The Gmail account WFOS reads from and sends as.
GCP Console → Create Service Account → Keys → Add Key → JSON. Save to config/ and enter the path. Enable Gmail + Calendar APIs in the project.
Google Calendar Settings → your calendar → "Integrate calendar" → Calendar ID. Use "primary" for your main calendar.
GCP Credentials → Create Credentials → API Key. Enable "Distance Matrix API" and "Geocoding API".
For commute time calculations. Full address with postcode.
Content Generation check
For avatar video generation. Get from heygen.com/settings/api
For text-to-speech. Get from elevenlabs.io
Voice Library → pick a voice → copy Voice ID from the voice settings panel.
platform.openai.com/api-keys → Create new key. Used as image gen fallback only (gpt-image-1, ~$0.04/image). Local mflux is tried first.
Content Distribution check

Keys for publishing content to social platforms. All optional — leave blank to skip a platform.

YouTube: GCP Credentials → OAuth 2.0 Client ID (Desktop app) → enable YouTube Data API v3 → run OAuth consent flow to get refresh token.
LinkedIn: linkedin.com/developers/apps → Create App → Auth → generate token with w_member_social scope. Person URN: urn:li:person:YOUR_ID.
X / Twitter: developer.x.com/portal → Create Project + App → Keys & Tokens → generate all 4 (API Key, API Secret, Access Token, Access Secret).
TikTok: developers.tiktok.com → Create App → generate access token with video.publish scope.
WhatsApp: developers.facebook.com → Create App → WhatsApp → API Setup → copy token and Phone Number ID.

Run the OAuth consent flow once to get this. It doesn't expire unless revoked.
Integrations check
For task sync. Get from todoist.com/settings
For Reddit monitoring. Create app at reddit.com/prefs/apps
Self-Improvement active
Enable Self-Improvement
Fix errors, resolve TODOs, improve watched repos when idle
How long the system must be idle before starting improvements
One repo per line. GitHub URLs or local paths. Tier 3 priority (after WFOS self-fix).
Ingestion Policy active
Enable Policy Layer
Control auto-run vs review vs defer by source/intent
Examples: email,github,telegram,voice
Defer Background Urgency
Automatically defer background tasks
Background Workers running
Chief-of-staff briefing delivery. 21600 = 6 hours. Set 0 to disable.
How often to check for due routines. 300 = 5 minutes.