agentsclimarketplace

Generate bruno files

Skill oharu121/skills/skills/generate-bruno-files

A collection of custom commands, skills, and gems for Claude Code

Install
npx -y skills add oharu121/skills --skill generate-bruno-files

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 8 stars8 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Create Bruno .bru request files for API endpoints found in the project source code. Use when the user asks to generate Bruno API files from source code, mentions the Bruno API client, or wants to scaffold .bru files for HTTP requests.

SKILL.md

3.4 KB, as published. Nobody here has run it

Create Bruno .bru request files for API endpoints found in the project source code.

Input: $ARGUMENTS (a source file path or description of which API calls to generate .bru files for)

Context

This project uses Bruno (open-source API client) with a collection in .bruno/. The collection config is .bruno/bruno.json and shared variables live in .bruno/collection.bru (gitignored; template at .bruno/collection.example.bru).

Instructions

Step 1: Identify API calls

Read the source file specified in $ARGUMENTS. Extract every HTTP request:

  • Method (GET, POST, PUT, PATCH, DELETE)
  • URL / endpoint path
  • Headers (auth, content-type, custom headers)
  • Query parameters
  • Request body (if any)

If $ARGUMENTS is empty or unclear, use AskUserQuestion to ask which file or endpoints to generate .bru files for.

Step 2: Check existing .bru files

List existing request files in .bruno/ to avoid duplicates:

ls .bruno/*.bru

If a .bru file already covers the same endpoint, skip it and inform the user.

Step 3: Review collection variables

Read .bruno/collection.example.bru to see which variables are already defined. If the new requests need variables not yet in the collection, note them for Step 5.

Step 4: Create .bru files

For each unique API endpoint, create a .bru file in .bruno/ following these conventions:

Naming

  • Use kebab-case: verb-resource.bru (e.g., list-users.bru, create-order.bru, get-item-by-id.bru)
  • Name should reflect the action, not the URL path

File format

meta {
  name: <kebab-case-name>
  type: http
  seq: <next-available-sequence-number>
}

<method> {
  url: <url-with-{{variables}}-for-dynamic-segments>
  body: <none|json|form|xml>
  auth: <none|bearer|basic>
}

auth:bearer {
  token: {{token_variable}}
}

headers {
  X-Custom-Header: value
}

body:json {
  {
    "field": "value"
  }
}

Rules

  • Use {{variable_name}} for dynamic URL segments, tokens, IDs — never hardcode secrets or IDs
  • Include auth:bearer block when the API uses bearer token auth
  • Include headers block only for non-standard headers (not Content-Type for JSON — Bruno handles that)
  • Include body:json block for POST/PUT/PATCH with a realistic example body matching the source code's payload structure
  • Set seq to continue from the highest existing sequence number

Step 5: Update collection variables (if needed)

If new variables are required (e.g., a new api_key, user_id, etc.):

  1. Read the current .bruno/collection.example.bru
  2. Add the new variables with empty values to the vars:pre-request block
  3. Inform the user to also update their local .bruno/collection.bru with the new variables

Step 6: Summary

Display a table of created files:

FileMethodEndpointSource
name.bruGET/pathfile.py:line

If any variables were added, list them and remind the user to fill values in collection.bru.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.