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
| Source | Path | Responsibility |
|---|---|---|
| Composed registry | apps/os-shell/src/apps/registry.ts | Runtime source of truth for route group, window defaults, ownership, permissions, runtime kind, and desktop placement. |
| Proxied App templates | packages/runtime/app-registry | Static iframe-backed templates such as esmadrider-me and /app-dev localhost tools; see packages/runtime/app-registry/README.md. |
| Proxied App Runtime catalog | packages/embed-runtime/src/proxiedCatalog.ts | Catalog for proxied runtime entries. |
| App category packages | packages/apps/*-apps | Product-category app manifests and components. |
| App shared primitives | packages/apps/app-shared | Shared manifest helpers and browser-safe app primitives. |
| App runtime host | apps/os-shell/src/apps/AppRuntime.tsx | Shell-side wrapper that renders local and iframe apps. |
| Local app component map | apps/os-shell/src/apps/localAppComponents.tsx | Host-side map from app ids to package-exported React components. |
| Types | apps/os-shell/src/apps/types.ts | Shell app typing and local metadata. |
| Routes | apps/os-shell/src/router.tsx | Browser 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.
| Package | App ownership |
|---|---|
@prox-os/os-apps | Core OS apps, support, system, trust, governance, and shell-adjacent OS tools. |
@prox-os/user-apps | Personal work, media, workspace, health, profile, and user-owned surfaces. |
@prox-os/user-connector-apps | Mock connector and permission-facing source surfaces. |
@prox-os/dev-apps | Developer tools, route map, and development workbenches. |
@prox-os/admin-apps | Admin, backend, deploy, and operations surfaces. |
@prox-os/game-apps | Browser-native games and game collection surfaces. |
@prox-os/founder-apps | Founder, pricing, roadmap, waitlist, and growth surfaces. |
@prox-os/community-apps | Community and community admin surfaces. |
@prox-os/hub-apps | Platform hub cockpit surfaces. |
@prox-os/app-shared | Shared 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:
| Rule | Behavior |
|---|---|
| Light utility apps | Can opt into globalWindow so they open from Home, Alma, or Cmd+K without forcing Desktop Runtime. |
| Heavy apps and Studio hubs | Default to studio or normal routed OS surfaces. |
| Iframe apps | May advertise fullscreen because their runtime is often better in a larger frame. |
Apps without globalWindow | Must 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:
| Adapter | Meaning |
|---|---|
| Local App | Bundled React module app built with the shell or app package. |
| Route App | App with a stable route that can be rendered by a route host. |
| Frame App | Iframe-backed app with sandbox and fallback states. |
| Proxied App | External app wrapped by Prox OS proxy, bridge, permission, or sandbox policy. Do not rename this technical concept to Portal App. |
| Remote App | Future remotely loaded module or runtime bundle. |
Presentation examples:
| Capability | Possible presentations |
|---|---|
| Pricing, About, and Hola | Desktop Runtime windows and route pages without duplicating UI. |
| Settings | Desktop Runtime window or root console route; not a route-page clone. |
| Future Weather | Desktop Runtime window, Grid widget, Ops review card, Alma suggestion, and Cmd+K command. |
Route Groups
| Group | Prefix | Placement | Meaning |
|---|---|---|---|
app | /app | left desktop folder | Personal work, data, and creative apps. |
app-track | /app-track | left desktop folder near Apps | Personal tracking primitives: People, Places, Devices, Money, Sources, and AI Context. |
app-connectors | /app-connectors | left desktop folder near Track | External platform connector surfaces for imports, sync readiness, permissions, source status, and cache deletion concepts. |
app-edu | /app-edu | left desktop folder near Apps | Learning, study mode, practice labs, notes, reviews, and long-term personal growth surfaces. |
app-health | /app-health | left desktop folder near Education | Health, sleep, dreams, body, mood, mindfulness, and sensitive personal tracking surfaces. |
app-user | /app-user | right desktop folder | Identity, profile, visitor, notifications, shortcuts, display, and preference surfaces. |
app-spaces | /app-spaces | right desktop folder near User Apps | Proxied Spaces home and Slidepad routes for third-party web apps, compatibility, install destinations, and fallback settings. |
app-sports | /app-sports | left desktop folder near Track | Sports memories, matchdays, fan passports, practice logs, equipment, and costs. |
app-game | /app-game | left desktop folder | Browser-native games, iframe game placeholders, and community game experiments. |
app-shell | /app-shell | right desktop folder | Target group for shell-coupled apps that remain inside apps/os-shell. Not implemented in the current router yet. |
app-admin | /app-admin | bottom-right desktop folder | Internal admin cockpit for operations, real data readiness, users, waitlist, feedback, audit, permissions, jobs, storage, and billing. |
app-dev | /app-dev | bottom-right desktop folder next to Admin | Local development tools, API docs, contracts, mock scenarios, Storybook, Scalar, architecture graphs, route maps, and debugging surfaces. |
app-iframe | /app-iframe | left desktop folder (Proxied Apps) | External and standalone apps proxied into managed OS windows; iframe is the current implementation detail. |
app-os | /app-os | right desktop folder | Reusable OS, official team, community, and platform operations apps that can move toward packages/apps/system-apps. |
app-hub | /app-hub | right desktop folder after OS Apps | Productized 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 route | Purpose |
|---|---|
/app-track/people | People and relationship memory entities. |
/app-track/places | Reusable place entities for scene apps. |
/app-track/devices | Devices as life capture and work media. |
/app-track/money | Cross-app spending and experience value context. |
/app-track/sources | Data provenance, source confidence, and permission status. |
/app-track/ai-context | Prompt 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:
| Route | Theme |
|---|---|
/app/food | Meals, restaurants, costs, people, and sources. |
/app/work | Personal work sessions, projects, tools, and output log. |
/app/books | Bookshelf, reading timeline, notes, stats, and source links. |
/app/series | Long-form watching tracker. |
/app/music | Music listening memories. |
/app/music-memory | Songs as memory anchors across people, places, and moods. |
/app/events | Live and event experiences. |
/app/tickets | Ticket and stub memories. |
/app/photo-roll | Photo context enrichment and Moments bridge. |
/app/wishlist | Unified wishlist across life, media, travel, and tools. |
/app/reading | Open-web reading log with AI summaries. |
/app/bookmarks | Saved links with folders, tags, imports, and stale-link checks. |
/app/podcasts | Podcast listening log and notes. |
/app/collections | Personal artifacts, categories, value, storage, and timeline. |
/app/local-services | City services, costs, documents, places, and safety notes. |
/app/documents-vault | Semantic life-admin files, cases, deadlines, and sources. |
/app/ai-team | Personal AI workers, task timeline, permissions, and AI Context links. |
/app/personal-blog-studio | Drafts, channels, calendar, SEO, assets, and AI writing cockpit. |
/app/public-profile-builder | Public identity, links, portfolio, narrative, and preview. |
/app/project-museum | Project history, artifacts, prompts, milestones, and AI trail. |
/app/europe-planner | Europe life planning cockpit; not legal, tax, or immigration advice. |
/app/madrid | Madrid activity explorer for city culture, neighborhoods, and radar entrypoints. |
/app/madrid-cine-radar | Madrid cinema decision engine for language, subtitles, duration, ticket status, venues, and official links. |
/app/madrid-cine-radar-b2b | Partner 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.
| appId | Title | Icon | Route | Entry component | Window |
|---|---|---|---|---|---|
esmadrider-me | esmadrider.me | Es | /app-iframe/esmadrider-me | iframe dev http://localhost:3120/?mode=os-app, prod https://esmadrider.me/?mode=os-app | 960 x 720, min 640 x 480, resizable |
projects | Projects | Pr | /app/projects | @prox-os/os-apps/projects | 880 x 580, resizable |
dreams | Dreams | Dr | /app-health/dreams | @prox-os/os-apps/dreams | 1040 x 720, min 720 x 520, resizable |
ts-fullstack | TS Fullstack | Ts | /app-edu/ts-fullstack | @prox-os/os-apps/ts-fullstack | 1160 x 760, min 820 x 560, resizable |
health | Health | Hl | /app-health/health | @prox-os/os-apps/health | 1160 x 760, min 820 x 560, resizable |
game-records | Game Records | Gr | /app/game-records | @prox-os/os-apps/game-records | 1160 x 760, min 820 x 560, resizable |
places | Places | Plc | /app/places | @prox-os/os-apps/places | 1160 x 760, min 820 x 560, resizable |
movies | Movies | Mv | /app/movies | @prox-os/os-apps/movies | 1160 x 760, min 820 x 560, resizable |
news-rss | News RSS | Nr | /app/news-rss | @prox-os/os-apps/news-rss | 1180 x 760, min 840 x 560, resizable |
madrid | Madrid | Md | /app/madrid | @prox-os/user-apps/madrid | 1220 x 800, min 900 x 620, resizable |
madrid-cine-radar | Madrid Cine Radar | Mcr | /app/madrid-cine-radar | @prox-os/user-apps/madrid-cine-radar | 1240 x 820, min 900 x 620, resizable |
madrid-cine-radar-b2b | Madrid Cine Radar B2B | Mcb | /app/madrid-cine-radar-b2b | @prox-os/user-apps/madrid-cine-radar-b2b | 1220 x 800, min 900 x 620, resizable |
stock-track | Stock Track | Stk | /app/stock-track | @prox-os/os-apps/stock-track | 1160 x 760, min 820 x 560, resizable |
ai-medium | AI Medium | Am | /app/ai-medium | @prox-os/os-apps/ai-medium | 1180 x 760, min 840 x 560, resizable |
games-hub | Games | Ga | /app-game | @prox-os/os-apps/games | 980 x 680, min 720 x 520, resizable |
snake | Snake | Sn | /app-game/snake | @prox-os/os-apps/games | 760 x 700, min 560 x 520, resizable |
tile-merge | Tile Merge | Tm | /app-game/tile-merge | @prox-os/os-apps/games | 820 x 720, min 560 x 540, resizable |
minesweeper | Minesweeper | Ms | /app-game/minesweeper | @prox-os/os-apps/games | 860 x 720, min 600 x 540, resizable |
memory-cards | Memory Cards | Mc | /app-game/memory-cards | @prox-os/os-apps/games | 860 x 720, min 600 x 540, resizable |
breakout | Breakout | Bo | /app-game/breakout | @prox-os/os-apps/games | 940 x 700, min 640 x 520, resizable |
pong | Pong | Po | /app-game/pong | @prox-os/os-apps/games | 900 x 660, min 620 x 500, resizable |
falling-blocks | Falling Blocks | Fb | /app-game/falling-blocks | @prox-os/os-apps/games | 880 x 780, min 620 x 560, resizable |
founder-suite | Founder Suite | Fs | /app-hub/founder-suite | @prox-os/os-apps/founder-suite | 1180 x 780, min 820 x 560, resizable |
data-room | Data Room | Da | /app-user/data-room | @prox-os/os-apps/data-room | 900 x 600, resizable |
data-graph | Data Graph | Dg | /app-user/data-graph | @prox-os/os-apps/data-graph | 1180 x 760, min 820 x 560, resizable |
prompt-studio | Prompt Studio | Ps | /app-user/prompt-studio | @prox-os/os-apps/prompt-studio | 1180 x 760, min 820 x 560, resizable |
airtable-viewer | Airtable Viewer | Av | /app/airtable | @prox-os/os-apps/airtable-viewer | 1120 x 720, min 780 x 540, resizable |
assets | Assets | At | /app/assets | @prox-os/os-apps/assets | 920 x 620, resizable |
automations | Automations | Au | /app-user/automations | @prox-os/os-apps/automations | 840 x 560, resizable |
system | System | Sy | /app-admin/system | @prox-os/os-apps/system | 840 x 560, fixed resize |
backend | Backend Foundation | Backend | /app-admin/backend | @prox-os/os-apps/backend-foundation | 1180 x 760, min 820 x 560, resizable |
connector-sandbox | Connector Sandbox | ConnectorSandbox | /app-admin/connector-sandbox | @prox-os/os-apps/backend-foundation | 1180 x 760, min 820 x 560, resizable |
mock-lab | Mock Lab | MockLab | /app-admin/mock-lab | @prox-os/os-apps/backend-foundation | 1180 x 760, min 820 x 560, resizable |
developer-architecture | Architecture | Network | /app-dev/architecture | @prox-os/os-apps/architecture | 1100 x 720, min 760 x 520, resizable |
api-worker | API Worker | AdminAPI | /app-dev/api-worker | iframe http://localhost:8787 | 980 x 620, min 680 x 460, resizable |
ui-workshop | UI Workshop | AdminUI | /app-dev/ui-workshop | iframe http://localhost:6006 | 1180 x 760, min 760 x 520, resizable |
docs | Docs | AdminDocs | /app-dev/docs | iframe dev http://localhost:3100/docs; prod https://docs.prox-os.com/docs | 1120 x 740, min 720 x 500, resizable |
nx-graph | Nx Graph | AdminGraph | /app-dev/nx-graph | iframe dev http://localhost:4211/projects; prod https://docs.prox-os.com/tools/nx-graph/ | 1160 x 740, min 760 x 520, resizable |
scalar-api | Scalar | AdminScalar | /app-dev/scalar-api | iframe Scalar UI at api.prox-os.com/docs (OpenAPI from Worker) | 1120 x 740, min 720 x 500, resizable |
shazam | Shazam | Sh | /app/shazam | @prox-os/os-apps/shazam | 860 x 580, resizable |
moments | Moments | Mm | /app/moments | @prox-os/os-apps/moments | 900 x 620, resizable |
piano | Piano | Pi | /app/piano | @prox-os/os-apps/piano | 900 x 600, resizable |
music | Music Memory | Mu | /app/music | @prox-os/os-apps/music-memory | 1180 x 760, min 800 x 560, resizable |
music-player | Music Player | Mp | /app/music-player | @prox-os/os-apps/music | 1180 x 760, min 800 x 560, resizable |
proxied-space | Proxied Spaces Home | Px | /app-spaces/home | @prox-os/os-apps/proxied-space | 1240 x 780, min 880 x 600, resizable |
slidepad | Slidepad | Sl | /app-spaces/slidepad | @prox-os/os-apps/slidepad | 980 x 640, min 720 x 480, resizable |
awesome-github-radar | Awesome GitHub Radar | Gh | /app/awesome-github-radar | @prox-os/os-apps/awesome-github-radar | 920 x 620, resizable |
rss-knowledge-inbox | RSS Knowledge Inbox | Ri | /app/rss-knowledge-inbox | @prox-os/os-apps/rss-knowledge-inbox | 920 x 620, resizable |
ai-context-builder | AI Context Builder | Ai | /app/ai-context-builder | @prox-os/os-apps/ai-context-builder | 940 x 640, resizable |
ai-question-tracker | AI Question Tracker | Aq | /app/ai-question-tracker | @prox-os/os-apps/ai-question-tracker | 1120 x 740, min 780 x 560, resizable |
subscription-tracker | Subscription Tracker | St | /app/subscription-tracker | @prox-os/os-apps/subscription-tracker | 1080 x 720, min 760 x 540, resizable |
market-watch | Market Watch | Mw | /app/market-watch | @prox-os/os-apps/market-watch | 1080 x 720, min 760 x 540, resizable |
studio | Product Studio Hub | Ps | /app-hub/product-studio | @prox-os/os-apps/platform | 1120 x 760, min 760 x 520, resizable |
studio-admin | Prox Studio | St | /app-admin/studio | @prox-os/os-apps/platform | 1120 x 760, min 760 x 520, resizable |
spaces | Space Gallery | Sg | /app-os/spaces | @prox-os/os-apps/platform | 1120 x 760, min 760 x 520, resizable |
profile | Profile / OS Home | Oh | /app-os/profile | @prox-os/os-apps/platform | 1120 x 760, min 760 x 520, resizable |
developer | Developer Platform Hub | Dh | /app-hub/developer-platform | @prox-os/os-apps/platform | 1120 x 760, min 760 x 520, resizable |
developer-admin | Developer Console | Dc | /app-admin/developer | @prox-os/os-apps/platform | 1120 x 760, min 760 x 520, resizable |
agent-control | AI Agent Control Plane Hub | Ac | /app-hub/agent-control-plane | @prox-os/os-apps/platform | 1120 x 760, min 760 x 520, resizable |
personal-data | Personal Data Sovereignty Hub | Pd | /app-hub/personal-data-sovereignty | @prox-os/os-apps/platform | 1120 x 760, min 760 x 520, resizable |
connectors | Connectors Hub | Cn | /app-hub/connectors | @prox-os/os-apps/platform | 1120 x 760, min 760 x 520, resizable |
launcher-hub | Launcher Hub | Lh | /app-hub/launcher | @prox-os/os-apps/platform | 1120 x 760, min 760 x 520, resizable |
design-system-hub | Design System Hub | Ds | /app-hub/design-system | @prox-os/os-apps/platform | 1120 x 760, min 760 x 520, resizable |
live-center | Live Center | Lc | /app-hub/live-center | @prox-os/os-apps/platform | 1120 x 760, min 760 x 520, resizable |
permissions | Permission Center | Pc | /app-os/permissions | @prox-os/os-apps/platform | 1120 x 760, min 760 x 520, resizable |
mcp | MCP Gateway | Mcp | /app-os/mcp | @prox-os/os-apps/platform | 1120 x 760, min 760 x 520, resizable |
growth | Growth Admin | Gl | /app-admin/growth | @prox-os/os-apps/platform | 1120 x 760, min 760 x 520, resizable |
awesome-radar | Awesome Radar Preview | Ar | /app/awesome-radar | @prox-os/os-apps/platform | 1120 x 760, min 760 x 520, resizable |
rss-inbox | RSS Inbox Preview | Ri | /app/rss-inbox | @prox-os/os-apps/platform | 1120 x 760, min 760 x 520, resizable |
admin | Admin | Ad | /app-admin/admin | @prox-os/os-apps/admin | 900 x 620, resizable |
git-analytics | Git Analytics | Git | /app-admin/git-analytics | @prox-os/admin-apps/git-analytics | 1180 x 760, min 860 x 560, resizable |
monitor-admin | Admin Monitor | Am | /app-admin/monitor | @prox-os/os-apps/monitor | 1060 x 720, min 760 x 520, resizable |
monitor | Operations & Observability Hub | Mo | /app-hub/operations-observability | @prox-os/os-apps/monitor | 1180 x 780, min 820 x 560, resizable |
app-store | App Store | As | /app-os/app-store | @prox-os/os-apps/app-store | 940 x 640, resizable |
app-map | App Map | Map | /app-os/app-map | @prox-os/os-apps/app-map | 1180 x 760, min 820 x 560, resizable |
os-about | About Prox OS | Ab | /app-os/about | @prox-os/os-apps/about-prox-os | 1040 x 700, min 760 x 520, resizable |
deploy | Deploy | Dp | /app-os/deploy | @prox-os/os-apps/deploy | 940 x 640, resizable |
pricing | Pricing | Pr$ | /app-os/pricing | @prox-os/os-apps/pricing | 1040 x 720, min 760 x 520, resizable |
commerce-revenue | Commerce & Revenue Hub | Cr | /app-hub/commerce-revenue | @prox-os/os-apps/pricing | 1160 x 760, min 760 x 520, resizable |
os-tips | Tips | Tp | /app-os/tips | @prox-os/os-apps/tips | 1080 x 720, min 760 x 540, resizable |
sponsor | Sponsor | Sp | /app-os/sponsor | @prox-os/os-apps/sponsor | 1120 x 760, min 780 x 540, resizable |
os-badges | OS Badges | Bd | /app-os/badges | @prox-os/os-apps/badges | 1120 x 740, min 780 x 540, resizable |
governance | Governance Console | Gv | /app-os/governance | @prox-os/os-apps/governance | 1180 x 760, min 820 x 560, resizable |
trust-center | Trust Center | Tc | /app-os/trust-center | @prox-os/os-apps/trust-center | 1180 x 780, min 820 x 560, resizable |
join-us | Join Us | Ju | /app-os/join-us | @prox-os/os-apps/join-us | 1120 x 740, min 780 x 540, resizable |
roadmap | Roadmap | Rd | /app-os/roadmap | @prox-os/os-apps/roadmap | 1120 x 720, min 780 x 540, resizable |
hola | Hola | Ho | /app-os/hola | @prox-os/os-apps/hola | 760 x 560, min 620 x 460, resizable |
dev-tools | Developer Tools | Dt | /app-dev/tools | @prox-os/os-apps/developer-tools | 900 x 620, resizable |
developer-route-map | Route Map | Rm | /app-dev/route-map | @prox-os/os-apps/developer-route-map | 980 x 680, resizable |
community-admin | Community Admin | Ca | /app-admin/community | @prox-os/os-apps/community | 900 x 620, resizable |
community | Community Spaces Hub | Co | /app-hub/community-spaces | @prox-os/os-apps/community | 1180 x 760, resizable |
keyboard-shortcuts | Keyboard shortcuts | Ks | /app-user/keyboard-shortcuts | KeyboardShortcutsApp | 760 x 560, resizable |
chatos | ChatOS | Ch | /app/chatos | @prox-os/os-apps/chatos | 900 x 640, resizable |
notifications | Notifications | No | /app-user/notifications | @prox-os/os-apps/notifications | 860 x 620, resizable |
activity | Timeline | Act | /app-user/activity | @prox-os/os-apps/activity | 1120 x 740, min 780 x 540, resizable |
connector-wall | Connector Wall | Cw | /app-connectors/wall | @prox-os/os-apps/user-connectors | 1120 x 740, min 760 x 540, resizable |
game-connectors | Game Connectors | Gc | /app-connectors/game | @prox-os/os-apps/game-connectors | 1180 x 760, min 820 x 560, resizable |
user-calendar | Calendar | Cal | /app-connectors/calendar | @prox-os/os-apps/user-connectors | 1120 x 740, min 760 x 540, resizable |
user-chat | Chat | Ch | /app-connectors/chat | @prox-os/os-apps/user-connectors | 1120 x 740, min 760 x 540, resizable |
user-email | Em | /app-connectors/email | @prox-os/os-apps/user-connectors | 1120 x 740, min 760 x 540, resizable | |
user-weather | Weather | We | /app-connectors/weather | @prox-os/os-apps/user-connectors | 1040 x 740, min 760 x 540, resizable |
user-messages | Messages | Msg | /app-connectors/messages | @prox-os/os-apps/user-connectors | 1120 x 740, min 760 x 540, resizable |
user-contacts | Contacts | Co | /app-connectors/contacts | @prox-os/os-apps/user-connectors | 1120 x 740, min 760 x 540, resizable |
user-files | Files | Fi | /app-connectors/files | @prox-os/os-apps/user-connectors | 1120 x 740, min 760 x 540, resizable |
user-notes | Notes | No | /app-connectors/notes | @prox-os/os-apps/user-connectors | 1120 x 740, min 760 x 540, resizable |
user-tasks | Tasks | Ta | /app-connectors/tasks | @prox-os/os-apps/user-connectors | 1120 x 740, min 760 x 540, resizable |
user-bookmarks | Bookmarks | Bo | /app-connectors/bookmarks | @prox-os/os-apps/user-connectors | 1120 x 740, min 760 x 540, resizable |
user-photos | Photos | Ph | /app-connectors/photos | @prox-os/os-apps/user-connectors | 1120 x 740, min 760 x 540, resizable |
user-projects | Projects | Pj | /app-connectors/projects | @prox-os/os-apps/user-connectors | 1120 x 740, min 760 x 540, resizable |
user-secrets | Secrets | Sec | /app-connectors/secrets | @prox-os/os-apps/user-connectors | 1120 x 740, min 760 x 540, resizable |
user-places | Places | Pl | /app-connectors/places | @prox-os/os-apps/user-connectors | 1120 x 740, min 760 x 540, resizable |
user-health | Health | He | /app-connectors/health | @prox-os/os-apps/user-connectors | 1120 x 740, min 760 x 540, resizable |
user-project-crm | Project CRM | Crm | /app-connectors/project-crm | @prox-os/os-apps/user-connectors | 1120 x 740, min 760 x 540, resizable |
user-knowledge-graph | Knowledge Graph | Kg | /app-connectors/knowledge-graph | @prox-os/os-apps/user-connectors | 1120 x 740, min 760 x 540, resizable |
user-browser-activity | Browser Activity | Ba | /app-connectors/browser-activity | @prox-os/os-apps/user-connectors | 1120 x 740, min 760 x 540, resizable |
user-profile | User Profile | Up | /app-user/user-profile | @prox-os/os-apps/user-profile | 720 x 560, resizable |
visitor | Visitor | Vi | /app-user/visitor | @prox-os/os-apps/visitor | 980 x 680, min 720 x 520, resizable |
user-wallet | Prox Wallet | Wa | /app-connectors/wallet | @prox-os/os-apps/user-wallet | 1080 x 720, min 760 x 540, resizable |
resume | Resume | Re | /app/resume | @prox-os/os-apps/resume | 780 x 640, resizable |
display-options | Display options | Di | /app-user/display-options | DisplayOptionsApp | 600 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,descriptioncategory,accent,status,ownershipdesktopPlacement,routeGroup,routing.routeBaseruntime.kind,runtime.modulewindow.defaultWidth,window.defaultHeight,window.resizable, optionalwindow.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 mutableslugwithaliasesand redirect metadataversionsourcePackageorsourceUrldataScopesapiDependenciescapabilitiesfeatureFlagsi18nNamespace- richer navigation metadata for app-internal routes
lifecyclehooks for mount, suspend, resume, and closesecuritymetadata 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:
- Shell receives an app open request.
appRegistryvalidates the app and provides title, icon, route, permissions, and default window size.useShellStore.openAppcreates or focuses aWindowInstance.WindowLayerrendersAppWindow.AppRuntimereads the manifest, buildsAppRuntimeContext, 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.