Skip to main content

CLI tool for publishing tools and UI modules to the BrowsEZ platform

Project description

BrowsEZ CLI

A command-line tool for publishing tools and UI modules to the BrowsEZ platform.

Installation

From PyPI

pip install browsez-cli

From Source (GitHub)

# Clone and install in editable mode
cd BrowsEZ-CLI
python -m pip install --upgrade pip setuptools wheel
python -m pip install -e ".[dev]"

Quick Start

# Login to the platform
browsez login

# Validate a tool before publishing
browsez validate path/to/tool_directory

# Publish a tool
browsez publish path/to/tool_directory

For Phase 1 AgentCore flows, the expected publish lifecycle is:

  1. Create a credential binding in the BrowsEZ Platform Settings UI.
  2. Reference that binding from tool.yaml via credential_binding: <binding_slug>.
  3. Run browsez publish ....
  4. The Platform stores the artifact, creates or updates the Lambda package, and later syncs it to an AgentCore Gateway target when the tool is assigned to an instance.

Commands

Command Description
browsez login Login to the BrowsEZ platform
browsez logout Clear the current session
browsez validate <dir> Validate a tool without uploading
browsez publish <dir> Publish a tool to the backend
browsez publish-ui <dir> Publish a UI module (coming soon)
browsez config show Show current configuration
browsez config set <key> <value> Set a config value

Configuration

The CLI uses a .toolrc.json file for configuration. It is auto-created on first run:

{
  "api_base_url": "https://browsez-platform-backend-production.up.railway.app",
  "tenant_id": "sample-tenant-123",
  "default_risk_level": "MEDIUM",
  "upload_timeout": 300,
  "retry_attempts": 3
}

tenant_id is now a legacy compatibility field. Current publish requests are scoped from the authenticated platform session instead of sending an explicit tenant identifier.

Override settings via CLI:

browsez config set api-url https://api.example.com
browsez config set risk-level HIGH

Tool Directory Structure

A valid tool directory must have:

tool_name/
├── tool.yaml           # Metadata (name, inputs, outputs)
├── requirements.txt    # Python dependencies
└── src/
    ├── __init__.py
    └── main.py         # Entry point (run function, Input/Output classes)

Example tool.yaml with a credential binding:

name: order_lookup
description: |
  Look up customer orders and return the authoritative order status, line items,
  and fulfillment details from the source system.
inputs:
  type: object
  properties:
    order_id:
      type: string
outputs:
  type: object
  properties:
    result:
      type: object
credential_binding: billing_api

If credential_binding is set, the Platform will resolve that binding and inject the resulting credential environment into the Lambda package used by AgentCore. The Platform preserves the full description for the model-facing tool definition and derives any shorter AgentCore Gateway metadata automatically during assignment.

Development

# Install with dev dependencies
python -m pip install --upgrade pip setuptools wheel
python -m pip install -e ".[dev]"

# Build the package
python -m build

# Upload to PyPI (requires twine and credentials)
twine upload dist/*

Features

  • Strict Schema Validation: Ensures tools meet all requirements before packaging
  • Deterministic Packaging: Creates consistent zip files with content-based hashing (SHA-256)
  • Secure Uploads: Uses pre-signed S3 URLs for artifacts
  • Credential Binding Aware: Carries credential_binding from tool.yaml through tool registration
  • Lambda-backed Custom Tools: Published custom tools are packaged for BrowsEZ-managed Lambda execution in the AgentCore flow
  • Configurable: Supports configuration via file, CLI arguments, and defaults
  • Resilient: Implements retry logic and exponential backoff for network operations

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

browsez_cli-0.1.2.tar.gz (19.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

browsez_cli-0.1.2-py3-none-any.whl (18.7 kB view details)

Uploaded Python 3

File details

Details for the file browsez_cli-0.1.2.tar.gz.

File metadata

  • Download URL: browsez_cli-0.1.2.tar.gz
  • Upload date:
  • Size: 19.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for browsez_cli-0.1.2.tar.gz
Algorithm Hash digest
SHA256 6f423585460148d697b2f3c7dc4a107928b86a83e611c8410f82f1388365922b
MD5 9723ca0e1ab5dafbffe733b2efe6b782
BLAKE2b-256 89ea36433f2b9a9753ff04b541ede9b992a252cff8001e2110d6abb027d9b21e

See more details on using hashes here.

File details

Details for the file browsez_cli-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: browsez_cli-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 18.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for browsez_cli-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e9f695ca62216a39dbe2fcef4de760662e2b717076997941d37a56ed0b24473b
MD5 f99a57883216902a70cd062987e66495
BLAKE2b-256 077aea1f7e1816723b9cb09c784c71467c4ea59be2ecf0c678402f081355ba8d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page