diff --git a/.gitignore b/.gitignore
index 489ee02150073df8586e5e8905c0be9aca0699e0..839a891e47907bc391b3215ffffcf857d7206e1d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -38,3 +38,5 @@ coverage/
 *.coverage
 TestArrayContainer.cpp
 TestArrayContainer.hpp
+test_yaml_config.cpp
+test_yaml_config.hpp
diff --git a/pyproject.toml b/pyproject.toml
index 79d359a671ae8e7eb918902506a707759c6046a2..23dbcb0f4f6cbd302e909a04c103f831f22776f2 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -10,6 +10,10 @@ dependencies = [
     "pystencils>=2.0.dev0",
     "scipy",
     "matplotlib",
+    "ruamel.yaml>=0.15.70",
+    "PyYAML",
+    "pandas",
+    "openpyxl>=3.1.5",
 ]
 requires-python = ">=3.10"
 readme = "README.md"
@@ -39,6 +43,10 @@ requires = [
     "setuptools>=69",
     "wheel",
     "pybind11",
+    "ruamel.yaml>=0.15.70",
+    "PyYAML",
+    "pandas",
+    "openpyxl>=3.1.5",
 ]
 build-backend = "setuptools.build_meta"
 
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0abe78ce6e3ba828c61086330550989d1cf45259
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,15 @@
+numpy~=2.1.3
+pystencils~=2.0.dev0+58.g4876f0b
+pystencilssfg~=0.1a4+23.g71ba6dc
+pymatlib~=0.1.0
+pytest~=8.3.4
+sympy~=1.12.1
+pyyaml~=6.0.2
+ruamel.yaml>=0.15.70
+matplotlib~=3.10.0
+scipy~=1.15.1
+setuptools~=75.8.0
+versioneer~=0.29
+pybind11~=2.14.0.dev1
+pandas~=2.2.3
+openpyxl~=3.1.5