diff --git a/src/geomtools/sfx/report.py b/src/geomtools/sfx/report.py
index b6ee4c2a1151017db4457d1e55e4e782e71b587f..83dc6aa947a8abbe70c2775726d746f4ba539acc 100644
--- a/src/geomtools/sfx/report.py
+++ b/src/geomtools/sfx/report.py
@@ -1,21 +1,18 @@
 import argparse
+import pathlib
+
 import importlib_resources
 import nbformat
 import papermill as pm
-import pathlib
 import yaml
-
-from traitlets.config import Config
-from nbconvert import PDFExporter
 from extra_data import open_run
+from geomtools.motor import (AGIPD1M_DATA_SELECTOR, AGIPD1M_MOTORS,
+                             get_physical_names, read_motor_positions)
+from nbconvert import PDFExporter
+from traitlets.config import Config
 
-from .xwizio import parse_xwiz_summary
 from .crystfelio import extract_geometry
-from geomtools.motor import (
-    read_motor_positions, AGIPD1M_MOTORS, AGIPD1M_DATA_SELECTOR,
-    get_physical_names,
-)
-
+from .xwizio import parse_xwiz_summary
 
 REPO = pathlib.Path("/gpfs/exfel/data/scratch/spb_geom")
 DET = {
@@ -25,7 +22,7 @@ DET = {
 }
 
 
-def make_report(notebook_filename, parameters):
+def make_report(notebook_filename, parameters, clean=True):
     report_ref = importlib_resources.files("geomtools.sfx") / "report.ipynb"
     with importlib_resources.as_file(report_ref) as report_path:
         pm.execute_notebook(
@@ -43,7 +40,8 @@ def make_report(notebook_filename, parameters):
     (body, resources) = pdf_exporter.from_notebook_node(notebook)
 
     notebook_filename.with_suffix(".pdf").write_bytes(body)
-    notebook_filename.unlink()
+    if clean:
+        notebook_filename.unlink()
 
 
 def push_geometry():
@@ -57,6 +55,7 @@ def push_geometry():
                         help="Crystfel stream file")
     parser.add_argument('-c', '--connected', default="modules")
     parser.add_argument('-r', '--report-only', action="store_true")
+    parser.add_argument('--keep-tmp-files', action="store_true", default=False)
     parser.add_argument('detector', choices=DET.keys())
     parser.add_argument('tag')
     parser.add_argument('sample')
@@ -171,11 +170,13 @@ def push_geometry():
         prefix=prefix,
         output_dir=str(output_dir.absolute()),
     )
-    make_report(notebook_filename, report_parameters)
+    make_report(notebook_filename, report_parameters,
+                clean=not args.keep_tmp_files)
 
     if args.report_only:
-        print("Clean up files...")
-        geom_file.unlink()
+        if not  args.keep_tmp_files:
+            print("Clean up files...")
+            geom_file.unlink()
 
 
 if __name__ == "__main__":