Building FeaturesCross-App Communication

Cross-App Communication

Let the apps in your organization call each other's APIs through Stardeck, and set up the calls from your coding agent.

Independent apps in one organization can call each other through Stardeck: a storefront posting to an accounting product, or a CRM creating invoices when a deal closes. There are no URLs, secrets or auth to manage between apps.

Confirm the products should be separate first. Audience- or device-specific experiences in one product belong in Surfaces. See When to Create a Separate App.

How it works

Apps call each other by slug through Stardeck, never directly. Each app's API routes are detected from its default branch, so other apps and agents can discover them.

flowchart TB
    subgraph setup [Setup]
        direction LR
        B_build[App B's API routes] -- detected from the default branch --> Platform_reg[Stardeck lists the endpoints]
        Platform_reg --> A_discover[Other apps and agents can discover them]
    end

    subgraph runtime [Every cross-app call]
        direction LR
        A[App A] -- call by slug --> Platform[Stardeck]
        Platform -- signed request --> B[App B]
        B -- response --> Platform
        Platform -- response --> A
    end

    setup --> runtime

On every call Stardeck checks permissions, signs the request, routes it to the right deployment and logs it. Redeploys don't break calls, and no secrets are shared between apps.

Set up a call

Work in each app's checkout with your coding agent. It writes the calls with the @stardeck-customer-apps/cross-app package and follows the SKILL.md inside it. One MCP connection reaches every app in your organization, so one agent session can work on both sides. See Work Across Every App. If you build in the browser, give the same prompts to Starcat Developer in each app's Build tab.

1

Expose the API in the app being called

In that app, ask your agent:

Add API routes so other apps can check order status and create new orders. Document each one
with a route.schema.json.

Once the change is on the default branch and its sandbox runs it, click Detect under Published endpoints in the app's Settings → Cross-App, or have your agent run sync_cross_app_endpoints.

2

Grant access

Either turn on Allow all apps to call this project in the called app's Settings → Cross-App, which allows reads only, or add a grant from the calling app's Settings → Cross-App under Outgoing calls, with Read only or Full access. Your agent can create the grant with create_cross_app_grant. See Permissions & Grants.

3

Make the call from the calling app

In the calling app, ask your agent:

When an order is paid, create a journal entry in the accounting app
4

Test it

Mark a test order as paid in the calling app's sandbox, then check Recent calls on either app's Cross-App tab. Your agent can read the same log with list_app_cross_app_calls.

Call an app from your agent

Your coding agent and Starcat can also call an app's API directly, with no code:

  • "What can I call on the invoicing app?"
  • "Get the latest orders from the storefront app"
  • "Check inventory on the warehouse app and update the storefront if anything is out of stock"

The target app needs Allow agent access on in its Cross-App settings. See Agent Cross-App Calling.

Next steps