DocumentsLobeHub
Mobile Router
Mobile Router
Type
Topic
Status
Published
Created
Jul 7, 2026
Updated
Jul 7, 2026
Created by
Dosu Bot
Updated by
Dosu Bot

Mobile Router#

The mobile tRPC router is a dedicated tRPC entrypoint (/trpc/mobile) for the LobeHub React Native app. It is defined in apps/server/src/routers/mobile/index.ts and, per its file header, only includes routers that are actually used by the mobile client. Rather than sharing the full lambdaRouter used by web/desktop clients, mobileRouter mounts a manually maintained, curated subset of the same lambda/ router implementations.

Routers Present on Mobile#

The mobileRouter currently exposes 28 procedures:

agent, agentSkills, aiAgent, aiChat, brief, aiModel, aiProvider, chunk, composio, config, device, document, file, healthcheck, home, knowledgeBase, market, message, plugin, pushToken, session, sessionGroup, subscription (mobile-specific), task, taskTemplate, topic, upload, user

Routers Missing from Mobile (Lambda-only)#

The lambdaRouter exposes ~65 procedures. Notable ones absent from mobile include:

Lambda RouterImpact
userMemories, userMemoryMemory tools unavailable to agents on mobile
search, webBrowsingSearch and web-crawl tool backends not routed
generation, generationBatch, generationTopicImage/media generation not available
asrAutomatic speech recognition not available
workspace, workspace*Workspace management APIs absent
share, exporter, importerExport/import flows not exposed
agentEval, ragEvalEvaluation pipelines not available
notebook, thread, recentAdditional content types not exposed

Critical Gap: Memory Tools#

The userMemories and userMemory routers — which back all memory tool procedures (toolSearchMemory, toolAddActivityMemory, getPersona, etc.) — are present in lambdaRouter but absent from mobileRouter. This causes memory tools to be completely filtered out of the agent tool list on mobile, even when memory is enabled in an agent's profile. The issue is confirmed in #16366: the agent reports having no memory tools and falls back to only plugin-provided tools (e.g., lobe-web-browsing).

How Routers Are Added to Mobile#

Adding a router to mobile is a two-line change: import the router from ../lambda/<name> and register it in the mobileRouter object. Recent examples following this pattern:

  • PR #16360 (merged 2026-06-27): exposed pluginRouter to mobile, enabling the Skill Store install flow
  • PR #14103 (merged 2026-04-23): exposed aiAgentRouter to mobile, enabling Agent Gateway mode

The memory fix would follow the same pattern — adding userMemoriesRouter and userMemoryRouter to apps/server/src/routers/mobile/index.ts .

Execution Plan: A Second Layer of Restriction#

Router availability is a server-side gate. Separately, PR #15669 introduced a centralized resolveExecutionPlan() function that controls device tool availability (e.g., local execution, remote-device proxy) based on an executionTarget value. An executionTarget of 'none' or 'sandbox' blocks device tools regardless of which routers are mounted. This applies uniformly across all clients; it is orthogonal to the mobile router restriction but can further limit what capabilities an agent uses on mobile.