Super Desktop App
Riley is not saying “desktop is better than the web.” He’s saying the personal tool he lives in — a local shell an agent keeps extending — is beating the little web dashboards he used to vibe-code for himself.
← AI Agents · Tech · Productivity · GrokBot Riley · ChatGPT + Codex super app · Computer use · ChatGPT Work · GFAVIP Webchat
Source
Riley Brown (@rileybrown / @agentnative_) — x.com/rileybrown/status/2100072025054208335 (16 Sep 2026). ~368 likes / ~161 bookmarks / ~29k views at capture. No screenshot of the app. Replies asked for a walkthrough (@Kyle_Wolt) and “pics or it didn’t happen” (@mathew_fuller).
I'm seeing way bigger productivity gains from building personal desktop apps than personal web apps. My personal super desktop app is insane. Saves me hours/wk.
Public example of the genre (not a dump of the private hours/wk tool): RileyJarvis, the Electron companion he open-sourced — github.com/rbrown101010/rileyjarvis (MIT).
One-sentence TL;DR
Stop shipping yourself little web dashboards. Build a local desktop app around your loop, let an agent keep extending it, and treat that as home base. For him, that personal desktop super-app is currently more useful than the personal web apps he used to make.
What he means (narrow claim)
This is not “desktop apps in general are better than the web.” It’s from how he actually works:
- Personal apps, not products. He vibe-codes tools for his workflow. No product name, no users, no marketing. Just something that does exactly what he wants. He said that earlier about a desktop app he made for Excalidraw presentations, then added YouTube thumbnail generation in one shot.
- Desktop beats web for that use case. A personal web app still lives in a browser tab: limited OS access, login/session friction, weaker file-system and window control. A personal desktop app can sit on the machine, read local files, drive other apps, take screenshots, click/type, and keep state locally.
- “Super desktop app” = one shell for most work. He’s been arguing for months that the endgame is a single agent interface you start every task from, instead of bouncing between browser, email, Notion, etc. He called that a “super-app.” This tweet is him saying the version that actually saves him hours is the desktop one, not a personal web OS.
That’s why people in the replies asked for a walkthrough. He claimed a private tool is saving hours a week and didn’t show it in that post.
Why desktop, in his world
Riley’s whole beat is “agent-native” work: coding agents, Codex / ChatGPT desktop, computer-use, remote control of a Mac. Desktop is where those agents can actually touch the computer.
He’s also said that once you put a full browser inside a desktop agent app, separate web tools start to look unnecessary — the agent opens the site in its own browser and works there.
| Personal web app | Personal desktop app | |
|---|---|---|
| Where it lives | A tab you have to find again | A window that stays on the machine |
| OS access | Sandbox, cookies, uploads | Files, apps, screenshots, click/type |
| Auth | Login / session / deploy | Local keys in .env.local |
| State | A server or a SaaS | A folder on disk (data/) |
| Agent job | Talk about work | Do the work on this Mac |
RileyJarvis — the public Electron example
RileyJarvis is a local Electron desktop AI companion: realtime voice, a visual artifact panel, image generation, web search, notes, and opt-in macOS computer control. Stack: Electron, React, Vite, TypeScript, OpenAI Realtime API.
Repo:
github.com/rbrown101010/rileyjarvis
.
README clone URL still says
github.com/rileybrown/rileyjarvis — that path 404s; use
rbrown101010. MIT. macOS only.
That’s the genre: a local AI desktop that is yours, not a SaaS tab. It is not a screenshot of the private “hours/wk” super app. Don’t treat the open-source companion as the whole claim.
What it actually ships
- Realtime speech-to-speech with OpenAI Realtime
- Animated companion face (listening / thinking / speaking / working)
- Artifact panel: markdown, menus, notes, Mermaid, generated images, records, progress
- YouTube thumbnail board with persistent numbered generations and image edits
- Optional Exa-powered web search
- Local notes and records under runtime
data/(gitignored) - Optional computer-use mode: open apps, click, type, scroll, screenshots, UI inspection on macOS — blocked until that mode is on
Clone and run
git clone https://github.com/rbrown101010/rileyjarvis.git
cd rileyjarvis
npm install
cp .env.example .env.local
# OPENAI_API_KEY=... (required — Realtime + image gen)
# EXA_API_KEY=... (optional — search)
npm run dev
Needs Node 20+, an OpenAI key with Realtime + image generation, and
(if you turn on computer-use) macOS Accessibility + Screen Recording
plus the microphone for voice. Dev mode starts Vite on
127.0.0.1:5173 and launches Electron.
Security notes from the README (keep these)
- Keys load only from local env files. Don’t commit
.env.localordata/. - Risky computer-control actions should require explicit confirmation.
- Typing and pressing Enter in computer-use mode are intentionally allowed without extra confirmation — they’re core voice-control actions. That’s the gym-hack class of permission. Fence send / delete / spend elsewhere.
Three “super apps” — don’t mash them
On this site the phrase already means three different jobs:
| Page | Whose super app | What it is |
|---|---|---|
| /chatgptwork2 | OpenAI’s product | ChatGPT + Codex in one desktop: Work tab, Codex tab, in-app browser, Sites |
| /gptwork | Same product, Riley’s tour | 14 Work capabilities. Cloud vs local. Still a vendor app. |
| /superdesktopapp (this tweet) | Riley’s personal shell | A vibe-coded Electron home base. No users. His loop. |
| gfavip.com/download · /gfavipwebchat | GFAVIP Chat — our product | WeChat/Slack pattern: Matrix rooms + Apps Home catalog + SSO. Members. Keep webchat. |
The OpenAI desktop is a product you log into. Riley’s personal super desktop app is a repo you own. He can add a thumbnail board in one shot because there is no product manager. GFAVIP cannot do that — catalog, SSO, review, install, all platforms.
GFAVIP Chat overlay (product, not Jarvis)
We sent this page to the GFAVIP desktop-agent with a contrast brief. Agreed direction (16 Sep 2026): borrow native seams and safety discipline, not the personal companion.
GFAVIP Chat is already a super-app in the WeChat sense: DMs and
workspaces on our Matrix homeserver, Apps Home (Wallet, Profile,
Tickets, Checkout) via SSO, agents as @mentions in rooms
(Billy Beard). Web first at
webchat.gfavip.com;
native Mac / Windows / Linux / iOS / Android from
gfavip.com/download.
Ecosystem map: /gfavipecosystem.
Do not turn that into RileyJarvis.
Keep (desktop-justified)
- Reliable desktop notifications, badges, and exact conversation deep links
- Encrypted local Matrix cache, offline search, and an outbox that sends after reconnection
- Native file picking, saving, and “show in Finder/Explorer”
- A small catalog capability API — catalog apps stay governed SSO webviews
- An in-Chat agent that can search local files, summarize notifications, prepare attachments, and draft actions
- Explicit approval and audit records for consequential actions
Skip (cargo-cult Riley)
- RileyJarvis face, personal voice-companion UI, single-user assumptions
- “Kill the web” or replacing Webchat
- Always-on screenshots, Accessibility control, or unrestricted computer use
- Arbitrary filesystem access from catalog webviews
- Local
.envAPI keys or a native integration for every catalog entry - Autonomous send, delete, spend, publish, or account changes
Catalog capability API — four verbs, then stop
Catalog apps remain SSO webviews. They may request allowlisted capabilities through a native bridge, bound to catalog app ID + allowed origin:
| Verb | Job | Fence |
|---|---|---|
pickFile | Native file picker into Chat or a catalog app | User gesture. Path/contents only what the user selected. |
saveFile | Save / “show in Finder/Explorer” | Same. No generic filesystem walk. |
setBadge | Unread / attention mark | Chat owns the dock badge. Catalog only badges its own Apps Home icon (or sends a count Chat aggregates). |
openGfavipDeepLink | Open a workspace, channel, thread, or catalog record | Allowlist *.gfavip.com (plus the exact webchat / wallet / tickets hosts we already use). No off-estate URLs. |
No generic shell, terminal, filesystem, or computer-control API. File ops need a user gesture.
In-Chat agent boundary
Same agent that already lives in rooms (Billy Beard) — new desktop tools, not a second Jarvis process.
Safe by default: search chats and opted-in local files; summarize unread; draft replies; prepare attachments; open the relevant GFAVIP app or conversation; produce a preview of a proposed action.
Visible confirmation always: send, delete, spend/purchase, publish, share externally, change permissions or accounts, bulk modifications. Same fence as Auto-review / gym hack.
Audit records need a destination or they won’t exist: a local log, a staff room, or both. Name it in the desktop repo.
Ship order (don’t call encrypted cache “this week”)
- Attach from desktop everywhere — drag a file into Chat, or let an authorized catalog app request the native picker. No awkward web-upload dance.
- GFAVIP notification center — native unread badge, mute/snooze, notifications that open the exact workspace / channel / thread / catalog record.
- Visible outbox — replies queue while offline and send after reconnection. Encrypted local cache + offline search is next (a quarter), not the first sitting.
Native SSO tokens go in the OS keychain / credential manager, not webview localStorage. If the Mac/Windows/Linux build is still Chromium + the same web app with nicer toasts, it is not a desktop super-app — it is a wrapped tab.
Put this skip list in the GFAVIP desktop repo’s AGENTS.md
so the next agent does not “just add screenshot.”
How this maps here
| Move | On this desk | Don’t |
|---|---|---|
| One local shell | Grok Build / Codex / a fork of RileyJarvis as the window you start from | Another Next.js dashboard you’ll forget the password to |
| Computer use | /computeruse (Orgo cloud desktop) vs this (local Mac) | Unfenced click/type on a live account — see gym hack |
| Outer harness as a window | /domainharness — deny list, domain tools, local memory | A chat API wrapper with a logo |
| Browser inside the agent | Agent opens the site in its own browser; web tools collapse | Five Chrome profiles plus a “personal OS” tab |
| GrokBot computer + Grill Me | /grokbotriley tip 11 — remote Mac, still a bot VM | Confusing Grok Bot’s computer with a local Electron you compiled |
| GFAVIP Chat desktop | Product super-app: native seams + four-verb catalog API + deny list. Overlay above. | Forking RileyJarvis into the Matrix client; killing webchat |
Week-one sitting (steal the pattern, not his UI)
- Pick one loop you already do every week (thumbnails, Excalidraw decks, inbox triage). Not a “personal OS.”
- Clone RileyJarvis or start a blank Electron/Tauri window. Keep state in a local folder.
- Add the one feature that currently lives in a browser tab. Stop.
- If you turn on computer-use: Accessibility + Screen Recording, then a deny list (send / delete / spend / publish) before you let it type Enter. Same fence as Auto-review.
- Let the agent extend the app next sitting. That’s the compounding he’s talking about — not a public launch.
What we keep vs skip
- Keep: personal ≠ product; desktop for OS access;
one shell as home base; local
data/; RileyJarvis as a cloneable genre; fence computer-use. - Verify: whether his private hours/wk app is a heavily forked RileyJarvis or a different Electron; whether “full browser inside the agent” is in the public repo or only in the private one.
- Skip: “desktop is back, kill the web”; shipping RileyJarvis as a SaaS; treating this tweet as a walkthrough (it isn’t); mixing this with OpenAI’s ChatGPT+Codex super app or with GFAVIP Chat (WeChat-style product — overlay above).
Related on this site
- ChatGPT + Codex super app — the vendor desktop, not the personal one
- ChatGPT Work (Riley, 14 capabilities) — same creator, product tour
- Computer use (Orgo + Hermes) — cloud desktop clicks
- GrokBot Riley — computer + Grill Me on the bot VM
- Domain-specific harness — outer control system; this page is that as a window
- Gym hack · Require Approval — why click/type needs a fence
- Eve Studio — another Mac UI for agents
- Agentic setup checklist — run the real app, don’t just chat
- God agent vs team — Riley × Rauch, one front door
- GFAVIP Webchat · ecosystem · agents — product super-app, not this tweet
Primary: @rileybrown — personal super desktop app · RileyJarvis (Electron)
Comments
Approved comments appear below. Log in once with GFAVIP — it applies across the whole site. GFAVIP login
View comments archive