open-bridge
Health Warn
- License — License: Apache-2.0
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 6 GitHub stars
Code Warn
- process.env — Environment variable access in docs/.vitepress/config.ts
Permissions Pass
- Permissions — No dangerous permissions requested
This tool is a universal API runtime engine that dynamically converts OpenAPI specifications into two distinct interfaces: a semantic CLI for humans and an MCP server for AI agents.
Security Assessment
Overall Risk: Medium. The server is designed to bridge local specifications with network APIs, so making outbound network requests is part of its core functionality. It utilizes the system's native keyring to securely handle API credentials, which is a strong security practice, though it inherently requires access to sensitive authentication data. The codebase does not request dangerous overarching permissions and there are no hardcoded secrets. The only flagged environment variable access occurs safely within the documentation configuration (`docs/.vitepress/config.ts`), which poses no threat to the runtime application.
Quality Assessment
The project demonstrates strong health indicators. It is actively maintained, with repository updates pushed as recently as today, and features a solid foundation including CI/CD integration, code coverage tracking, and a clean Apache 2.0 license. The primary concern is its low community visibility. With only 6 GitHub stars, the tool has not yet been widely peer-reviewed or battle-tested by a large audience.
Verdict
Use with caution: the code appears well-structured and secure, but its low community adoption means you should perform your own review before integrating it into sensitive environments.
An universal API runtime engine that bridges the gap between OpenAPI specifications and two distinct interfaces
OpenBridge

OpenBridge is a universal API runtime engine that bridges the gap between OpenAPI specifications and two distinct interfaces:
- For Humans: A semantic CLI with resource-oriented commands
- For AI Agents: An MCP (Model Context Protocol) server
"One Spec, Dual Interface."
Features
- Zero Code Generation: All behavior is dynamically driven by OpenAPI specifications
- Semantic CLI: Resource-oriented commands (
myapp user create --name "John") - Shell Auto-Completion: Tab completion for commands, resources, flags, and enum values
- MCP Server: Native AI agent integration via Model Context Protocol
- Multi-Platform: Works on Linux, macOS, and Windows
- Secure Credentials: Uses system keyring (Keychain, Credential Manager, Secret Service)
- Fast Startup: Cold start under 100ms
Installation
From Source
go install github.com/nomagicln/open-bridge/cmd/ob@latest
From Binary
Download the latest release from the Releases page.
Quick Start
1. Install an API
ob install myapi --spec ./openapi.yaml
2. Run Commands
# List resources
myapi users list
# Create a resource
myapi user create --name "John"
Note: For a detailed step-by-step guide, see QUICKSTART.md.
3. Use with AI (MCP Mode)
OpenBridge implements the Model Context Protocol (MCP) to serve as a bridge between your API and AI agents (like Claude).
Progressive Disclosure
To handle large APIs efficiently, OpenBridge uses a Progressive Disclosure strategy. Instead of overwhelming the AI context with hundreds of tools at once, it exposes three meta-tools:
SearchTools: Find relevant tools using a powerful query language.LoadTool: Load the full schema for a specific tool.InvokeTool: Execute the tool.
Search Syntax
The SearchTools capability supports a predicate-based query language for precise filtering:
- Methods:
MethodIs("GET"),MethodIs("POST") - Paths:
PathContains("/users"),PathStartsWith("/api/v1") - Tags:
HasTag("admin") - Logical Operators:
&&(AND),||(OR),!(NOT)
Examples:
Find read-only user operations:
MethodIs("GET") && PathContains("/users")Find operations tagged with 'pet' or 'store':
HasTag("pet") || HasTag("store")
Starting the Server
# Start MCP server
myapi --mcp
Then configure your AI agent to connect to this server (stdio transport).
Configuration
Configuration files are stored in platform-specific locations:
- macOS:
~/Library/Application Support/openbridge/ - Linux:
~/.config/openbridge/ - Windows:
%APPDATA%\openbridge\
Profiles
Each app can have multiple profiles for different environments:
name: myapi
spec_source: ./openapi.yaml
default_profile: dev
profiles:
dev:
base_url: http://localhost:8080
auth:
type: bearer
prod:
base_url: https://api.example.com
auth:
type: api_key
location: header
key_name: X-API-Key
Switch profiles with:
myapi users list --profile prod
Command Reference
ob Commands
| Command | Description |
|---|---|
ob install <name> --spec <path> |
Install an API as a CLI application |
ob uninstall <name> |
Remove an installed application |
ob list |
List all installed applications |
ob run <name> [args...] |
Run commands for an installed application |
ob completion [bash|zsh|fish] |
Generate shell completion script |
ob version |
Show version information |
ob help |
Show help |
App Commands
Once installed, each app provides semantic commands:
| Pattern | Example |
|---|---|
<app> <resource> list |
myapi users list |
<app> <resource> get --id <id> |
myapi user get --id 123 |
<app> <resource> create [flags] |
myapi user create --name "John" |
<app> <resource> update [flags] |
myapi user update --id 123 --name "Jane" |
<app> <resource> delete --id <id> |
myapi user delete --id 123 |
Output Formats
# Table output (default)
myapi users list
# JSON output
myapi users list --json
# YAML output
myapi users list --yaml
Shell Auto-Completion
OpenBridge supports shell auto-completion for bash, zsh, and fish shells. Completion provides suggestions for:
- App names
- Verbs (list, get, create, update, delete, etc.)
- Resources (users, servers, etc.)
- Flag names (based on operation parameters)
- Flag values (for enum parameters like status, output format, profiles)
Installing Completion
Bash:
# Load in current session
source <(ob completion bash)
# Install permanently (Linux)
ob completion bash | sudo tee /etc/bash_completion.d/ob
# Install permanently (macOS with Homebrew)
ob completion bash > /usr/local/etc/bash_completion.d/ob
Zsh:
# Load in current session
source <(ob completion zsh)
# Install permanently
ob completion zsh > "${fpath[1]}/_ob"
Fish:
# Load in current session
ob completion fish | source
# Install permanently
ob completion fish > ~/.config/fish/completions/ob.fish
Using Completion
Once installed, press Tab to get completion suggestions:
# Complete app names
ob run <TAB>
# Complete resources for an app
ob run myapi <TAB>
# Complete verbs
ob run myapi users <TAB>
# Complete flags
ob run myapi user get --<TAB>
# Complete flag values (for enums)
ob run myapi users list --output <TAB>
OpenAPI Extensions
You can customize CLI behavior using OpenAPI extensions:
paths:
/server/reboot:
post:
x-cli-verb: trigger # Override default verb mapping
x-cli-resource: server # Override resource name
Development
Prerequisites
- Go 1.25 or later
- Make (optional)
Building
# Build
go build -o ob ./cmd/ob
# Run tests
go test -v ./...
# Run with race detector
go test -race ./...
Project Structure
.
├── cmd/
│ └── ob/ # Main entry point
├── pkg/
│ ├── spec/ # OpenAPI spec parsing
│ ├── config/ # Configuration management
│ ├── credential/ # Keyring integration
│ ├── semantic/ # Verb-resource mapping
│ ├── request/ # HTTP request building
│ ├── cli/ # CLI command handling
│ ├── mcp/ # MCP protocol
│ ├── completion/ # Shell completion support
│ └── router/ # Command routing
├── internal/
│ └── testutil/ # Testing utilities
└── .github/
└── workflows/ # CI/CD configuration
Contributing
Contributions are welcome! Please read our Contributing Guide and Code of Conduct for details.
License
Apache License 2.0 - see LICENSE and NOTICE for details.
OpenBridge is a proud member of the Cat Alliance. 🐱 🐾
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found