MCPInstall

remote-run-curl

Run bazel commands in a remote runner. Use when the user asks to run bazel build, bazel test or bazel run.

Installs
763
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/buildbuddy-io/buildbuddy --skill remote-run-curl
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads remote-run-curl automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

The Run API runs commands in a remote runner. These runners can have more compute power, and workspaces are snapshotted between runs, speeding up subsequent runs.

Any bash command can be run in a remote runner, but bazel commands may benefit the most from proximity to our cache servers and workspace snapshotting.

Getting help

If you don't know how to accomplish a task, you should consult the docs at https://www.buildbuddy.io/docs/remote-bazel. Do not try to run bb remote --help or bb help.

Pre-run gate

Before initiating a remote run, you should check if the user asked to add any fields to the request.

If they did, follow the field persistence steps below.

Add any persistent API fields or Bazel flags to the request.

Initiating a remote run

The Run API can be made with a curl request.

For bazel commands, make sure to preserve the entire command, including startup flags and options, in the steps field.

To clone a GitHub repo and run steps within that workspace, set the fields repo, branch and/or commit_sha. This is optional if a GitHub workspace is not needed for the steps.

By default, the Run API will return once the remote runner has started. You can poll for completion using the GetInvocation API. If you want the Run API to wait until the commands are finished, add "wait_until": "COMPLETED" to the request.

Multi-line steps are supported.

Sample request:

curl --data '{
  "repo": "git@github.com:<REPO_NAME>.git",
  "branch": "<BRANCH_NAME>",
  "steps": [{"run": "bazel build :target"}],
  "wait_until": "COMPLETED"
}' \
--header "x-buildbuddy-api-key: ${BUILDBUDDY_API_KEY?}" \
--header "Content-Type: application/json" \
https://app.buildbuddy.io/api/v1/Run

Parse invocationId from the response and share https://app.buildbuddy.io/invocation/<INVOCATION_ID> with the user so they can view logs for the remote run.

Reading remote logs

Logs for the remote run can be fetched with the GetLog API. Logs are streamed live and can be fetched in parallel with the remote run.

The invocation ID should be parsed from the results of the Run API.

Sample request:

curl -d '{
  "selector": {"invocation_id":"<INVOCATION_ID>"}
}' \
-H "x-buildbuddy-api-key: ${BUILDBUDDY_API_KEY}" \
-H "Content-Type: application/json" \
https://app.buildbuddy.io/api/v1/GetLog

If next_page_token is present in the GetLog response, keep calling GetLog and passing the token to the page_token field until all log chunks are fetched.

Fetching invocation metadata

Invocation metadata can be fetched with the GetInvocation API. Metadata includes the exit code of the run after it's finished and whether it completed successfully.

All steps must complete successfully for the invocation to be considered a success. If any steps fail, subsequent steps will not be run.

curl -d '{
  "selector": {"invocation_id":"<INVOCATION_ID>"}
}' \
-H "x-buildbuddy-api-key: ${BUILDBUDDY_API_KEY}" \
-H "Content-Type: application/json" \
https://app.buildbuddy.io/api/v1/GetInvocation

Configuration

Environment variables can be set on the remote runner with the env field. It expects a map as input.

Other configuration can be set in the platform_properties field, which is also a map. Valid values of OSFamily are linux and darwin. Valid values of Arch are amd64 and arm64. The container-image field expects a docker URL like docker://<URL>.

If a remote runner is corrupted and you want a clean one, you can set the property salt to a new value. Just make sure you preserve this flag if you want future runs to resume from this new runner.

Requesting more resources

We strongly recommend not setting these and using the defaults unless absolutely necessary. Only suggest increasing resources if the logs explicitly report OOM errors or disk exhaustion.

More resources can be requested for the remote runner with the properties EstimatedCPU, EstimatedFreeDiskBytes and EstimatedMemory. The disk and memory fields expect values in the syntax XGB.

Auth

Users can get an API key from the Settings page of the BuildBuddy UI. If running in non-interactive mode, the user should save the API key as a secret.

Field persistence

Whenever the user provides fields not already in the persistent-fields.md file, follow this workflow before initiating the remote run:

  1. Ask: Do you want me to persist <FIELD> in this SKILL file so it is automatically applied to all future remote runs?
  2. Wait for explicit confirmation before editing this file.
  3. If the user confirms, edit only the persistent-fields.md file.
  4. Ensure the field is not already present.
  5. Preserve alphabetical ordering.

Entry format:

  • { "KEY": "VALUE" }: Example: {"wait_until": "COMPLETED"}

FAQ

What does the remote-run-curl skill do?

Run bazel commands in a remote runner. Use when the user asks to run bazel build, bazel test or bazel run.

How do I install remote-run-curl?

Run npx skills add https://github.com/buildbuddy-io/buildbuddy --skill remote-run-curl in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/remote-run-curl/ (personal) or .claude/skills/remote-run-curl/ (project).

Which AI agents can use remote-run-curl?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is remote-run-curl safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains remote-run-curl?

It is published by buildbuddy-io in buildbuddy-io/buildbuddy. It has 763 recorded installs.

More from buildbuddy-io/buildbuddy

View all →

view-build-logs

buildbuddy-io/buildbuddy

Open the skill to read its SKILL.md instructions.

332 installs

remote-run

buildbuddy-io/buildbuddy

Open the skill to read its SKILL.md instructions.

58 installs

Popular testing & qa skills

View category →

tdd

mattpocock/skills

Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.

Testing & QA1.2M installs

grilling

mattpocock/skills

Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.

Testing & QA996.2K installs

migrate-to-shoehorn

mattpocock/skills

Migrate test files from as type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace as in tests, or needs partial test data.

Testing & QA484.1K installs

run-train

lllllllama/rigorpilot-skills

Rigor Train skill for deep learning research repositories. Use when a documented or selected training command should be run conservatively for startup verification, short-run verification, full kickoff, or resume, with command, config, seed, log, checkpoint, status, and metric evidence written to standardized trainoutputs/. Do not use for environment setup, exploratory sweeps, speculative idea implementation, or end-to-end orchestration.

Testing & QA337.8K installs

test-driven-development

obra/superpowers

Use when implementing any feature or bugfix, before writing implementation code

Testing & QA261.8K installs

Use when implementation is complete, all tests pass, and you need to decide how to integrate the work

Testing & QA216.8K installs