Repository avatar
AI Tools
v0.1.1
active

behaviortrees

io.github.behaviortrees/behaviortrees

Validate, convert (behavior3 JSON, BehaviorTree.CPP XML) and open behavior trees in a visual editor

Documentation

Behavior Trees logo

Behavior Trees Editor


The React editor with the Enemy Patrol AI example open

A free, open-source visual editor for behavior trees, live at behaviortrees.com. Model AI for games, robotics, and simulations, then export to an open JSON format you can load with any behavior3-compatible library.

Originally based on behavior3editor by Renato de Pontes Pereira, since rebuilt as a modern React editor on the Nocturne design system and extended with a guides site. The original AngularJS editor lives on at old.behaviortrees.com.

MCP server and CLI

This repo also contains an MCP (Model Context Protocol) server for behavior trees, so AI assistants like Claude can write a tree, check it, and hand you a link that opens it in the editor. Its source is in packages/cli and it's built on the official MCP TypeScript SDK (@modelcontextprotocol/sdk). The tools are registered in packages/cli/src/mcp.ts, and the Streamable HTTP transport is in src/http.ts.

MCP toolWhat it does
validate_treeChecks a behavior3 JSON or BehaviorTree.CPP XML tree for structural errors: dangling children, nodes with two parents, cycles, decorators with more than one child, leaves with children, unknown node names
create_editor_linkReturns a URL that opens the tree in the editor at behaviortrees.com
convert_treeConverts between behavior3 JSON and BehaviorTree.CPP XML (v4 for Groot2 and ROS 2 Jazzy, v3 for Humble)
list_node_typesLists the built-in behavior3 nodes
get_exampleReturns example trees
read_guideReturns the behaviortrees.com guides as Markdown

All tools are read-only. Connect to the hosted server, or run it yourself:

  • Remote (Streamable HTTP): https://www.behaviortrees.com/mcp
  • Local (stdio): npx -y behaviortrees mcp. The behaviortrees npm package is also a CLI (npx behaviortrees validate tree.json) and a library.
  • Claude Code: claude mcp add --transport http behaviortrees https://www.behaviortrees.com/mcp

It's listed in the official MCP Registry as io.github.behaviortrees/behaviortrees. See packages/cli/README.md for details.

What's in this repo

A pnpm + Turborepo monorepo:

PathWhat it isWhere it deploys
apps/editor/Main editor (React + TypeScript + React Flow)behaviortrees.com
apps/editor-classic/Classic editor (AngularJS + gulp)old.behaviortrees.com
apps/site/Guides and articles (Astro)behaviortrees.com/learn
packages/cli/behaviortrees MCP server, CLI and librarynpm, and behaviortrees.com/mcp
packages/examples/Shared example trees consumed by both editorsbundled into both editors

apps/editor-classic is intentionally not a workspace member — its gulp 3 toolchain keeps its own npm lockfile. Never run pnpm inside it.

Features

  • Custom nodes: create your own node types in any of the four basic categories — composite, decorator, action, or condition
  • Node properties: edit titles, descriptions, and custom properties per node instance
  • Manual and auto layout: drag nodes around, or press a to auto-organize the whole tree
  • Multiple trees per project: create and manage as many trees as you need
  • JSON import/export: an open format that works with any behavior3-compatible runtime
  • BehaviorTree.CPP XML import/export: v4 and v3, including Groot2 and ROS 2 Nav2 trees
  • Shareable links: Copy link puts the whole tree in a URL that opens it in the editor
  • No lock-in: runs in the browser, no accounts, no external tools or engines required

Development

git clone https://github.com/behaviortrees/behaviortrees.git
cd behaviortrees
pnpm install

pnpm dev --filter @behaviortrees/editor   # React editor (Vite)
pnpm dev --filter @behaviortrees/site     # guides site (Astro)
pnpm build                                # build editor + site via Turborepo
pnpm test                                 # editor test suite

Classic editor

Uses Node <= 22 (see .nvmrc) and its own npm toolchain:

pnpm build:classic          # npm install + bower install + gulp build, from the repo root
# or, inside apps/editor-classic:
npm install --ignore-scripts
npx bower install
gulp serve                  # live reload at http://127.0.0.1:8000

Deployment

The React editor deploys to behaviortrees.com through apps/editor/vercel.json (Vercel root directory: apps/editor); its build also bundles the guides site so /learn is served from the same deploy. build-deploy.sh builds the classic editor and the guides site, merging both into deploy/ as the static site Netlify serves at old.behaviortrees.com (via netlify.toml).

License

  • The classic editor and repo root are MIT — see LICENSE, © 2014 Renato de Pontes Pereira.
  • The React editor (apps/editor/) is AGPL-3.0 © Alan Hoskins, with portions derived from the MIT original — see apps/editor/LICENSE and apps/editor/LICENSE-MIT.

Credit to the original behavior3 team for the editor this project grew from.

NPM
behaviortrees
Install Command
npm install behaviortrees