Skip to content

Campus SDK surface ​

Campus SDK is a library of stable Campus-owned primitives. It is not a product framework and does not own app rendering, state management, hydration, routing, or product-domain behavior.

Canonical browser entry ​

js
import { createCampusApp } from '/assets/campus_sdk/campus_browser.js'

const campus = createCampusApp({ appId: 'example-app' })
render()
await campus.ready()

Construction is synchronous. Capability methods perform launch synchronization internally. This matches ordinary browser libraries and framework clients such as Firebase, Supabase, and Stripe: create a client, draw with local state, then call services as needed. It does not introduce a React- style lifecycle or require every app to implement hydrate.

Ownership map ​

CapabilityTyped browser SDKAgent projectionApp-to-app use
App/shell lifecycleready, fail, close, shell.*bounded Campus MCP toolsSDK
Private backend transportbackend.*only when the app publishes a toolprivate SDK
Campus Appsapps.list/search/get/create/fork/install/uninstall/open/start/warm/pause/stopCampus MCP projectionSDK
Account/profileaccount.*Campus MCP projection where safeSDK
Contactscontacts.*Campus MCP projectionSDK
App-local accessaccess.*Campus MCP projection where safeSDK
Permissions/settingspermissions.*, settings.*trusted bounded projectionsSDK
Small private JSONkv()none by defaultSDK
Logical filesfiles.*bounded Campus projectionsSDK
E2E content graphencryptedContent.*bounded Campus projectionsSDK
Keys/recipients/commitmentscrypto.*bounded intent onlySDK
Protected outbound credentialssecrets.*brokered projectionSDK
Financial intent/authorizationspayments.*exact trusted intentSDK
Account event subscriptionsaccountEvents.*no generic event busSDK
Durable backend workflowsCampusServicesClient.runWorkflow, flow.activitynoneSDK + existing MCP/SDK effects
Notificationsnotifications.*Campus MCP projectionSDK
Schedulesschedules.*Campus MCP projectionSDK
Searchsearch.*Campus MCP projectionSDK
Intelligence/speechintelligence.*, speech.*Campus projectionSDK
MCP itselfmcp.*native Agent consumerSDK
Calls, Drop, Calendar, Messages, Mail, Drive, Wallet product operationsno product namespaceapp-owned MCPMCP

The rule is ownership, not implementation location: Campus may execute a reviewed system app tool, but the app manifest still owns its name and schema. Conversely, Campus capabilities remain SDK capabilities even when MCP projects them for Agents.

Naming ​

  • backend, not workload, in app-facing code;
  • kv, not storage or defaults, for bounded keyed JSON;
  • files for logical binary/large objects;
  • encryptedContent for the endpoint-encrypted collaboration graph;
  • accountEvents, not events, because it is not a generic bus;
  • workflow/activity, for durable replay and one named idempotent effect;
  • Agent component, not bot or app kind, for autonomous behavior declared by a Campus App.

CampusApp, storage(), content(), and workload-named browser methods are deprecated compatibility surface. New code uses createCampusApp(). Product classes such as CampusCalls and CampusCalendar are no longer exported.

Execution surfaces ​

SurfaceEntryPurpose
Browser appcreateCampusApp()trusted launch plus typed Campus primitives and MCP client
JavaScript backendCampusServicesClient.fromEnv()installation-scoped Gateway services and leases
Rust backendcampus_sdk::CampusServicesClientnative equivalent
Native Agent MCP client@campus/sdk/account-mcpcaller-filtered account/product MCP catalog over stdio
App MCP providermanifest mcp.toolsapp-owned product contract, using workload/browser/service transport

service transport is reserved for reviewed systemSupplied packages published by Campus. Private or Store packages cannot select a Campus service executor.

Software belongs to people. Campus gives it a durable place to run.