Prox OS Internal Docs
PlatformArchitectureApps

App Registry

The **composed** shell registry is the runtime source of truth for route group, window defaults, ownership, permissions, runtime kind, and desktop placement. Pu

Source Files

SourcePathResponsibility
Composed registryapps/os-shell/src/apps/registry.tsRuntime source of truth for route group, window defaults, ownership, permissions, runtime kind, and desktop placement.
Proxied App templatespackages/runtime/app-registryStatic iframe-backed templates such as esmadrider-me and /app-dev localhost tools; see packages/runtime/app-registry/README.md.
Proxied App Runtime catalogpackages/embed-runtime/src/proxiedCatalog.tsCatalog for proxied runtime entries.
App category packagespackages/apps/*-appsProduct-category app manifests and components.
App shared primitivespackages/apps/app-sharedShared manifest helpers and browser-safe app primitives.
App runtime hostapps/os-shell/src/apps/AppRuntime.tsxShell-side wrapper that renders local and iframe apps.
Local app component mapapps/os-shell/src/apps/localAppComponents.tsxHost-side map from app ids to package-exported React components.
Typesapps/os-shell/src/apps/types.tsShell app typing and local metadata.
Routesapps/os-shell/src/router.tsxBrowser route definitions and surface mounting.

The composed shell registry is the runtime source of truth for route group, window defaults, ownership, permissions, runtime kind, and desktop placement. Pure iframe registration data for non–os-apps bundles lives in @prox-os/app-registry and is merged in registry.ts.

Package ownership is no longer concentrated in @prox-os/os-apps. system-apps is reserved for OS-level apps, while category packages own personal, connector, developer, admin, game, founder, community, and hub apps. The Shell registry imports manifests from the category package roots and should not deep-import app internals. localAppComponents.tsx remains the host-side renderer map that connects app ids to package-exported React components.

PackageApp ownership
@prox-os/os-appsCore OS apps, support, system, trust, governance, and shell-adjacent OS tools.
@prox-os/user-appsPersonal work, media, workspace, health, profile, and user-owned surfaces.
@prox-os/user-connector-appsMock connector and permission-facing source surfaces.
@prox-os/dev-appsDeveloper tools, route map, and development workbenches.
@prox-os/admin-appsAdmin, backend, deploy, and operations surfaces.
@prox-os/game-appsBrowser-native games and game collection surfaces.
@prox-os/founder-appsFounder, pricing, roadmap, waitlist, and growth surfaces.
@prox-os/community-appsCommunity and community admin surfaces.
@prox-os/hub-appsPlatform hub cockpit surfaces.
@prox-os/app-sharedShared primitives and manifest helpers used by category packages.

The App Store catalog is intentionally broader than the runtime registry. It may display available apps, incubating apps, concepts, templates, Spaces, data source ideas, and AI workflows. Only entries with a real registered runtimeAppId should open through the shell. Roadmap entries must stay visibly labeled as prototype, incubating, coming soon, concept, experimental, or roadmap.

The Studio Engine Model reads the composed registry through apps/os-shell/src/surfaces/surfaceManifestAdapter.ts. That adapter creates WorkspaceSurfaceManifest records from app manifests, uses manifest-level surfaceCapabilities when present, falls back to curated overrides in @prox-os/os-surface, and finally provides conservative window/icon defaults. This keeps Studio Engine modes registry-driven without making the app registry depend on shell renderer internals.

Launch Modes

The composed Shell registry can add launch surface metadata on top of package manifests:

type ShellAppLaunchMode = 'globalWindow' | 'studio' | 'fullscreen' | 'popover'

launchModes states where an app may appear, and defaultLaunchMode states the preferred user-initiated opening behavior. This is shell-level metadata for now, not a new backend contract.

Current rules:

RuleBehavior
Light utility appsCan opt into globalWindow so they open from Home, Alma, or Cmd+K without forcing Desktop Runtime.
Heavy apps and Studio hubsDefault to studio or normal routed OS surfaces.
Iframe appsMay advertise fullscreen because their runtime is often better in a larger frame.
Apps without globalWindowMust not be forced into the singleton app window; the shell falls back to normal openShellApp behavior.

The singleton app window is intentionally MVP-limited to one floating app at a time outside Desktop Runtime. It renders through AppRuntime, so local modules and iframes still use the same manifest and renderer paths as normal windows.

App Adapter And Studio Placement

Apps are capability modules. They do not inherently belong to Desktop Runtime, a route page, or any single folder in the Shell. Desktop Runtime is the strongest multi-window host for apps; a Studio decides how to mount an App through adapter, presentation, and placement metadata.

The shared app contract now exposes:

type AppAdapter = 'local' | 'route' | 'frame' | 'proxied' | 'remote'

type AppPresentation =
  | 'window'
  | 'page'
  | 'panel'
  | 'widget'
  | 'card'
  | 'frame'
  | 'device-screen'
  | 'admin-section'

type StudioAppPlacement = {
  studioType: string
  presentation: AppPresentation
  defaultSize?: unknown
  defaultRegion?: unknown
  permissions?: string[]
}

Adapter meanings:

AdapterMeaning
Local AppBundled React module app built with the shell or app package.
Route AppApp with a stable route that can be rendered by a route host.
Frame AppIframe-backed app with sandbox and fallback states.
Proxied AppExternal app wrapped by Prox OS proxy, bridge, permission, or sandbox policy. Do not rename this technical concept to Portal App.
Remote AppFuture remotely loaded module or runtime bundle.

Presentation examples:

CapabilityPossible presentations
Pricing, About, and HolaDesktop Runtime windows and route pages without duplicating UI.
SettingsDesktop Runtime window or root console route; not a route-page clone.
Future WeatherDesktop Runtime window, Grid widget, Ops review card, Alma suggestion, and Cmd+K command.

Route Groups

GroupPrefixPlacementMeaning
app/appleft desktop folderPersonal work, data, and creative apps.
app-track/app-trackleft desktop folder near AppsPersonal tracking primitives: People, Places, Devices, Money, Sources, and AI Context.
app-connectors/app-connectorsleft desktop folder near TrackExternal platform connector surfaces for imports, sync readiness, permissions, source status, and cache deletion concepts.
app-edu/app-eduleft desktop folder near AppsLearning, study mode, practice labs, notes, reviews, and long-term personal growth surfaces.
app-health/app-healthleft desktop folder near EducationHealth, sleep, dreams, body, mood, mindfulness, and sensitive personal tracking surfaces.
app-user/app-userright desktop folderIdentity, profile, visitor, notifications, shortcuts, display, and preference surfaces.
app-spaces/app-spacesright desktop folder near User AppsProxied Spaces home and Slidepad routes for third-party web apps, compatibility, install destinations, and fallback settings.
app-sports/app-sportsleft desktop folder near TrackSports memories, matchdays, fan passports, practice logs, equipment, and costs.
app-game/app-gameleft desktop folderBrowser-native games, iframe game placeholders, and community game experiments.
app-shell/app-shellright desktop folderTarget group for shell-coupled apps that remain inside apps/os-shell. Not implemented in the current router yet.
app-admin/app-adminbottom-right desktop folderInternal admin cockpit for operations, real data readiness, users, waitlist, feedback, audit, permissions, jobs, storage, and billing.
app-dev/app-devbottom-right desktop folder next to AdminLocal development tools, API docs, contracts, mock scenarios, Storybook, Scalar, architecture graphs, route maps, and debugging surfaces.
app-iframe/app-iframeleft desktop folder (Proxied Apps)External and standalone apps proxied into managed OS windows; iframe is the current implementation detail.
app-os/app-osright desktop folderReusable OS, official team, community, and platform operations apps that can move toward packages/apps/system-apps.
app-hub/app-hubright desktop folder after OS AppsProductized vertical Hub surfaces and OS-native cockpit workspaces.

The router defines normal OS app routes plus /website variants for /app, /app-track, /app-data, /app-connectors, /app-edu, /app-health, /app-user, /app-spaces, /app-sports, /app-admin, /app-dev, /app-iframe, /app-os, and /app-hub. ViewMode maps normal routes to OS mode and /website routes to single-app website mode. /app-data/* remains a deprecated compatibility alias that parses to /app-track/*. /app-user-connectors/* remains a deprecated compatibility alias that parses to /app-connectors/*. /app-spaces itself is a root/folder entry that normalizes to /app-spaces/home; the complex Spaces implementation lives at /app-spaces/home, Slidepad lives at /app-spaces/slidepad, and Deployment Spaces lives at /app-spaces/deployments. /app/dreams remains a compatibility alias for /app-health/dreams. Fullscreen app sessions still use the historical /spaces/:spaceId runtime route instead of website-mode suffixes.

True OS fullscreen is no longer represented by those app-route suffixes. A fullscreen app lives in a dedicated runtime Space and uses /spaces/:spaceId as the shell-level runtime route. Refreshing a stale Space URL gracefully falls back to the default desktop when the in-memory Space no longer exists. This route is preserved as current runtime behavior only; new Studio resources should use the Studio URL model, not /spaces/:spaceId.

Current Apps And Entry References

The route and window facts below remain useful when checking the runtime registry. Package ownership should be read through the category package table above and the imports in apps/os-shell/src/apps/registry.ts; older entry references may still point at the original @prox-os/os-apps migration path.

Track apps:

Track routePurpose
/app-track/peoplePeople and relationship memory entities.
/app-track/placesReusable place entities for scene apps.
/app-track/devicesDevices as life capture and work media.
/app-track/moneyCross-app spending and experience value context.
/app-track/sourcesData provenance, source confidence, and permission status.
/app-track/ai-contextPrompt trails, model usage, linked outputs, and trust review.

Connector routes now use /app-connectors/*; old /app-user-connectors/* paths are compatibility aliases. New connector routes include /app-connectors/books, /app-connectors/music, /app-connectors/movies, and /app-connectors/airtable, /app-connectors/sports, /app-connectors/events, /app-connectors/tickets, /app-connectors/deployments, and /app-connectors/social, alongside migrated Game, Files, Calendar, Contacts, Wallet, and existing connector surfaces.

New scene app routes:

RouteTheme
/app/foodMeals, restaurants, costs, people, and sources.
/app/workPersonal work sessions, projects, tools, and output log.
/app/booksBookshelf, reading timeline, notes, stats, and source links.
/app/seriesLong-form watching tracker.
/app/musicMusic listening memories.
/app/music-memorySongs as memory anchors across people, places, and moods.
/app/eventsLive and event experiences.
/app/ticketsTicket and stub memories.
/app/photo-rollPhoto context enrichment and Moments bridge.
/app/wishlistUnified wishlist across life, media, travel, and tools.
/app/readingOpen-web reading log with AI summaries.
/app/bookmarksSaved links with folders, tags, imports, and stale-link checks.
/app/podcastsPodcast listening log and notes.
/app/collectionsPersonal artifacts, categories, value, storage, and timeline.
/app/local-servicesCity services, costs, documents, places, and safety notes.
/app/documents-vaultSemantic life-admin files, cases, deadlines, and sources.
/app/ai-teamPersonal AI workers, task timeline, permissions, and AI Context links.
/app/personal-blog-studioDrafts, channels, calendar, SEO, assets, and AI writing cockpit.
/app/public-profile-builderPublic identity, links, portfolio, narrative, and preview.
/app/project-museumProject history, artifacts, prompts, milestones, and AI trail.
/app/europe-plannerEurope life planning cockpit; not legal, tax, or immigration advice.
/app/madridMadrid activity explorer for city culture, neighborhoods, and radar entrypoints.
/app/madrid-cine-radarMadrid cinema decision engine for language, subtitles, duration, ticket status, venues, and official links.
/app/madrid-cine-radar-b2bPartner cockpit mock for venues, festivals, cultural centers, and multilingual event listings.

Sports memory routes live under /app-sports/*, with Football as the richest v0 app for matchdays, World Cup, Champions League, teams, players, stadiums, Fan Passport, jerseys, costs, and memories.

appIdTitleIconRouteEntry componentWindow
esmadrider-meesmadrider.meEs/app-iframe/esmadrider-meiframe dev http://localhost:3120/?mode=os-app, prod https://esmadrider.me/?mode=os-app960 x 720, min 640 x 480, resizable
projectsProjectsPr/app/projects@prox-os/os-apps/projects880 x 580, resizable
dreamsDreamsDr/app-health/dreams@prox-os/os-apps/dreams1040 x 720, min 720 x 520, resizable
ts-fullstackTS FullstackTs/app-edu/ts-fullstack@prox-os/os-apps/ts-fullstack1160 x 760, min 820 x 560, resizable
healthHealthHl/app-health/health@prox-os/os-apps/health1160 x 760, min 820 x 560, resizable
game-recordsGame RecordsGr/app/game-records@prox-os/os-apps/game-records1160 x 760, min 820 x 560, resizable
placesPlacesPlc/app/places@prox-os/os-apps/places1160 x 760, min 820 x 560, resizable
moviesMoviesMv/app/movies@prox-os/os-apps/movies1160 x 760, min 820 x 560, resizable
news-rssNews RSSNr/app/news-rss@prox-os/os-apps/news-rss1180 x 760, min 840 x 560, resizable
madridMadridMd/app/madrid@prox-os/user-apps/madrid1220 x 800, min 900 x 620, resizable
madrid-cine-radarMadrid Cine RadarMcr/app/madrid-cine-radar@prox-os/user-apps/madrid-cine-radar1240 x 820, min 900 x 620, resizable
madrid-cine-radar-b2bMadrid Cine Radar B2BMcb/app/madrid-cine-radar-b2b@prox-os/user-apps/madrid-cine-radar-b2b1220 x 800, min 900 x 620, resizable
stock-trackStock TrackStk/app/stock-track@prox-os/os-apps/stock-track1160 x 760, min 820 x 560, resizable
ai-mediumAI MediumAm/app/ai-medium@prox-os/os-apps/ai-medium1180 x 760, min 840 x 560, resizable
games-hubGamesGa/app-game@prox-os/os-apps/games980 x 680, min 720 x 520, resizable
snakeSnakeSn/app-game/snake@prox-os/os-apps/games760 x 700, min 560 x 520, resizable
tile-mergeTile MergeTm/app-game/tile-merge@prox-os/os-apps/games820 x 720, min 560 x 540, resizable
minesweeperMinesweeperMs/app-game/minesweeper@prox-os/os-apps/games860 x 720, min 600 x 540, resizable
memory-cardsMemory CardsMc/app-game/memory-cards@prox-os/os-apps/games860 x 720, min 600 x 540, resizable
breakoutBreakoutBo/app-game/breakout@prox-os/os-apps/games940 x 700, min 640 x 520, resizable
pongPongPo/app-game/pong@prox-os/os-apps/games900 x 660, min 620 x 500, resizable
falling-blocksFalling BlocksFb/app-game/falling-blocks@prox-os/os-apps/games880 x 780, min 620 x 560, resizable
founder-suiteFounder SuiteFs/app-hub/founder-suite@prox-os/os-apps/founder-suite1180 x 780, min 820 x 560, resizable
data-roomData RoomDa/app-user/data-room@prox-os/os-apps/data-room900 x 600, resizable
data-graphData GraphDg/app-user/data-graph@prox-os/os-apps/data-graph1180 x 760, min 820 x 560, resizable
prompt-studioPrompt StudioPs/app-user/prompt-studio@prox-os/os-apps/prompt-studio1180 x 760, min 820 x 560, resizable
airtable-viewerAirtable ViewerAv/app/airtable@prox-os/os-apps/airtable-viewer1120 x 720, min 780 x 540, resizable
assetsAssetsAt/app/assets@prox-os/os-apps/assets920 x 620, resizable
automationsAutomationsAu/app-user/automations@prox-os/os-apps/automations840 x 560, resizable
systemSystemSy/app-admin/system@prox-os/os-apps/system840 x 560, fixed resize
backendBackend FoundationBackend/app-admin/backend@prox-os/os-apps/backend-foundation1180 x 760, min 820 x 560, resizable
connector-sandboxConnector SandboxConnectorSandbox/app-admin/connector-sandbox@prox-os/os-apps/backend-foundation1180 x 760, min 820 x 560, resizable
mock-labMock LabMockLab/app-admin/mock-lab@prox-os/os-apps/backend-foundation1180 x 760, min 820 x 560, resizable
developer-architectureArchitectureNetwork/app-dev/architecture@prox-os/os-apps/architecture1100 x 720, min 760 x 520, resizable
api-workerAPI WorkerAdminAPI/app-dev/api-workeriframe http://localhost:8787980 x 620, min 680 x 460, resizable
ui-workshopUI WorkshopAdminUI/app-dev/ui-workshopiframe http://localhost:60061180 x 760, min 760 x 520, resizable
docsDocsAdminDocs/app-dev/docsiframe dev http://localhost:3100/docs; prod https://docs.prox-os.com/docs1120 x 740, min 720 x 500, resizable
nx-graphNx GraphAdminGraph/app-dev/nx-graphiframe dev http://localhost:4211/projects; prod https://docs.prox-os.com/tools/nx-graph/1160 x 740, min 760 x 520, resizable
scalar-apiScalarAdminScalar/app-dev/scalar-apiiframe Scalar UI at api.prox-os.com/docs (OpenAPI from Worker)1120 x 740, min 720 x 500, resizable
shazamShazamSh/app/shazam@prox-os/os-apps/shazam860 x 580, resizable
momentsMomentsMm/app/moments@prox-os/os-apps/moments900 x 620, resizable
pianoPianoPi/app/piano@prox-os/os-apps/piano900 x 600, resizable
musicMusic MemoryMu/app/music@prox-os/os-apps/music-memory1180 x 760, min 800 x 560, resizable
music-playerMusic PlayerMp/app/music-player@prox-os/os-apps/music1180 x 760, min 800 x 560, resizable
proxied-spaceProxied Spaces HomePx/app-spaces/home@prox-os/os-apps/proxied-space1240 x 780, min 880 x 600, resizable
slidepadSlidepadSl/app-spaces/slidepad@prox-os/os-apps/slidepad980 x 640, min 720 x 480, resizable
awesome-github-radarAwesome GitHub RadarGh/app/awesome-github-radar@prox-os/os-apps/awesome-github-radar920 x 620, resizable
rss-knowledge-inboxRSS Knowledge InboxRi/app/rss-knowledge-inbox@prox-os/os-apps/rss-knowledge-inbox920 x 620, resizable
ai-context-builderAI Context BuilderAi/app/ai-context-builder@prox-os/os-apps/ai-context-builder940 x 640, resizable
ai-question-trackerAI Question TrackerAq/app/ai-question-tracker@prox-os/os-apps/ai-question-tracker1120 x 740, min 780 x 560, resizable
subscription-trackerSubscription TrackerSt/app/subscription-tracker@prox-os/os-apps/subscription-tracker1080 x 720, min 760 x 540, resizable
market-watchMarket WatchMw/app/market-watch@prox-os/os-apps/market-watch1080 x 720, min 760 x 540, resizable
studioProduct Studio HubPs/app-hub/product-studio@prox-os/os-apps/platform1120 x 760, min 760 x 520, resizable
studio-adminProx StudioSt/app-admin/studio@prox-os/os-apps/platform1120 x 760, min 760 x 520, resizable
spacesSpace GallerySg/app-os/spaces@prox-os/os-apps/platform1120 x 760, min 760 x 520, resizable
profileProfile / OS HomeOh/app-os/profile@prox-os/os-apps/platform1120 x 760, min 760 x 520, resizable
developerDeveloper Platform HubDh/app-hub/developer-platform@prox-os/os-apps/platform1120 x 760, min 760 x 520, resizable
developer-adminDeveloper ConsoleDc/app-admin/developer@prox-os/os-apps/platform1120 x 760, min 760 x 520, resizable
agent-controlAI Agent Control Plane HubAc/app-hub/agent-control-plane@prox-os/os-apps/platform1120 x 760, min 760 x 520, resizable
personal-dataPersonal Data Sovereignty HubPd/app-hub/personal-data-sovereignty@prox-os/os-apps/platform1120 x 760, min 760 x 520, resizable
connectorsConnectors HubCn/app-hub/connectors@prox-os/os-apps/platform1120 x 760, min 760 x 520, resizable
launcher-hubLauncher HubLh/app-hub/launcher@prox-os/os-apps/platform1120 x 760, min 760 x 520, resizable
design-system-hubDesign System HubDs/app-hub/design-system@prox-os/os-apps/platform1120 x 760, min 760 x 520, resizable
live-centerLive CenterLc/app-hub/live-center@prox-os/os-apps/platform1120 x 760, min 760 x 520, resizable
permissionsPermission CenterPc/app-os/permissions@prox-os/os-apps/platform1120 x 760, min 760 x 520, resizable
mcpMCP GatewayMcp/app-os/mcp@prox-os/os-apps/platform1120 x 760, min 760 x 520, resizable
growthGrowth AdminGl/app-admin/growth@prox-os/os-apps/platform1120 x 760, min 760 x 520, resizable
awesome-radarAwesome Radar PreviewAr/app/awesome-radar@prox-os/os-apps/platform1120 x 760, min 760 x 520, resizable
rss-inboxRSS Inbox PreviewRi/app/rss-inbox@prox-os/os-apps/platform1120 x 760, min 760 x 520, resizable
adminAdminAd/app-admin/admin@prox-os/os-apps/admin900 x 620, resizable
git-analyticsGit AnalyticsGit/app-admin/git-analytics@prox-os/admin-apps/git-analytics1180 x 760, min 860 x 560, resizable
monitor-adminAdmin MonitorAm/app-admin/monitor@prox-os/os-apps/monitor1060 x 720, min 760 x 520, resizable
monitorOperations & Observability HubMo/app-hub/operations-observability@prox-os/os-apps/monitor1180 x 780, min 820 x 560, resizable
app-storeApp StoreAs/app-os/app-store@prox-os/os-apps/app-store940 x 640, resizable
app-mapApp MapMap/app-os/app-map@prox-os/os-apps/app-map1180 x 760, min 820 x 560, resizable
os-aboutAbout Prox OSAb/app-os/about@prox-os/os-apps/about-prox-os1040 x 700, min 760 x 520, resizable
deployDeployDp/app-os/deploy@prox-os/os-apps/deploy940 x 640, resizable
pricingPricingPr$/app-os/pricing@prox-os/os-apps/pricing1040 x 720, min 760 x 520, resizable
commerce-revenueCommerce & Revenue HubCr/app-hub/commerce-revenue@prox-os/os-apps/pricing1160 x 760, min 760 x 520, resizable
os-tipsTipsTp/app-os/tips@prox-os/os-apps/tips1080 x 720, min 760 x 540, resizable
sponsorSponsorSp/app-os/sponsor@prox-os/os-apps/sponsor1120 x 760, min 780 x 540, resizable
os-badgesOS BadgesBd/app-os/badges@prox-os/os-apps/badges1120 x 740, min 780 x 540, resizable
governanceGovernance ConsoleGv/app-os/governance@prox-os/os-apps/governance1180 x 760, min 820 x 560, resizable
trust-centerTrust CenterTc/app-os/trust-center@prox-os/os-apps/trust-center1180 x 780, min 820 x 560, resizable
join-usJoin UsJu/app-os/join-us@prox-os/os-apps/join-us1120 x 740, min 780 x 540, resizable
roadmapRoadmapRd/app-os/roadmap@prox-os/os-apps/roadmap1120 x 720, min 780 x 540, resizable
holaHolaHo/app-os/hola@prox-os/os-apps/hola760 x 560, min 620 x 460, resizable
dev-toolsDeveloper ToolsDt/app-dev/tools@prox-os/os-apps/developer-tools900 x 620, resizable
developer-route-mapRoute MapRm/app-dev/route-map@prox-os/os-apps/developer-route-map980 x 680, resizable
community-adminCommunity AdminCa/app-admin/community@prox-os/os-apps/community900 x 620, resizable
communityCommunity Spaces HubCo/app-hub/community-spaces@prox-os/os-apps/community1180 x 760, resizable
keyboard-shortcutsKeyboard shortcutsKs/app-user/keyboard-shortcutsKeyboardShortcutsApp760 x 560, resizable
chatosChatOSCh/app/chatos@prox-os/os-apps/chatos900 x 640, resizable
notificationsNotificationsNo/app-user/notifications@prox-os/os-apps/notifications860 x 620, resizable
activityTimelineAct/app-user/activity@prox-os/os-apps/activity1120 x 740, min 780 x 540, resizable
connector-wallConnector WallCw/app-connectors/wall@prox-os/os-apps/user-connectors1120 x 740, min 760 x 540, resizable
game-connectorsGame ConnectorsGc/app-connectors/game@prox-os/os-apps/game-connectors1180 x 760, min 820 x 560, resizable
user-calendarCalendarCal/app-connectors/calendar@prox-os/os-apps/user-connectors1120 x 740, min 760 x 540, resizable
user-chatChatCh/app-connectors/chat@prox-os/os-apps/user-connectors1120 x 740, min 760 x 540, resizable
user-emailEmailEm/app-connectors/email@prox-os/os-apps/user-connectors1120 x 740, min 760 x 540, resizable
user-weatherWeatherWe/app-connectors/weather@prox-os/os-apps/user-connectors1040 x 740, min 760 x 540, resizable
user-messagesMessagesMsg/app-connectors/messages@prox-os/os-apps/user-connectors1120 x 740, min 760 x 540, resizable
user-contactsContactsCo/app-connectors/contacts@prox-os/os-apps/user-connectors1120 x 740, min 760 x 540, resizable
user-filesFilesFi/app-connectors/files@prox-os/os-apps/user-connectors1120 x 740, min 760 x 540, resizable
user-notesNotesNo/app-connectors/notes@prox-os/os-apps/user-connectors1120 x 740, min 760 x 540, resizable
user-tasksTasksTa/app-connectors/tasks@prox-os/os-apps/user-connectors1120 x 740, min 760 x 540, resizable
user-bookmarksBookmarksBo/app-connectors/bookmarks@prox-os/os-apps/user-connectors1120 x 740, min 760 x 540, resizable
user-photosPhotosPh/app-connectors/photos@prox-os/os-apps/user-connectors1120 x 740, min 760 x 540, resizable
user-projectsProjectsPj/app-connectors/projects@prox-os/os-apps/user-connectors1120 x 740, min 760 x 540, resizable
user-secretsSecretsSec/app-connectors/secrets@prox-os/os-apps/user-connectors1120 x 740, min 760 x 540, resizable
user-placesPlacesPl/app-connectors/places@prox-os/os-apps/user-connectors1120 x 740, min 760 x 540, resizable
user-healthHealthHe/app-connectors/health@prox-os/os-apps/user-connectors1120 x 740, min 760 x 540, resizable
user-project-crmProject CRMCrm/app-connectors/project-crm@prox-os/os-apps/user-connectors1120 x 740, min 760 x 540, resizable
user-knowledge-graphKnowledge GraphKg/app-connectors/knowledge-graph@prox-os/os-apps/user-connectors1120 x 740, min 760 x 540, resizable
user-browser-activityBrowser ActivityBa/app-connectors/browser-activity@prox-os/os-apps/user-connectors1120 x 740, min 760 x 540, resizable
user-profileUser ProfileUp/app-user/user-profile@prox-os/os-apps/user-profile720 x 560, resizable
visitorVisitorVi/app-user/visitor@prox-os/os-apps/visitor980 x 680, min 720 x 520, resizable
user-walletProx WalletWa/app-connectors/wallet@prox-os/os-apps/user-wallet1080 x 720, min 760 x 540, resizable
resumeResumeRe/app/resume@prox-os/os-apps/resume780 x 640, resizable
display-optionsDisplay optionsDi/app-user/display-optionsDisplayOptionsApp600 x 640, fixed resize, fixed maximize

Most package apps use runtime.kind: "os-package" and declare their sourcePackage from the category package that owns the implementation. The /app-dev iframe apps use runtime.kind: "iframe" with templates in @prox-os/app-registry and are exposed by the shell registry in all builds; production URLs still need appropriate Access boundaries. esmadrider-me is the first production-oriented external iframe under /app-iframe (template packages/runtime/app-registry/src/manifests/esmadrider-me.ts). Developer Tools consumes development diagnostics through AppRuntimeContext. Keyboard shortcuts and Display options remain runtime.kind: "local-module" shell control apps.

Alma is intentionally not listed as a normal app manifest. It is a Shell Surface that lives beside the workspace and can open registered apps through structured OS actions. ChatOS remains the registered app-mode archive and text surface for sidecar conversations and logs.

App ids should use kebab-case without dots or other punctuation. The manifest routing.routeBase is the canonical launch base and may use a shorter product slug when the stable user-facing route should differ from the internal app id, for example airtable-viewer at /app/airtable.

Future Manifest Shape

The current ShellAppManifest already includes:

  • id, title, shortTitle, icon, description
  • category, accent, status, ownership
  • desktopPlacement, routeGroup, routing.routeBase
  • runtime.kind, runtime.module
  • window.defaultWidth, window.defaultHeight, window.resizable, optional window.maximizable
  • optional window.minWidth, window.minHeight
  • permissions

routing also declares route ownership and bridge preferences through mode, owner, defaultPath, supportsDeepLink, and preferredUrlMode. See app-routing.md for the app-level contract.

Future OsAppManifest should add (see also app-namespace-and-domain-strategy.md):

  • namespace / owner handle and mutable slug with aliases and redirect metadata
  • version
  • sourcePackage or sourceUrl
  • dataScopes
  • apiDependencies
  • capabilities
  • featureFlags
  • i18nNamespace
  • richer navigation metadata for app-internal routes
  • lifecycle hooks for mount, suspend, resume, and close
  • security metadata for sandboxing and external links

The first-party package target is now the appropriate category package under packages/apps/*-apps, exposed through runtime.kind: "os-package". New apps should choose a category package first, export a manifest from that package's root barrel, and then be imported into the shell registry. Only OS-level apps belong in packages/apps/system-apps.

Relationship To Window Manager

The registry describes what can be opened. The window manager decides what is open now.

Flow:

  1. Shell receives an app open request.
  2. appRegistry validates the app and provides title, icon, route, permissions, and default window size.
  3. useShellStore.openApp creates or focuses a WindowInstance.
  4. WindowLayer renders AppWindow.
  5. AppRuntime reads the manifest, builds AppRuntimeContext, and delegates local component lookup to the app renderer map.

The window manager should not hardcode app UI. It should only use registry metadata needed for window creation and presentation.

Local app renderers are centralized in apps/os-shell/src/apps/localAppComponents.tsx as a static renderer map. Package apps are imported there as a bridge while AppRuntime.tsx stays focused on runtime context and iframe hosting.

On this page