# Blop Cloud

> Sign in to Blop Cloud, connect Codex or Claude Desktop over hosted MCP, and manage your workspace from the CLI.

Use Blop Cloud to share projects, [check runs](/reference/glossary/#check-run) and [organization memory](/cloud/organization-memory/) with your team, from the browser, the CLI or hosted MCP. Everything local in Blop works without it. Blop Cloud never ingests local telemetry, and signing in uploads nothing.

## Prerequisites

- A Blop Cloud address, written `https://blop.example.com` below. Use your team's deployment or [self-host one](/cloud/self-host/). The CLI refuses placeholder and local names.
- A public HTTPS address for agent connections. Claude's connector calls come from Anthropic's service, which cannot reach your `localhost`.
- The Blop CLI on your `PATH` ([Quickstart](/quickstart/)).

## Create a workspace and project

1. Sign up at your Blop Cloud address. Sign-up creates your [workspace](/reference/glossary/#workspace).
2. Create a project from **Projects → New project**, with your app's URL or a GitHub repository.
3. Invite teammates from **Settings → Members**.

A project's check runs come from browser checks and from test suites you upload, such as [Vitest or JUnit results](/checks/ci/). Per test, it keeps a rolling pass rate on the default branch that marks flaky tests, and groups failures by signature, classified where the evidence allows: infrastructure, network race, animation timing, test data pollution, selector drift or regression.

## Connect a coding agent

Agents connect straight to hosted MCP at `/api/mcp` with OAuth. No local Blop process is needed. Agent connections lists each client, its state and its last verified call.

1. Prepare the package for your client:

   ```bash
   blop setup plugin codex --app-url https://blop.example.com
   ```

   Use `claude-desktop` for Claude Desktop. `--print` previews without writing. The command exits 6 on purpose: a package exists, but installation is not verified yet. The package holds a manifest, the MCP address and bootstrap skills (setup, recall-context, investigate, manage-workspace, remember), never workspace data or tokens. You can also download it from **Connections → Agents**.
2. Install the package from the client's plugin UI.

   For Codex, setup runs `codex plugin marketplace add <dir>` when the Codex CLI is present; otherwise run that command with the printed directory. Registering is not installing. Claude Desktop takes the printed `blop-plugin.zip`.
3. Connect `blop-web` in the client.

   Without a plugin, add `https://blop.example.com/api/mcp` as a custom remote MCP server instead.
4. Finish the OAuth sign-in in your browser.
5. Ask the agent to call `blop_workspace_context`, then `blop_memory_context` for a project.

Clients that only speak stdio can use the bridge `blop mcp --target web --profile work` after [signing in from the CLI](#manage-blop-cloud-from-the-cli). It is separate from the local read-only `blop mcp`.

## Permissions and approval

Consent picks the workspace and either chosen projects or all projects, including future ones.

| Scope | Allows |
| --- | --- |
| `blop:read` | Workspace and product metadata (always required) |
| `blop:write` | Product changes |
| `blop:execute` | Executions and billable actions |
| `blop:admin` | Owner-only administration; request it explicitly |
| `blop:memory:read` | Authorized organization and project memory |
| `blop:memory:write` | Findings and proposed memory changes |

Scopes are ceilings. Blop checks membership, project access, enabled [apps](/cloud/apps/) and memory policy on every call. Consent never approves a run, an external write, a destructive action or a policy change. Those return `requires_approval` with a browser link: an eligible owner reviews the exact input and approves or denies it. A typed "yes", an agent flag or a token cannot approve.

Revoke a grant in **Connections → Agents**; its next call fails. `blop auth logout` revokes only that CLI profile, and `blop setup plugin <client> --remove` deletes generated files without revoking anything.

## Manage Blop Cloud from the CLI

```bash
blop auth login --app-url https://blop.example.com --profile work
blop cloud operations --profile work --json
blop cloud call workspace.context --profile work --input context.json --json
```

Login uses the OAuth device flow: check the code in the browser and choose the workspace, scopes and projects. `context.json` holds `{}`. Credentials stay outside your repositories, readable only by you; never pass tokens as arguments.

| Command | Purpose |
| --- | --- |
| [`blop auth`](/reference/cli/#blop-auth) | Sign in, verify or sign out a named profile |
| [`blop cloud`](/reference/cli/#blop-cloud) | List enabled operations and their schemas, call one, read an action's state |
| [`blop memory`](/reference/cli/#blop-memory) with `--scope organization --profile NAME` | Read and change [organization memory](/cloud/organization-memory/) |
| [`blop setup plugin`](/reference/cli/#blop-setup) | Prepare or remove a Codex or Claude Desktop package |
| [`blop mcp --target web`](/reference/cli/#blop-mcp) | stdio bridge to hosted MCP |
| [`blop doctor --profile NAME`](/reference/cli/#blop-doctor) | Check grant, hosted MCP, enabled operations and memory |

Use the schemas `blop cloud operations` returns; a disabled app's operations disappear at once. For writes, keep the `--idempotency-key` the CLI prints and reuse it only to retry the same input.

| Result status | Meaning |
| --- | --- |
| `completed` | Done; a completed proposal is still only proposed |
| `queued` | Accepted, not finished or verified |
| `requires_approval` | Waiting for browser approval; nothing changed yet |
| `failed` | Read the error and its next step |
| `outcome_unknown` | Check `blop cloud action <id>` before retrying |

Exit codes: 0 success (still read the status), 1 failure or unknown outcome, 2 invalid input, 4 rejected or needs approval, 5 timeout, 6 setup not verified.

## Check it worked

```bash
blop doctor --profile work --json
```

Doctor reports local health, the grant, hosted MCP reachability, enabled operations and memory separately. The connection is proven only when Agent connections shows a verified call from your agent.

## Next

- [Organization memory](/cloud/organization-memory/): share findings, rules and procedures.
- [Apps](/cloud/apps/): turn features on or off for your workspace.
- [Self-host Blop Cloud](/cloud/self-host/).
