Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Behavior Trees Library in C++. Batteries included.
| Date | Stars |
|---|---|
| 2026-07-24 | 4123 |
| 2026-07-25 | 4123 |
| 2026-07-28 | 4123 |
| 2026-07-30 | 4123 |
| 2026-08-06 | 4123 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
5.0
growth rate 0.00%/day

[](https://github.com/BehaviorTree/BehaviorTree.CPP/actions/workflows/cmake_ubuntu.yml)
[](https://github.com/BehaviorTree/BehaviorTree.CPP/actions/workflows/cmake_windows.yml)
[](https://github.com/BehaviorTree/BehaviorTree.CPP/actions/workflows/ros2.yaml)
[](https://github.com/BehaviorTree/BehaviorTree.CPP/actions/workflows/pixi.yaml)
[](https://coveralls.io/github/BehaviorTree/BehaviorTree.CPP?branch=master)
# BehaviorTree.CPP 4.9
<p align="center"><img width=350 src="animated.svg"></p>
This __C++ 17__ library provides a framework to create BehaviorTrees.
It was designed to be flexible, easy to use, reactive and fast.
Even if our main use-case is __robotics__, you can use this library to build
__AI for games__, or to replace Finite State Machines.
There are a few features that make __BehaviorTree.CPP__ unique, when compared to other implementations:
- It makes __asynchronous Actions__, i.e. non-blocking, a first-class citizen.
- You can build __reactive__ behaviors that execute multiple Actions concurrently (orthogonality).
- Trees are defined using a Domain Specific __scripting language__ (based on XML), and can be loaded at run-time; in other words, even if written in C++, the morphology of the Trees is _not_ hard-coded.
- You can statically link your custom TreeNodes or convert them into __plugins__
and load them at run-time.
- It provides a type-safe and flexible mechanism to do __Dataflow__ between
Nodes of the Tree.
- It includes a __logging/profiling__ infrastructure that allows the user
to visualize, record, replay, and analyze state transitions.
## Documentation
- **Tutorials and general documentation**: https://www.behaviortree.dev/
- **Auto-generated Doxygen**: https://behaviortree.github.io/BehaviorTree.CPP/
- **Community support and forum**: https://github.com/BehaviorTree/BehaviorTree.CPP/discussions
# GUI Editor
Editing a BehaviorTree is as simple as editing an XML file in your favorite text editor.
If you are looking for a fancier graphical user interface (and I know you do) check
[Groot2](https://www.behaviortree.dev/groot) out.

# How to compile
**BT.CPP** requires a compiler that supports C++17.
Three build systems are supported:
- **colcon (ament)**, if you use ROS2
- **conan** otherwise (Linux/Windows).
- **straight cmake** if you want to be personally responsible for dependencies :)
Compiling with [conan](https://conan.io/):
> [!NOTE]
> Conan builds require CMake 3.23 or newer.
Assuming that you are in the **root** directory of `BehaviorTree.CPP`:
```
conan install . -s build_type=Release --build=missing
cmake --preset conan-release
cmake --build --preset conan-release
```
If you have dependencies such as ZeroMQ and SQlite already installed and you don't want to
use conan, simply type:
```
mkdir build_release
cmake -S . -B build_release
cmake --build build_release --parallel
```
If you want to build in a [pixi](https://pixi.sh/) project (conda virtual environment).
```
pixi run build
```
If you want to use BT.CPP in your application, please refer to the
example here: https://github.com/BehaviorTree/btcpp_sample .
## Installing BehaviorTree.CPP (vcpkg)
Alternatively, you can build and install behaviortree-cpp using [vcpkg](https://github.com/Microsoft/vcpkg/) dependency manager:
git clone https://github.com/MiExcerpt of 6,399 characters
Read on GitHubDavide Faconti · Spain
966
Michele Colledanchise · @kinisi-robotics
107
12
9
9
8
6
5
Joseph Schornak · Morocco
4
Uilian Ries · @conan-io
4
4
4
Renan Salles · wheel.me · Norway
4
4
4
4
Jimmy Delas · CTO at Medami · Ireland
3
3
3
Oleksandr Perepadia · Ukraine
3
Would you bet a product on this? Bounded 0–100 and slow moving.
matched fp:77d8ff7599923de6, topic:robotics, topic:ros, readme:robotics