BehaviorTree/BehaviorTree.CPP
Behavior Trees Library in C++. Batteries included. observed · 2026-08-28
Health v2 · maintenance only
84/100
- Activity 97
- Release rhythm 58
- Longevity 100
How is this computed?
round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10) — computed 2026-09-02. Adoption (stars, forks) is never an input.
- gap_med: 32
- age_days: 2878
- days_rel: 203
- days_push: 19
- n_releases_24m: 6
Adoption not part of the score
4174 stars · 853 forks observed · 2026-08-28
What it is AI-extracted, prompt v1, taxonomy v1, 2026-08-29, confidence not recorded
BehaviorTree.CPP is a C++17 framework for building Behavior Trees, designed to be flexible, reactive, and fast, with asynchronous actions as first-class citizens. Trees are defined in an XML-based scripting language loaded at runtime, with runtime-loadable node plugins, type-safe dataflow between nodes, and built-in logging/profiling for recording and replaying state transitions.
Use cases
- build behavior trees for robot control in C++
- create AI for games instead of finite state machines
- replace finite state machines with more modular behavior logic
- define reactive robot behaviors with non-blocking async actions
- load behavior tree structures from XML at runtime
- record and replay behavior tree execution for debugging
- integrate behavior trees with ROS2 like Nav2 or MoveIt
When to choose
- you need production-ready behavior trees for robotics, especially with ROS2
- you want XML-defined trees decoupled from C++ node implementations
- you need reactive, concurrent execution of multiple actions
- you want built-in logging, profiling, and replay of state transitions
- you prefer behavior trees over finite state machines for complex agent logic
When to avoid
- you need a Python or other non-C++ behavior tree library
- your logic is simple enough that a plain state machine suffices
- you require a free graphical editor with unlimited nodes (Groot2 PRO is paid)
- you target platforms without C++17 compiler support
Facets
library · maturity stable
game-engine simulation logging plugin-system workflow-automation robotics artificial-intelligence simulation cpp windows cross-platform behavior-trees state-machine ros2 async-actions xml-trees groot2 game-development linux macos
5 sources
- readme: https://github.com/BehaviorTree/BehaviorTree.CPP · fetched 2026-08-28 · ed6eed9c9d5e
- homepage: https://behaviortree.dev · fetched 2026-08-29 · 642d41d80932
- site_page: https://behaviortree.dev/docs/intro · fetched 2026-08-29 · b02b9e7c659f
- site_page: https://behaviortree.dev/docs/3.8/intro · fetched 2026-08-29 · daa43b38f6dc
- site_page: https://behaviortree.dev/groot · fetched 2026-08-29 · e558f956db01
Member repositories
| Repository | Role | Health v2 |
|---|---|---|
| BehaviorTree/BehaviorTree.CPP | main | 84 |
For agents
markdown · JSON · MCP: product_card(name="BehaviorTree/BehaviorTree.CPP")
Data as of 2026-08-30T08:39:29.467469+00:00 · Report a problem