Skip to content

Blop Cloud

Use Blop Cloud to share projects, check runs and 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.

  • A Blop Cloud address, written https://blop.example.com below. Use your team’s deployment or self-host one. 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).
  1. Sign up at your Blop Cloud address. Sign-up creates your 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. 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.

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:

    Terminal window
    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. It is separate from the local read-only blop mcp.

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

ScopeAllows
blop:readWorkspace and product metadata (always required)
blop:writeProduct changes
blop:executeExecutions and billable actions
blop:adminOwner-only administration; request it explicitly
blop:memory:readAuthorized organization and project memory
blop:memory:writeFindings and proposed memory changes

Scopes are ceilings. Blop checks membership, project access, enabled 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.

Terminal window
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.

CommandPurpose
blop authSign in, verify or sign out a named profile
blop cloudList enabled operations and their schemas, call one, read an action’s state
blop memory with --scope organization --profile NAMERead and change organization memory
blop setup pluginPrepare or remove a Codex or Claude Desktop package
blop mcp --target webstdio bridge to hosted MCP
blop doctor --profile NAMECheck 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 statusMeaning
completedDone; a completed proposal is still only proposed
queuedAccepted, not finished or verified
requires_approvalWaiting for browser approval; nothing changed yet
failedRead the error and its next step
outcome_unknownCheck 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.

Terminal window
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.