Skip to main content

matimo-bruno

Bruno CLI tools for Matimo - Enable AI agents to autonomously manage, execute, and validate API test collections.

📦 Installation

pip install matimo-bruno

🚀 Quick Start

Python

from matimo import Matimo
from matimo_bruno import get_tools_path

matimo = await Matimo.init(get_tools_path())

# List all collections in workspace
collections = await matimo.execute('bruno_list_collections', {
    'workspace_path': './collections'
})

# Get collection metadata before running
info = await matimo.execute('bruno_get_collection_info', {
    'collection_path': './collections/payment-api'
})

# Run entire collection
result = await matimo.execute('bruno_run_collection', {
    'collection_path': './collections/payment-api',
    'environment': 'staging',
    'report_path': './reports/staging-results.json'
})

# Run single request for debugging
response = await matimo.execute('bruno_run_request', {
    'collection_path': './collections/auth',
    'request_name': 'Login',
    'environment': 'staging'
})

# Bootstrap from OpenAPI spec
imported = await matimo.execute('bruno_import_openapi', {
    'spec_source': 'https://api.example.com/openapi.json',
    'output_directory': './collections',
    'collection_name': 'Generated API Tests'
})

# Create new collection
created = await matimo.execute('bruno_create_collection', {
    'collection_path': './collections/new-service',
    'collection_name': 'New Service Tests'
})

# Add a request to an existing collection
added = await matimo.execute('bruno_add_request', {
    'collection_path': './collections/new-service',
    'request_name': 'get-users',
    'method': 'GET',
    'url': 'https://api.example.com/users',
})

📋 Available Tools

1. bruno_run_collection

Execute a Bruno API collection with configurable environments, data files, and reporting.

Parameters:

  • collection_path (required) - Path to collection file or directory
  • environment - Environment name (dev, staging, prod)
  • env_file - Path to environment file override
  • data_file - CSV/JSON data file for data-driven testing
  • iteration_count - Number of iterations to run
  • delay_ms - Delay between requests
  • tags - Comma-separated tags (run requests with ALL tags)
  • exclude_tags - Comma-separated tags (skip requests with ANY tags)
  • tests_only - Run only requests with tests/assertions
  • bail_on_failure - Stop on first failure
  • parallel - Run requests in parallel
  • sandbox_mode - JavaScript execution mode ('safe' or 'developer')
  • report_format - Report format (json, junit, html)
  • report_path - Path to write report file

Returns: Collection execution results, summary, and report path

2. bruno_run_request

Execute a single request for targeted debugging and validation.

Parameters:

  • collection_path (required) - Collection directory
  • request_name (required) - Request name to execute
  • environment - Environment name override
  • env_file - Environment file override
  • sandbox_mode - JavaScript execution mode

Returns: Request/response details and assertion results

3. bruno_list_collections

Discover all collections in a workspace.

Parameters:

  • workspace_path (required) - Workspace directory
  • filter - Filter by collection name (substring)

Returns: Array of collection metadata

4. bruno_get_collection_info

Introspect collection structure before execution.

Parameters:

  • collection_path (required) - Collection path

Returns: Collection structure, requests, environments, variables

5. bruno_import_openapi

Bootstrap a collection from OpenAPI 3.0 specification.

Parameters:

  • spec_source (required) - Path or URL to OpenAPI spec
  • output_directory (required) - Where to create collection
  • collection_name - Collection name
  • collection_format - 'bru' or 'opencollection'
  • group_by - Group by 'tags' or 'path'
  • insecure - Skip TLS verification

Returns: Collection path and metadata

6. bruno_create_collection

Create a new empty collection scaffold.

Parameters:

  • collection_path (required) - Collection creation path
  • collection_name (required) - Collection name

Returns: Creation status and path

🔄 Agent Workflows

Autonomous Test Execution

Agent discovers spec → import_openapi → set environment → run_collection → parse results

Multi-Environment Validation

list_collections → for each environment: set_env + run_collection → compare results

Targeted Debugging

get_collection_info → run_request (single endpoint) → analyze response

Data-Driven Testing

run_collection with CSV file → multiple iterations → aggregate metrics

🔐 Authentication

Tools use environment variables for credentials. Bruno CLI manages environment setup - tools wrap CLI execution.

📖 Prerequisites

  • Bruno CLI installed globally: pnpm install -g @usebruno/cli
  • Python 3.11+
  • Bruno collections in .bru format or OpenAPI specs

🤝 Integration

Works with:

  • LangChain - Convert to StructuredTool
  • CrewAI - Convert to BaseTool
  • MCP - Expose via JSON-RPC to Claude / other MCP clients
  • Native - Direct SDK usage

📝 License

MIT

Metadata

Release files for matimo-bruno 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for matimo-bruno 0.2.0
File Size Uploaded Provenance Actions
matimo_bruno-0.2.0.tar.gz 17.5 kB Without provenance Details for matimo_bruno-0.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for matimo-bruno 0.2.0
File Interpreter ABI Platform Actions
matimo_bruno-0.2.0-py3-none-any.whl Python 3 none any Details for matimo_bruno-0.2.0-py3-none-any.whl

Total release size: 38.5 kB

Release files / matimo_bruno-0.2.0.tar.gz

Download URL matimo_bruno-0.2.0.tar.gz
Size 17.5 kB
Tags Source
SHA-256 checksum
How to use checksums
443c1de550e5103e52fd553f35f7fe9f36c81ab0268bd898bb7f73222c796561
BLAKE2b-256 checksum
How to use checksums
14f783d6e4584fa6e46052dd0131d673aa7bd72f5dd051d9ae1df5ca7e215ba2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / matimo_bruno-0.2.0-py3-none-any.whl

Download URL matimo_bruno-0.2.0-py3-none-any.whl
Size 21.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
37aff9fe2882b35096bf2c7b9bc8663c15604f334860fd3c86114764f949d626
BLAKE2b-256 checksum
How to use checksums
9a031d16e4fd85e57a151a2d6252b7646fe48320bbc982cfd1272a12f15993dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for matimo-bruno 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page