Troupeby AliveDocsSign in

Troupe Cloud

Troupe Cloud

Troupe Cloud is Troupe's runtime as a hosted service: your team starts simulators and emulators on Troupe's machines, builds apps from source, and watches and drives the devices from a browser, a script or a coding agent. This page says what the service adds to the open-source runtime, what is available today, and how to get in.

What it adds

Everything in the open-source packages works on your own Mac with no account. Troupe Cloud adds what a shared service needs.

PartWhat it isRead
Accounts and organizationsA person signs in; an organization owns projects, members, keys and limitsSigning in, Organizations
ProjectsWhat every device session, build and test run belongs toOrganizations
Hosted devicesDevice sessions on Troupe's hosts, with the same procedures and the same live stream as a local runtimeDevice sessions
BuildsAn app built from a git ref or an uploaded tarball, kept as an artifact a device installsBuilds
SigningApp Store Connect keys and Android upload keystores for store buildsSigning credentials
Test runsA troupe test suite split into shards, each with its own devicesTest runs
Access for machinesAPI keys, and token exchange for CI systems that have their own identityAPI keys, CI without stored secrets
Metering and limitsWhat ran, per month, and how much may run at onceUsage and limits
MCPThe device tools at a hosted endpoint, with OAuth or an API keyMCP in the cloud

What is available today

FeatureStatus
Accounts, organizations, projects, members and invitationsAvailable
API keys, trusted issuers for CI, sign-in connectionsAvailable
Device sessions, in the web app, over the API and over MCPAvailable
Builds with the expo and xcode presetsAvailable
Usage and limitsAvailable
Signing with stored credentialsNot enabled yet
Test runsNot available yet

Addresses

WhatAddress
The web apphttps://troupe.ali.ve/cloud
The APIhttps://api.troupe.ali.ve

The API address is what troupe login --cloud, API keys, the client and MCP clients use. Under it:

PathServes
/v1/<group>/<operation>REST, with the operation in kebab case
/rpc/v2/<group>/<operation>RPC
/mcpMCP over Streamable HTTP
/oauth/tokenThe token endpoint, for sign-ins and token exchange

Getting in

  1. Create an account at https://troupe.ali.ve/cloud/sign-up and follow the link in the verification mail. See Signing in.
  2. Create an organization, or accept an invitation to one. See Organizations.
  3. Create a project in it.
  4. Open the project and choose Start a device. The device appears in the page and takes your clicks and keys. See Device sessions.
  5. For a script or CI, create an API key. For the command line, run troupe login --cloud https://api.troupe.ali.ve.

One contract, two kinds of procedure

Troupe Cloud serves two contracts on the same address, in the same way.

  • The runtime contract. The device procedures a local runtime serves: sessions.create, input.tap, ui.snapshot, media.screenshot and the rest. The cloud serves 55 of the 64. It leaves out the ones that manage a local daemon (runtime.status, runtime.hostInfo, runtime.doctor, runtime.shutdown, runtime.sweep) and the pairings group. The same client and the same MCP tools work against both. See the runtime reference.
  • The cloud contract. 63 procedures in 15 groups for accounts, organizations, projects, keys, builds, artifacts, credentials, usage and limits. See the cloud reference. Every one of them is marked experimental in contract 1.0: it may change in a minor version. None is an MCP tool.

A call looks the same for both:

Shell
curl https://api.troupe.ali.ve/v1/account/get \
  --header "Authorization: Bearer $TROUPE_API_KEY" \
  --header "Troupe-Contract: 1.0"

A read with a flat input is a GET with query parameters. Everything else is a POST with a JSON body. Errors have one shape on every surface: a code, a message, typed data, whether a retry can help, and a request id. See calling the API directly and the error registry.

How a cloud device differs from a local one

Local runtimeTroupe Cloud
Who may callThe owner token on your machineA signed-in person, an API key or an access token, within its scopes
Where a session livesOn your machineIn one project of one organization
No free devicesessions.create answers CAPACITY_UNAVAILABLEThe session is queued for up to 15 minutes
Installing an appA path, a URL with its SHA-256A build's artifact, or a URL with its SHA-256; a path is refused
The live streamThe runtime's own listenerThe listener streams.ticket names, on the host that runs the device

Who is calling

Every call is made by one of three kinds of caller.

CallerCredentialUsed by
A personA session cookie from signing inThe web app
An API keytr_key_… as a bearer tokenCI, scripts, services
An access tokenA short-lived token as a bearer tokentroupe login, Troupe Studio, MCP clients, token exchange

Each caller holds scopes, such as devices:acquire or builds:write, and a procedure lists the scopes it needs. A person's scopes come from their role in the organization. Changes that grant access, such as creating a key or inviting a member, take only a person who signed in or confirmed their password in the last 15 minutes, never a key or a token. See confirming changes.

Next

esc

    Type to search every page, the protocol reference and the cloud API.