Numbat UI is a fork of Sourcetrail, a source code explorer that was archived in 2021.
Why NumbatUI? NumbatUI has been written to explore any graph-based data generated by Numbat (which enables crafting databases through a friendly Python API). More specifically, NumbatUI has been created to extend Sourcetrail for additional UI/UX features. Features added are:
- Renaming nodes and edges (to reflect the user specific use-case)
- Custom colors on nodes or edges
- Custom node or edges (tooltips, hovering text)
- file sideloading (to store file content outside of the database)
- bookmarking all predecsessors or successors of a given node (for later analysis)
- custom commands (to perform any user-defined action on nodes/edges, e.g., open a terminal at a given path, open a web page, etc.)
We strongly recommend to use precompiled packages or our Docker image. For manual compilation, see the dedicated page in documentation.
You can either:
- Build locally the docker image:
cd docker docker build -t numbatui .
- Download it from github:
docker pull ghcr.io/quarkslab/numbatui:main
NumbatUI is a Qt GUI application, so the container needs access to your display server. Check documentation for details.
- Download the
.debpackage from Realeases. - Install it on your system:
sudo dpkg -i numbatui.deb
Open the /path/to/my_database.srctrlprj database with NumbatUI. The command will depend of your windowing system, as the application is a GUI Qt application one needs to forward the X11/Wayland display to the container.
C support is powered by Clang, with LLVM/Clang 19 as the hard minimum (matching Debian trixie's default toolchain). For issues loading C code, have a look at Clang language compatibility or report a bug in our issue tracker.
C++ support is powered by Clang, with LLVM/Clang 19 as the hard minimum. For more information please visit Clang C++ Status. For issues loading C++ code, have a look at Clang language compatibility or report a bug in our issue tracker.
Note
C/C++ indexing is built only when -DBUILD_CXX_LANGUAGE_PACKAGE=ON is passed
to CMake. It is off by default in the current builds while it is being
stabilized, so the prebuilt Docker image and .deb ship without it for now.
Python indexing (inherited from Sourcetrail's SourcetrailPythonIndexer) is
currently disabled by design and is not built. Support may be revisited in
a future release.
N/A
- Eloïse Brocas (@ebrocas), Quarkslab
- Robin David (@RobinDavid), Quarkslab
- Pascal Wu (@pwu42), during his internship at Quarkslab
