⭐ Open Source · MIT Python 3.11+ LangGraph inside

Enterprise-ready AI agents
for the OS.

GantryGraph is the Python SDK for building autonomous agents that see the screen, click, browse, write code, and call any tool — all in an observable, secure observe → think → act loop.

Install pip install gantrygraph
agent.py
from gantrygraph import GantryEngine, gantry_tool
from gantrygraph.perception import DesktopScreen
from gantrygraph.actions import MouseKeyboardTools
from langchain_anthropic import ChatAnthropic

@gantry_tool
async def send_slack(channel: str, msg: str) -> str:
    """Post a Slack message. Auto-exposed to the LLM."""
    return await slack.post(channel, msg)

agent = GantryEngine(
    llm=ChatAnthropic(model="claude-sonnet-4-6"),
    perception=DesktopScreen(),
    tools=[MouseKeyboardTools(), send_slack],
    max_steps=30,
)
agent.run("File the quarterly report and ping #finance")
Opened Excel · Exported PDF · Posted to #finance
3lines to wire a tool
100%mypy strict typed
5ready-made presets
MITopen source

Four pillars. Zero compromise.

GantryGraph makes autonomous agents production-ready from day one.

Secure by Default

Every tool runs inside a WorkspacePolicy chroot — path traversal is blocked at the SDK level. GuardrailPolicy gates dangerous operations behind a human-approval callback. BudgetPolicy hard-caps cost and wall-clock time.

Security policies →

LLM-Agnostic Vision

Swap vision backends without touching agent code. BaseVisionProvider wraps GPT-4o, Claude, Gemini, or any local model. Screenshots are pre-processed — resized, compressed, annotated — before the LLM ever sees them.

Vision providers →

Infinite Extensibility

Add a tool in one line with @gantry_tool. Connect entire MCP servers — GitHub, Notion, Postgres — via MCPClient. Need a custom loop? engine.get_graph() returns the raw LangGraph CompiledStateGraph.

MCP integration →

Cloud Native

serve() wraps any agent in a FastAPI server with async job queues and SSE event streaming — deploy on Kubernetes in minutes. The included Dockerfile boots Xvfb for fully headless GUI automation on Linux containers.

Cloud deploy →

The agent loop — simple by design

Four deterministic nodes. One observable graph. Zero magic.

01
Observe

Screenshot the desktop, render the browser DOM, or read any custom sensor via BasePerception.

02
Think

The LLM receives multimodal context and decides which tools to call — or declares the task complete.

03
Act

Each tool call passes through the guardrail gate. Errors become ToolMessage(status="error") for self-correction.

04
Review

No tool calls in the last response? Task complete. Otherwise loop back — up to max_steps.

Open source at the core

GantryGraph is the production-hardened evolution of openclaw, the open-source autonomous agent runtime originally published on GitHub. All source code is MIT licensed. Contributions, issues, and forks are welcome.