Skip to main content

Debuggable runtime for AI agent pipelines

Project description


Binex

Open-source visual orchestrator for AI agent workflows
Build, run, debug, and replay multi-agent pipelines — 100% locally.

PyPI Python License CI Docs Stars

Demo · Install · Web UI · Features · Docs · Issues



Demo

1. Start in seconds

Quick Start
Install, run binex ui, and you're building workflows

2. Build & run custom workflows

Custom Workflow
Drag & drop nodes, configure models, run with human input

3. Explore & debug results

Explore Results
Debug, trace, diff, lineage — full post-mortem inspection

(back to top)


What is Binex?

Binex is an open-source, fully local runtime for AI agent workflows. No cloud. No telemetry. No vendor lock-in.

pip install binex
binex ui

That's it. Browser opens. You're building AI workflows.

Why Binex?

  • 100% local — your data never leaves your machine
  • 100% open source — MIT licensed, audit every line
  • Zero telemetry — no tracking, no analytics, no surprises
  • Full debuggability — every input, output, prompt, and cost is visible
  • Any model — OpenAI, Anthropic, Google, Ollama, OpenRouter, DeepSeek, and 40+ more via LiteLLM

(back to top)


Installation

Requires Python 3.11+

pip install binex

With extras:

pip install binex[langchain]    # LangChain Runnables
pip install binex[crewai]       # CrewAI Crews
pip install binex[autogen]      # AutoGen Teams
pip install binex[telemetry]    # OpenTelemetry tracing
pip install binex[rich]         # Rich colored CLI output

(back to top)


Web UI

Launch the visual workflow editor:

binex ui

Visual Drag & Drop Editor

Workflow Editor
Collapsible node sections, tool picker with 10 built-in tools, MCP config, Visual ↔ YAML sync

6 node types: LLM Agent, Local Script, Human Input, Human Approve, Human Output, A2A Agent

  • 20+ preset models including 8 free OpenRouter models
  • Built-in prompt library (Planner, Researcher, Analyzer, Writer, Reviewer, Summarizer)
  • Tool Picker — 10 built-in tools, MCP server integration, custom Python tools
  • Collapsible sections — Model, Prompt, Tools, Advanced per LLM node
  • Workflow Settings panel — configure MCP servers (stdio/HTTP) and cron schedules
  • Switch between Visual and YAML modes — changes sync both ways (including tools & MCP)
  • Real-time cost estimation as you build
  • Custom model input — use any litellm-compatible model

Dashboard

Runs Dashboard
All runs at a glance — status, cost, duration

Debugging & Analysis

Debug View Trace Timeline
Left: Node-by-node debug inspection. Right: Gantt timeline with anomaly detection.

Run Comparison

Diff View
Side-by-side diff with filtering: changed, failed, cost delta

19 Pages — Full CLI Parity

Category Pages
Workflows Browse, Visual Editor (with tool picker & MCP config), Scaffold Wizard
Runs Dashboard, RunLive (SSE), RunDetail
Analysis Debug (input/output artifacts), Trace (Gantt timeline), Diagnose (root-cause), Lineage (artifact graph)
Comparison Diff (side-by-side with filter bar, compare with previous run), Bisect (NodeMap, DAG visualization, divergence metrics)
Costs Cost Dashboard (charts), Budget Management
System Doctor (health), Plugins, Gateway, Export, Scheduler (cron)

Navigation

Sidebar organized into 4 groups: Build (Editor, Scaffold), Runs (Dashboard), Analyze (Compare, Bisect), System (Gateway, Plugins, Doctor). Run-specific pages (Debug, Trace, Diagnose, Lineage, Costs) open from run context.

Replay

Debug any node → click Replay → swap the model or prompt → re-run just that node. No re-running the entire pipeline.

(back to top)


Quickstart

CLI

# Zero-config demo
binex hello

Tip: Runs a 2-node demo workflow (producer → consumer), no API keys needed.

# Run a workflow
binex run examples/simple.yaml

Tip: Uses your configured LLM provider. Set OPENAI_API_KEY or use ollama for fully local runs.

# Inspect the run
binex debug latest
binex trace latest

Tip: debug shows per-node inputs/outputs. trace shows the execution timeline as a Gantt chart.

Web UI

binex ui

Tip: Opens the browser automatically. Use --port 9000 to change the port, --no-browser to skip auto-open.

Create a Workflow

name: research-pipeline
nodes:
  input:
    agent: "human://input"
    outputs: [output]

  planner:
    agent: "llm://gemini/gemini-2.5-flash"
    system_prompt: "Break this topic into research questions"
    tools:
      - "builtin://web_search"
      - "builtin://calculator"
    depends_on: [input]
    outputs: [output]

  researcher:
    agent: "llm://openrouter/google/gemma-3-27b-it:free"
    system_prompt: "Investigate and report findings"
    tools:
      - "builtin://fetch_url"
    depends_on: [planner]
    outputs: [output]

  output:
    agent: "human://output"
    depends_on: [researcher]
    outputs: [output]

(back to top)


Features

Agent Adapters

Prefix Description
local:// In-process Python callable
llm:// LLM via LiteLLM (40+ providers)
a2a:// Remote agent via A2A protocol
human://input Free-text input from user
human://approve Approval gate with conditional branching
human://output Display results to user
builtin:// 10 built-in tools (calculator, web_search, shell_command, etc.)
mcp:// MCP server tools (stdio or HTTP transport)
python:// Custom Python function as tool
langchain:// LangChain Runnable (plugin)
crewai:// CrewAI Crew (plugin)
autogen:// AutoGen Team (plugin)

CLI Commands

Command Description
binex run Execute a workflow
binex ui Launch Web UI
binex debug Post-mortem inspection
binex trace Execution timeline
binex replay Re-run with agent swaps
binex diff Compare two runs
binex diagnose Root-cause failure analysis
binex bisect Find first divergence between two runs
binex cost show Cost breakdown per node
binex explore Interactive TUI dashboard
binex scaffold Generate workflow from DSL
binex export Export to CSV/JSON
binex doctor System health check
binex hello Zero-config demo
binex list List available workflows
binex start Create a new project interactively
binex init Deprecated alias for binex start
binex validate Validate workflow YAML
binex cancel Cancel a running workflow
binex artifacts Inspect artifacts
binex dev Local development environment
binex gateway A2A Gateway management
binex plugins Manage adapter plugins
binex workflow Workflow versioning & inspection
binex scheduler start Start cron-based workflow scheduler
binex scheduler list List scheduled workflows
binex scheduler add/remove Register/unregister workflow files

Pattern Nodes

9 built-in agentic patterns that expand into sub-DAG pipelines at runtime:

Pattern Description
critic draft → critique → refine (self-improvement loop)
debate pro → con → judge (adversarial reasoning)
best_of_n N parallel candidates → selector
reflexion act → evaluate → reflect (iterative self-reflection)
scatter mapper → N parallel workers → reducer (fan-out/fan-in)
fsm finite state machine with configurable states and terminal
constitutional draft → critique-per-principle → revise
chain_of_verification draft → verify claims → synthesize
plan_execute planner → N executors → aggregator
nodes:
  review:
    pattern: critic
    model: gpt-4o
    config:
      rounds: 2
    steps:
      critique:
        model: gpt-4o          # override per step

LLM Providers

OpenAI · Anthropic · Google Gemini · Ollama · OpenRouter · Groq · Mistral · DeepSeek · Together AI

Built With

Python React FastAPI TypeScript Tailwind

(back to top)


Examples

29 example workflows in examples/. Highlights:

Example What it demonstrates
simple.yaml Minimal two-node pipeline
diamond.yaml Diamond dependency pattern
fan-out-fan-in.yaml Parallel execution with aggregation
human-in-the-loop.yaml Approval gates and conditional branching
human-feedback.yaml Human feedback loop
conditional-routing.yaml Conditional node execution
multi-provider-demo.yaml Multiple LLM providers in one workflow
ollama-research.yaml Full research pipeline with Ollama + OpenRouter
budget-hard-limit.yaml Budget enforcement with hard stop
budget-per-node.yaml Per-node budget allocation
a2a-multi-agent.yaml A2A protocol multi-agent workflow
langchain-summarizer.yaml LangChain Runnable in a pipeline
crewai-research-crew.yaml CrewAI Crew as a workflow node
autogen-coding-team.yaml AutoGen Team for code generation
mixed-framework-pipeline.yaml LangChain + CrewAI + AutoGen in one pipeline

(back to top)


Architecture

src/binex/
├── adapters/        # Agent backends (local, LLM, A2A, human, frameworks)
├── agents/          # Agent definitions and configuration
├── cli/             # Click CLI commands
├── gateway/         # A2A Gateway server and routing
├── graph/           # DAG construction + topological scheduling
├── models/          # Pydantic v2 domain models
├── plugins/         # Plugin registry for custom adapters
├── prompts/         # 112 built-in prompt templates
├── registry/        # Provider and adapter registry
├── runtime/         # Orchestrator, dispatcher, replay engine
├── patterns/        # PatternExpander + 9 pattern templates
├── scheduler/       # Cron-based workflow scheduling
├── stores/          # SQLite execution + filesystem artifacts
├── tools/           # @tool decorator, 10 built-in tools, MCP client
├── trace/           # Debug, lineage, timeline, diffing
├── ui/              # FastAPI backend + React frontend
│   ├── api/         # 32 REST endpoints
│   └── static/      # Pre-built React app
└── workflow_spec/   # YAML loader + validator

(back to top)


Documentation

Full docs at alexli18.github.io/binex

(back to top)


Contributing

Contributions are welcome! If you find this useful:

  • Star the repo — it takes 1 second and helps more than you know
  • Open issues — tell me what's broken or what you need
  • Submit PRs — let's build this together

I'm a solo developer building this in the open. Every star, issue, and PR makes a real difference.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)


Configuration

Binex can be configured via environment variables:

Variable Default Description
BINEX_STORE_PATH .binex Directory for SQLite database and artifacts
BINEX_DEFAULT_DEADLINE_MS 120000 Default node timeout in milliseconds
BINEX_DEFAULT_MAX_RETRIES 1 Default retry count for failed nodes
BINEX_DEFAULT_BACKOFF exponential Retry backoff strategy (fixed or exponential)
BINEX_REGISTRY_URL http://localhost:8000 Default A2A agent registry URL

All data is stored in .binex/ (gitignored by default):

  • .binex/binex.db — SQLite database (runs, execution records, cost records)
  • .binex/artifacts/ — JSON artifact files

(back to top)


License

Distributed under the MIT License. See LICENSE for more information.

(back to top)


Built by a solo dev who believes AI agents shouldn't be black boxes.
No cloud. No telemetry. No surprises. Just debuggable AI workflows.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

binex-0.7.5.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

binex-0.7.5-py3-none-any.whl (1.2 MB view details)

Uploaded Python 3

File details

Details for the file binex-0.7.5.tar.gz.

File metadata

  • Download URL: binex-0.7.5.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for binex-0.7.5.tar.gz
Algorithm Hash digest
SHA256 df77136cac4de7279bfb5357056d8491af120e99c2452cee2e929914907a30be
MD5 6bb54538c90674c684c198856dc64657
BLAKE2b-256 0567854a555200e841399094e8f48a46bb128f0bb0d137fdac3555cd9d7d870d

See more details on using hashes here.

File details

Details for the file binex-0.7.5-py3-none-any.whl.

File metadata

  • Download URL: binex-0.7.5-py3-none-any.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for binex-0.7.5-py3-none-any.whl
Algorithm Hash digest
SHA256 62909f5966e7519a5578f9048a3b0dfbf0e29ff8818ac4cb834323e3c213854d
MD5 5e2e30dd5bb0018e81ef45746f516991
BLAKE2b-256 afba369bb3b31baf554ca15d03f71228addb1e10814881a71916b7cc6dc25f95

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page