π¨π³ δΈζ β’ π₯ Why β’ β‘ Demo β’ π Quick Start β’ ποΈ Architecture β’ π Enterprise
AI is a glorified search engine π |
AI becomes your digital workforce π |
graph LR
A[π€ Your AI<br/>Claude / GPT / Gemini] -->|MCP Protocol| B[π AI-Bridge<br/>v1.0.0 Gateway]
B -->|Native Adapters| C[π Chrome / Edge]
B -->|Native Adapters| D[π Word / Excel / PPT]
B -->|Native Adapters| E[π¬ FFmpeg / Blender]
B -->|Native Adapters| F[π³ Docker / Git]
B -->|MCP Ecosystem| G[π Firecrawl / Slack]
B -->|A2A Protocol| H[π€ Other AI Agents]
import asyncio
from aibridge.adapters.browser.chrome import ChromeAdapter
async def main():
adapter = ChromeAdapter({"headless": False})
await adapter.connect()
await adapter.execute("goto", value="https://github.com")
await adapter.execute("screenshot", options={"path": "github.png"})
await adapter.disconnect()
asyncio.run(main())
# βοΈ AI opens Chrome β navigates β takes screenshot β all in 3 lines!| Category | Tools | Adapters |
|---|---|---|
| π Browser | Chrome, Edge | Playwright-powered, full automation |
| π Office | Word, Excel, PowerPoint, WPS | OpenXML / Win32 / LibreOffice |
| π¬ Media | FFmpeg, ImageMagick, Blender, Shotcut, SoX, GIMP | CLI-native, 40+ codecs |
| π Docs | Pandoc | 40+ format conversions |
| π΅ Download | yt-dlp | 1000+ sites supported |
| π³ DevOps | Docker, Git, Prettier | Infrastructure as code |
| π MCP Ecosystem | Browser Use, Firecrawl, Notion, Slack, GitHub | Seamless interop |
| π§ AI | Aider (code assistant) | AI-assisted development |
# 1. Install
pip install ai-bridge
# 2. Add to Claude Desktop (claude_desktop_config.json)
# {
# "mcpServers": {
# "ai-bridge": {
# "command": "python",
# "args": ["-m", "aibridge"]
# }
# }
# }
# 3. Ask Claude:
# "Open Chrome, search 'AI trends 2025', take screenshots"
# "Convert report.docx to PDF and send via email"
# "Pull latest data from DB, generate Excel charts" ββββ L3 E2E (8) ββββ β --e2e flag, nightly CI
βββ L2 Integration (7) βββ β --integration, Docker-in-Docker
ββββ L1 Component (22) ββββ β default, key interfaces
βββββββ L0 Unit (907) βββββββ β default, core logic
ββββββββββββββββββββββββββββββ
929 tests | 42% coverage
| Layer | Count | Type | Trigger |
|---|---|---|---|
| L3 | 8 | End-to-End | --e2e / nightly cron |
| L2 | 7 | Git + Office Integration | --integration / Docker |
| L1 | 22 | Intent / DAG / Bridge / PBAC | Always |
| L0 | 907 | Unit + Core + Enterprise | Always |
graph TB
subgraph AI["π€ AI Assistant Layer"]
Claude["Claude / GPT / Gemini"]
end
subgraph Gateway["π AI-Bridge v1.0.0 Gateway"]
direction TB
subgraph Proto["Protocol Layer"]
MCP_Reg["MCP Registry"]
A2A_GW["A2A Gateway"]
Bridge["Protocol Bridge<br/>MCP β A2A"]
end
subgraph Enterprise["Enterprise Layer"]
Policy["PBAC<br/>Policy Engine"]
Meter["Metering<br/>Quota + Billing"]
Trace["Tracing<br/>OpenTelemetry"]
Audit["Audit<br/>Compliance Log"]
end
subgraph Core["Core Engine"]
Intent["IntentEngine<br/>3-tier Resolution"]
DAG["Orchestrator<br/>DAG Scheduler"]
Session["Session<br/>Manager"]
end
end
subgraph Adapters["π Adapter Layer"]
Browser["π Browser<br/>ChromeΒ·Edge"]
Office["π Office<br/>WordΒ·ExcelΒ·PPT"]
CLI["π» CLI<br/>FFmpegΒ·DockerΒ·Git"]
MCP_Eco["π MCP Ecosystem<br/>FirecrawlΒ·Slack"]
end
AI -->|MCP / A2A| Gateway
Gateway --> Adapters
π‘οΈ PBAC β Policy-Based Access Control
from aibridge.enterprise import PolicyEngine, ToolPolicy
engine = PolicyEngine()
engine.register_policy(ToolPolicy(
policy_id="data-team",
statements=[{
"effect": "allow",
"actions": ["tool:call"],
"resources": ["browser/*", "office/excel:*"],
}]
))
result = engine.evaluate("alice", "tool:call", "browser/navigate")
# β
ALLOWπ Metering β Usage Tracking & Quota
from aibridge.enterprise import MeteringCollector, QuotaManager
metering = MeteringCollector()
await metering.record(user_id="user1", tool="browser/navigate")
quota = QuotaManager(metering)
quota.set_user_quota("user1", QuotaConfig(max_calls_per_day=1000))π OpenTelemetry β Distributed Tracing
from aibridge.enterprise import Tracer, TracerConfig
tracer = Tracer(TracerConfig(service_name="gateway"))
with tracer.start_as_current_span("tool_call") as span:
span.set_attribute("user.id", "user1")π€ Multi-Agent DAG Orchestration
from aibridge.core import TaskGraph, Orchestrator
graph = TaskGraph(name="research")
t1 = graph.add_task("search", "web-agent", "search")
t2 = graph.add_task("analyze", "nlp-agent", "analyze", depends_on={t1})
t3 = graph.add_task("report", "write-agent", "report", depends_on={t2})
result = await orchestrator.execute(graph)
# β
3 agents collaborate in DAG, results flow automatically| Benchmark | Target | Actual | Status |
|---|---|---|---|
| L1 Intent Match (60 patterns) | < 100ms | ~0.3ms | β |
| L1 No-Match Traversal | < 200ms | ~0.4ms | β |
| Adapter Cold Start | < 2000ms | ~1.0ms | β |
| Batch Registration (60 patterns) | β₯ 50 | 60 | β |
| Resource | Link |
|---|---|
| π Quick Start | examples/basic_usage.py |
| ποΈ Gateway Demo | examples/gateway_demo.py |
| π Changelog | CHANGELOG.md |
| π€ Contributing | CONTRIBUTING.md |
| π‘οΈ Security | SECURITY_TOOLS.md |
Playwright β’ MCP β’ A2A β’ OpenTelemetry β’ All Contributors β€οΈ
If AI-Bridge empowers your workflow, give us a β!
_ ___ ____ _ _
/ \ |_ _| | __ ) _ __(_) __| | __ _ ___
/ _ \ | |_____| _ \| '__| |/ _` |/ _` |/ _ \
/ ___ \ | |_____| |_) | | | | (_| | (_| | __/
/_/ \_\___| |____/|_| |_|\__,_|\__, |\___|
|___/
From Chat to Action π
Made with β€οΈ for the AI Automation Community