Chataway Developers
Concepts

Dependencies

Apps and connectors your app works with — what the install sheet shows, when your app waits, and what store apps may depend on.

An app can say it works together with other apps and with connectors (hosted MCP servers such as Canva or Notion). You declare them in requires; Chataway shows them on the install sheet, switches them on with your app, and tells the agent which companions are available.

json
"requires": {
  "apps":       [{ "id": "browser-use", "reason": "Opens canva.com when the connector isn't connected" }],
  "connectors": [{ "url": "https://mcp.canva.com/mcp", "reason": "Fast, reliable Canva edits" }],
  "optional":   [{ "id": "media", "reason": "Saves exports into your Media library" }]
}
KindWhat happens
apps — requiredMust be on in the same project. Built-ins are switched on with your app; store apps are installed alongside (the user confirms once, with Install). Until they're on, your app waits — it shows Waiting for Browser with a one-tap Switch on Browser, and none of your tools reach the agent.
connectorsFallbacks by default: the sheet offers Connect (the user signs in with their own account) or skip. A missing connector never blocks your app — handle its absence (e.g. use the Browser instead). Add "required": true only if your app can do nothing without it; then it waits like a required app.
optionalApps (id) or connectors (url) the user may tick on the sheet. Off by default.

Every entry needs a reason (≤ 200 characters) — it's the line the user reads on the sheet.

#No app-to-app calls

Apps never call each other's code. When your app and its companions are on, the agent is told — in the instructions block every provider receives — which companions are available, and it combines their tools itself: e.g. export the design with Canva Studio, then save it with Media. Write your tool descriptions so that composition is obvious.

#What a store app may depend on

DependencyStore app
Built-in apps: browser-use, media, chat-artifacts, computer-use✓
Other store apps (reverse-DNS id, e.g. com.acme.helper) — must be published✓
Connectors (https MCP URL)✓
Apps from GitHub / npm (gh-…, npm-…) or your own app projects (local.…)✗ refused

The validator refuses GitHub and local id shapes, the store refuses ids that aren't published apps, and the desktop installer resolves every dependency against the store again before installing anything. (Apps you install from GitHub may also depend on other GitHub apps with "github": "owner/repo" — each gets its own Unverified install screen first, never a silent install.)

#Updates

Adding a required app or connector in a new version is a widening, like a new grant: the version goes to human review (permissionDiff.requiresAdded), and users must allow it again in each project (Now needs Browser). Removing one, or adding an optional companion, isn't.

#Turning a dependency off

If the user turns off an app others need, Chataway warns first — Canva Studio needs Browser · Turn off anyway — and the dependent app waits until it's back on.