Integrations

A few lines at the hook you already have.

Each plugin gates tool calls at your framework's pre-execution hook and sends them to Atbash for a verdict. HOLD and BLOCK mean the tool did not run.

import { Atbash } from "@atbash/sdk";
import { withAtbashGuard } from "@atbash/atbash-langchain";

const client = new Atbash(process.env.ATBASH_AGENT_PRIVKEY, {
  orgName: process.env.ATBASH_ORG_NAME,
});

withAtbashGuard(tool, client);

// HOLD, BLOCK or ERROR: the tool did not run
terminal
$ npm install @atbash/atbash-langchain

$ node run.mjs
› tool: send_bank_transfer
› atbash verdict HOLD
› reason: unverified payee · RL-12
› waiting for finance-lead
Seven frameworks

Where Atbash attaches

OpenClaw

before_tool_call hook

@atbash/atbash-openclaw

Hermes

pre_tool_call hook, fail-closed

atbash-hermes-plugin

LangGraph

Safety node with human approval on HOLD

@atbash/atbash-langgraph

LangChain

Wraps any tool; HOLD and BLOCK stop the call

@atbash/atbash-langchain

AutoGen

Judge before execution

@atbash/atbash-autogen

ElizaOS

Guard around action handlers

@atbash/atbash-eliza

MCP

Atbash as an MCP server

@atbash/atbash-mcp

Your own code

SDK, API and CLI

@atbash/sdk
Model-agnostic

Atbash judges the action, not the model behind it

Your agents run on different models and reach into different tools. The verdict happens at the tool call.

AnthropicAnthropic
OpenAIOpenAI
GitHub CopilotGitHub Copilot
GeminiGemini
PerplexityPerplexity
OllamaOllama
Hugging FaceHugging Face
GitHubGitHub
GitLabGitLab
JetBrainsJetBrains
VS CodeVS Code
CursorCursor

From install to first verdict in one sitting.