mirror of
https://github.com/MervinPraison/PraisonAI.git
synced 2026-11-07 04:35:58 -10:00
60 lines
1.8 KiB
Python
60 lines
1.8 KiB
Python
# praisonai: skip=true
|
|
"""
|
|
External Agents Integration Example
|
|
|
|
Demonstrates how to use all external CLI integrations as agent tools.
|
|
"""
|
|
|
|
import asyncio
|
|
from praisonai.integrations import (
|
|
ClaudeCodeIntegration,
|
|
GeminiCLIIntegration,
|
|
CodexCLIIntegration,
|
|
CursorCLIIntegration,
|
|
get_available_integrations
|
|
)
|
|
|
|
async def main():
|
|
# Check availability of all integrations
|
|
print("=== External CLI Integrations ===\n")
|
|
|
|
availability = get_available_integrations()
|
|
print("Availability:")
|
|
for name, avail in availability.items():
|
|
status = "✅" if avail else "❌"
|
|
print(f" {status} {name}")
|
|
|
|
# Create integrations
|
|
print("\n--- Claude Code ---")
|
|
claude = ClaudeCodeIntegration(workspace=".", skip_permissions=True)
|
|
print(f"CLI: {claude.cli_command}")
|
|
print(f"Available: {claude.is_available}")
|
|
tool = claude.as_tool()
|
|
print(f"Tool: {tool.__name__}")
|
|
|
|
print("\n--- Gemini CLI ---")
|
|
gemini = GeminiCLIIntegration(workspace=".", model="gemini-2.5-flash")
|
|
print(f"CLI: {gemini.cli_command}")
|
|
print(f"Available: {gemini.is_available}")
|
|
tool = gemini.as_tool()
|
|
print(f"Tool: {tool.__name__}")
|
|
|
|
print("\n--- Codex CLI ---")
|
|
codex = CodexCLIIntegration(workspace=".", full_auto=True)
|
|
print(f"CLI: {codex.cli_command}")
|
|
print(f"Available: {codex.is_available}")
|
|
tool = codex.as_tool()
|
|
print(f"Tool: {tool.__name__}")
|
|
|
|
print("\n--- Cursor CLI ---")
|
|
cursor = CursorCLIIntegration(workspace=".", force=True)
|
|
print(f"CLI: {cursor.cli_command}")
|
|
print(f"Available: {cursor.is_available}")
|
|
tool = cursor.as_tool()
|
|
print(f"Tool: {tool.__name__}")
|
|
|
|
print("\n=== All integrations ready ===")
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(main())
|