Skip to content
Back to skills

Agent Ros Bridge

ASecurity

Universal ROS1/ROS2 bridge for AI agents to control robots and embodied intelligence systems.

  • 14 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 7, 2026
devopspythongobashdockertestinggitapisecuritydocumentation

Works with

  • cli
  • api

Security analysis

A92/100
  • mediumUses curl or wget to download content
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 20 files and shows the line behind each finding

Scanned September 7, 2026

npx -y skills add modbender/skill-library-mcp --skill agent-ros-bridge --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Agent Ros Bridge?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Agent Ros Bridge
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/modbender-agent-ros-bridge/badge)](https://www.skillsdirectory.com/skills/modbender-agent-ros-bridge)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: agent-ros-bridge
version: 0.3.3
description: Universal ROS1/ROS2 bridge for AI agents to control robots and embodied intelligence systems.
author: Agent ROS Bridge Team
homepage: https://github.com/webthree549-bot/agent-ros-bridge
repository: https://github.com/webthree549-bot/agent-ros-bridge.git
license: MIT
metadata:
  {
    "openclaw":
      {
        "emoji": "πŸ€–",
        "requires": { "bins": ["python3"], "env": ["JWT_SECRET"] },
        "suggests": { "bins": ["docker"] },
        "env":
          {
            "JWT_SECRET":
              {
                "description": "Required: Secret key for JWT authentication. Bridge will fail to start without this.",
                "sensitive": true,
                "required": true
              },
            "BRIDGE_HOST":
              {
                "description": "Optional: Bind address (default: 127.0.0.1 for security)",
                "sensitive": false,
                "required": false
              },
          },
        "security":
          {
            "notes": "SECURITY-FIRST DESIGN: JWT authentication is always required and cannot be disabled. All examples run in Docker containers for isolation. Never expose to public networks without TLS and firewall rules.",
          },
        "install":
          [
            {
              "id": "pip",
              "kind": "pip",
              "package": "agent-ros-bridge",
              "label": "Agent ROS Bridge from PyPI"
            },
            {
              "id": "docker",
              "kind": "manual",
              "label": "Docker Desktop (optional but recommended)",
              "instruction": "For running examples in isolated containers. Install from https://www.docker.com/products/docker-desktop"
            }
          ],
        "category": "robotics",
        "tags": ["ros", "ros2", "robotics", "iot", "automation", "bridge", "embodied-intelligence", "arm", "navigation"],
      },
  }

---

# πŸ€– Agent ROS Bridge

**Universal ROS1/ROS2 bridge for AI agents to control robots and embodied intelligence systems.**

[![CI](https://github.com/webthree549-bot/agent-ros-bridge/actions/workflows/ci.yml/badge.svg)](https://github.com/webthree549-bot/agent-ros-bridge/actions/workflows/ci.yml)
[![PyPI](https://img.shields.io/pypi/v/agent-ros-bridge.svg)](https://pypi.org/project/agent-ros-bridge/)
[![License](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)

---

## πŸ” Security-First Design

**JWT authentication is always required and cannot be disabled.**

```bash
# Generate a secure secret (REQUIRED - no exceptions)
export JWT_SECRET=$(openssl rand -base64 32)
```

The bridge will **fail to start** without JWT_SECRET. This is by design β€” security is not optional.

See [SECURITY.md](SECURITY.md) for complete security guidelines.

---

## Quick Start

### Option 1: Docker Examples (Recommended for Testing)

All examples run in isolated Docker containers with simulated robots (no ROS installation needed).

```bash
# Clone repository
git clone https://github.com/webthree549-bot/agent-ros-bridge.git
cd agent-ros-bridge

# Generate JWT secret
export JWT_SECRET=$(openssl rand -base64 32)

# Run example in Docker
cd examples/quickstart
docker-compose up

# Test connection
curl http://localhost:8765/health
```

### Available Examples

| Example | Description | Run |
|---------|-------------|-----|
| `examples/quickstart/` | Basic bridge with simulated robot | `docker-compose up` |
| `examples/fleet/` | Multi-robot fleet coordination | `docker-compose up` |
| `examples/arm/` | Robot arm control simulation | `docker-compose up` |

All examples:
- Run in isolated Docker containers
- Use JWT authentication (enforced)
- Include simulated robots (no hardware needed)
- Bind to localhost (127.0.0.1) by default

### Option 2: Native Installation (Production)

**Requirements:** Ubuntu 20.04/22.04 with ROS1 Noetic or ROS2 Humble/Jazzy

```bash
# Install from PyPI
pip install agent-ros-bridge

# Set required secret
export JWT_SECRET=$(openssl rand -base64 32)

# Start bridge
agent-ros-bridge --config config/bridge.yaml
```

See [docs/NATIVE_ROS.md](docs/NATIVE_ROS.md) for detailed native installation.

---

## Features

| Feature | Description |
|---------|-------------|
| **πŸ” Security** | JWT auth always required, no bypass |
| **πŸ€– Multi-Robot** | Fleet orchestration & coordination |
| **🌐 Multi-Protocol** | WebSocket, MQTT, gRPC |
| **πŸ”„ Multi-ROS** | ROS1 + ROS2 simultaneously |
| **🦾 Arm Control** | UR, xArm, Franka support |
| **πŸ“Š Monitoring** | Prometheus + Grafana |

---

## Documentation

| Document | Description |
|----------|-------------|
| [User Manual](docs/USER_MANUAL.md) | Complete guide (23,000+ words) |
| [API Reference](docs/API_REFERENCE.md) | Full API documentation |
| [Native ROS](docs/NATIVE_ROS.md) | Ubuntu/ROS installation |
| [Docker vs Native](docs/DOCKER_VS_NATIVE.md) | Deployment comparison |
| [SECURITY.md](SECURITY.md) | Security policy |

---

## Usage

### Python API

```python
from agent_ros_bridge import Bridge
from agent_ros_bridge.gateway_v2.transports.websocket import WebSocketTransport

# Bridge requires JWT_SECRET env var
bridge = Bridge()
bridge.transport_manager.register(WebSocketTransport({"port": 8765}))
await bridge.start()
```

### CLI

```bash
# Set required secret
export JWT_SECRET=$(openssl rand -base64 32)

# Start bridge
agent-ros-bridge --config config/bridge.yaml

# Generate token for client
python scripts/generate_token.py --secret $JWT_SECRET --role operator
```

---

## Links

- **Documentation:** https://github.com/webthree549-bot/agent-ros-bridge/tree/main/docs
- **PyPI:** https://pypi.org/project/agent-ros-bridge/
- **GitHub:** https://github.com/webthree549-bot/agent-ros-bridge
- **Issues:** https://github.com/webthree549-bot/agent-ros-bridge/issues

---

**Security is not optional. JWT auth always required.**

Files in this skill

  • CHANGELOG.md7.1 KB
  • PRODUCTION_CHECKLIST.md2.7 KB
  • README.md4.1 KB
  • SECURITY.md2.6 KB
  • SKILL.md6 KB
  • agent_ros_bridge/__init__.py2 KB
  • agent_ros_bridge/_version.py738 B
  • agent_ros_bridge/actions/__init__.py16.2 KB
  • agent_ros_bridge/fleet/__init__.py445 B
  • agent_ros_bridge/fleet/orchestrator.py18.1 KB
  • agent_ros_bridge/gateway_v2/__init__.py1 KB
  • agent_ros_bridge/gateway_v2/__main__.py6.9 KB
  • agent_ros_bridge/gateway_v2/auth.py6.6 KB
  • agent_ros_bridge/gateway_v2/config.py11.6 KB
  • agent_ros_bridge/gateway_v2/connectors/__init__.py36 B
  • agent_ros_bridge/gateway_v2/connectors/ros1_connector.py10.7 KB
  • agent_ros_bridge/gateway_v2/connectors/ros2_connector.py10.5 KB
  • agent_ros_bridge/gateway_v2/core.py19.1 KB
  • agent_ros_bridge/gateway_v2/plugins/__init__.py33 B
  • agent_ros_bridge/gateway_v2/plugins/greenhouse_plugin.py8.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…