diff --git a/c++/CMakeLists.txt b/c++/CMakeLists.txt
index 692cc0519dc57b64917c3240e37debb764c9e71c..308d59efeec71b88a25296778622f103468a9229 100644
--- a/c++/CMakeLists.txt
+++ b/c++/CMakeLists.txt
@@ -1,17 +1,38 @@
 cmake_minimum_required(VERSION 3.16)
 project(PersefoneGUI LANGUAGES CXX)
 
-set(CMAKE_CXX_STANDARD 17)
+set(CMAKE_CXX_STANDARD 20)
 set(CMAKE_CXX_STANDARD_REQUIRED True)
 set(CMAKE_CXX_EXTENSIONS OFF)
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++20")
+
+# julia
+# TODO: use JULIA_BINDIR
+#       with
+#       ${JULIA_BINDIR}/../lib
+#       ${JULIA_BINDIR}/../include/
+set(JULIA_DIR "" CACHE PATH "Base directory where julia lib/ and include/ directories are located")
+find_library(JULIA_LIB NAMES julia HINTS ${JULIA_DIR}/lib)
+if(NOT JULIA_LIB)
+    message(FATAL_ERROR "julia library not found. Please set JULIA_DIR to the base directory containing the lib/ and include/ directories.")
+else()
+    message(STATUS "Found julia library: ${JULIA_LIB}")
+endif()
+
+# jluna
+set(JLUNA_DIR "" CACHE PATH "Directory where jluna library is located")
+find_library(JLUNA_LIB NAMES jluna HINTS ${JLUNA_DIR})
+if(NOT JLUNA_LIB)
+    message(FATAL_ERROR "jluna library not found. Please set JLUNA_DIR to the directory containing the library.")
+else()
+    message(STATUS "Found jluna library: ${JLUNA_LIB}")
+endif()
 
 #set(CMAKE_PREFIX_PATH "/usr/lib/x86_64-linux-gnu/cmake/Qt6" CACHE STRING "Qt6 installation prefix")
 #set(HOME_DIR $ENV{HOME})
 #set(CMAKE_PREFIX_PATH "${HOME_DIR}/app/qt6/6.7.2/gcc_64/lib/cmake/Qt6" CACHE STRING "Qt6 installation prefix")
 
 set(CMAKE_AUTOMOC ON)
-
 find_package(Qt6 REQUIRED COMPONENTS Core Gui Quick)
 
 qt_add_executable(PersefoneGUI
@@ -27,9 +48,18 @@ target_link_libraries(PersefoneGUI PRIVATE
     Qt6::Core
     Qt6::Gui
     Qt6::Quick
+    "${JULIA_LIB}"
+    "${JLUNA_LIB}"
 )
 
-# Resources:
+target_include_directories(PersefoneGUI PRIVATE
+    "${JULIA_DIR}/include/julia"
+    "${JLUNA_DIR}/include/jluna"
+)
+
+target_compile_features(PersefoneGUI PRIVATE cxx_std_20)
+
+# QML Resources
 set(qml_resource_files
     "main.qml"
 )
diff --git a/c++/README.md b/c++/README.md
index 786f962c5561f2655a8a1e7005ac6de8d8914dbc..bd4bc789901239a48774189f051e04af8f09d7f9 100644
--- a/c++/README.md
+++ b/c++/README.md
@@ -5,7 +5,10 @@
 ```sh
 mkdir build
 cd build
-cmake ..
+cmake \
+    -DJULIA_DIR=/path/to/where/julia/is/installed \
+    -DJLUNA_DIR=/path/to/where/jluna/is/installed \
+    ..
 make
 ./PersefoneGUI
 ```
@@ -16,6 +19,9 @@ packages could be missing, and some might not be necessary, sorry):
 
 ### Prerequisites for building from source
 
+You need a C++ compiler, cmake, make, and Qt6 installed.
+
+On Ubuntu the following should work:
 ```sh
 sudo apt install build-essential cmake
 sudo apt install qt6-base-dev qt6-declarative-dev
@@ -30,3 +36,7 @@ sudo apt install \
     qml6-module-qtquick-window \
     qt6-image-formats-plugins
 ```
+
+You also need the jluna library installed:
+https://github.com/Clemapfel/jluna
+
diff --git a/c++/main.cpp b/c++/main.cpp
index 64b23613d9a29ccf14ebaba586fb97642ed56194..7202547c1bbe24b44975f3d3881100de1afd5709 100644
--- a/c++/main.cpp
+++ b/c++/main.cpp
@@ -7,6 +7,8 @@
 #include <QDir>
 #include <QUrl>
 
+#include <jluna.hpp>
+
 QString getFileUrlRelativeToExecutable(const QString &relativeFilePath) {
     // Get the directory path of the executable
     QString basePath = QCoreApplication::applicationDirPath();
@@ -21,6 +23,14 @@ QString getFileUrlRelativeToExecutable(const QString &relativeFilePath) {
 
 int main(int argc, char *argv[])
 {
+    jluna::initialize();
+    jluna::Base["println"]("julia: hello from julia");
+    jluna::Main.safe_eval("import Pkg; Pkg.activate(\"..\")");
+    jluna::Main.safe_eval("println(\"julia: LD_LIBRARY_PATH = \", get(ENV, \"LD_LIBRARY_PATH\", \"\"))");
+    jluna::Base["println"]("before import Persefone");
+    jluna::Main.safe_eval("import Persefone");
+    //jluna::Main.safe_eval("import Pkg; Pkg.activate(\"..\"); using Persefone");
+
     QGuiApplication gui_app(argc, argv);
     QQmlApplicationEngine engine;