Best use case
Bruno — Git-Friendly API Client is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
## Overview
Teams using Bruno — Git-Friendly API Client should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/bruno/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How Bruno — Git-Friendly API Client Compares
| Feature / Agent | Bruno — Git-Friendly API Client | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
## Overview
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Bruno — Git-Friendly API Client
## Overview
You are an expert in Bruno, the open-source API client that stores collections as plain text files in your Git repository. Unlike Postman (cloud-synced, proprietary format), Bruno uses a human-readable format (Bru) that lives alongside your code — versioned, reviewable, and shareable via Git.
## Instructions
### Collection Structure
```
api-collection/
├── bruno.json # Collection config
├── environments/
│ ├── dev.bru
│ ├── staging.bru
│ └── production.bru
├── auth/
│ ├── login.bru
│ ├── register.bru
│ └── refresh-token.bru
├── users/
│ ├── list-users.bru
│ ├── get-user.bru
│ ├── create-user.bru
│ └── update-user.bru
└── orders/
├── list-orders.bru
├── create-order.bru
└── process-refund.bru
```
### Bru File Format
```bru
# auth/login.bru — Human-readable, Git-diffable
meta {
name: Login
type: http
seq: 1
}
post {
url: {{baseUrl}}/api/auth/login
body: json
auth: none
}
headers {
Content-Type: application/json
}
body:json {
{
"email": "{{testEmail}}",
"password": "{{testPassword}}"
}
}
script:post-response {
// Save token for subsequent requests
if (res.status === 200) {
bru.setVar("authToken", res.body.token);
bru.setVar("userId", res.body.user.id);
}
}
tests {
test("should return 200", () => {
expect(res.status).to.equal(200);
});
test("should return token", () => {
expect(res.body.token).to.be.a("string");
expect(res.body.token.length).to.be.greaterThan(0);
});
test("should return user", () => {
expect(res.body.user.email).to.equal("{{testEmail}}");
});
}
```
### Environments
```bru
# environments/dev.bru
vars {
baseUrl: http://localhost:3000
testEmail: test@example.com
testPassword: testpass123
}
vars:secret [
stripeKey,
dbPassword
]
```
### Scripting
```javascript
// Pre-request script — runs before sending
const crypto = require("crypto");
const timestamp = Date.now().toString();
const signature = crypto
.createHmac("sha256", bru.getVar("apiSecret"))
.update(timestamp)
.digest("hex");
bru.setVar("timestamp", timestamp);
bru.setVar("signature", signature);
// Post-response script — process responses
if (res.status === 200) {
const users = res.body.data;
bru.setVar("firstUserId", users[0].id);
console.log(`Found ${users.length} users`);
}
// Chain requests — use variables from previous responses
// login.bru sets {{authToken}}
// create-order.bru uses {{authToken}} in auth header
```
### CLI for CI/CD
```bash
# Install CLI
npm install -g @usebruno/cli
# Run entire collection
bru run --env dev
# Run specific folder
bru run auth/ --env dev
# Run with custom environment variables
bru run --env production --env-var apiKey=sk_live_xxx
# Output JUnit XML for CI
bru run --env dev --output results.xml --format junit
```
## Installation
```bash
# Desktop app (GUI)
# Download from https://www.usebruno.com/downloads
# CLI
npm install -g @usebruno/cli
```
## Examples
**Example 1: User asks to set up bruno**
User: "Help me set up bruno for my project"
The agent should:
1. Check system requirements and prerequisites
2. Install or configure bruno
3. Set up initial project structure
4. Verify the setup works correctly
**Example 2: User asks to build a feature with bruno**
User: "Create a dashboard using bruno"
The agent should:
1. Scaffold the component or configuration
2. Connect to the appropriate data source
3. Implement the requested feature
4. Test and validate the output
## Guidelines
1. **Git-first workflow** — Store Bruno collections in your repo next to application code; review API changes in PRs
2. **Environment files for config** — Use environments for base URLs and credentials; secrets marked as `vars:secret` are never committed
3. **Test assertions** — Write tests in every request; run them in CI to catch API regressions
4. **Script chaining** — Use `bru.setVar()` in post-response scripts to pass data between requests (token → subsequent calls)
5. **Folder organization** — Mirror your API structure (auth/, users/, orders/); each folder can have its own pre-request scripts
6. **CI/CD integration** — Run `bru run --env staging` after deployment to verify API contract; fail the pipeline on test failures
7. **No cloud dependency** — Unlike Postman, your collections never leave your machine or repo; no sync, no cloud, no account required
8. **Documentation as requests** — Bruno collections serve as living API documentation; new team members run requests to understand the APIRelated Skills
websocket-client-creator
Websocket Client Creator - Auto-activating skill for API Integration. Triggers on: websocket client creator, websocket client creator Part of the API Integration skill category.
oauth-client-setup
Oauth Client Setup - Auto-activating skill for API Integration. Triggers on: oauth client setup, oauth client setup Part of the API Integration skill category.
http-client-config
Http Client Config - Auto-activating skill for API Integration. Triggers on: http client config, http client config Part of the API Integration skill category.
api-client-generator
Api Client Generator - Auto-activating skill for API Integration. Triggers on: api client generator, api client generator Part of the API Integration skill category.
apollo-client
Guide for building React applications with Apollo Client 4.x. Use this skill when: (1) setting up Apollo Client in a React project, (2) writing GraphQL queries or mutations with hooks, (3) configuring caching or cache policies, (4) managing local state with reactive variables, (5) troubleshooting Apollo Client errors or performance issues.
expo-dev-client
Build and distribute Expo development clients locally or via TestFlight
bruno-api
Generate comprehensive API endpoint documentation from Bruno (.bru) files by mapping requests to a Django4Lyfe/Diversio-style backend implementation (Django REST Framework or Django Ninja), including auth/permissions, multi-tenant filtering, request/response schemas, and line-numbered code references. Use for single endpoints, directory scans of .bru files, or when writing docs to a specific output path.
generate-api-client
Orval APIクライアント生成スキル(OpenAPI仕様書から型安全なAPIクライアントを自動生成)
pre-client
Pre-sales intelligence system. Ingests incoming emails, analyzes sender context, clusters related conversations, detects business opportunities, builds relationship timelines, and surfaces high-potential prospects for outreach.
api-client
Use when setting up API clients - TanStack Query, Axios, JWT token management, error handling, or response parsing. NOT when plain fetch calls, non-API data handling, or unrelated UI logic. Triggers: "API client", "data fetching", "JWT token", "error handling", "paginated list", "TanStack Query".
frontend-api-client-with-jwt
A conceptual skill for building an API client in Next.js that handles JWT tokens
urql — Lightweight GraphQL Client
You are an expert in urql, the highly customizable and lightweight GraphQL client for React, Vue, Svelte, and vanilla JavaScript. You help developers fetch GraphQL data with minimal bundle size, document caching, normalized caching via Graphcache, exchanges (middleware pipeline), subscriptions, and offline support — providing a leaner alternative to Apollo Client with better extensibility.