diff --git a/mbed6/.gitignore b/mbed6/.gitignore
index 3c20f054a225cf6d3338f786a52e8878a77af2bb..e26cce56439fdc6b83de90e048999a5e15fb943c 100644
--- a/mbed6/.gitignore
+++ b/mbed6/.gitignore
@@ -1,3 +1,4 @@
 /build
 /.flatpak-builder
 /auto-*.json
+/build-files.tar
diff --git a/mbed6/Makefile b/mbed6/Makefile
index 5b72326c3c6bbbd1f9d36b47e71fdf91bd07216e..f76c1a794a9d504c43f95553d1ccd6b61ca31b13 100644
--- a/mbed6/Makefile
+++ b/mbed6/Makefile
@@ -10,6 +10,8 @@ build:  auto-ignore-installed.json\
 	manual-arm-none-eabi-bootstrap-gcc.json \
 	manual-arm-none-eabi-newlib.json \
 	manual-arm-none-eabi-gcc.json \
+	manual-git.json \
+	manual-build-files.json \
 	manual-mbed-cli-wrap.json 
 	flatpak-builder --force-clean build $(TARGET).json
 	flatpak-builder --user --install --force-clean build/ $(TARGET).json
@@ -22,6 +24,11 @@ setup:
 
 manual-%.json: manual-%.install
 
+manual-build-files.json: build-files.tar
+
+build-files.tar:
+	git ls-files | tar -cf $@ --files-from=-
+
 auto-ignore-installed.json: pip-ignore-installed.txt
 	cat $< | xargs flatpak run se.lth.control.pip-install-to-json \
 		--name $@ --extra-flag --ignore-installed > $@.tmp
@@ -36,10 +43,11 @@ auto-simple.json: pip-simple.txt
 clean:
 	rm -f auto-*.json
 	rm -rf .flatpak-builder/build
+	rm -rf build
+	rm -f build-files.tar
+	rm -f *~ 
 
 .PHONY: distclean
-clean: clean
-	rm -rf build
+distclean: clean
 	rm -rf .flatpak-builder
-	rm -f *~ 
 
diff --git a/mbed6/manual-build-files.install b/mbed6/manual-build-files.install
new file mode 100755
index 0000000000000000000000000000000000000000..3db98f2d0122de7309280c3ecdb524c8e9cc49bb
--- /dev/null
+++ b/mbed6/manual-build-files.install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+set -e
+
+mkdir /app/build-files
+cat build-files.tar | tar --directory /app/build-files -x
diff --git a/mbed6/manual-build-files.json b/mbed6/manual-build-files.json
new file mode 100644
index 0000000000000000000000000000000000000000..39ce27a3411ee4ab2a64e60f4f4f6e4ff8657cbb
--- /dev/null
+++ b/mbed6/manual-build-files.json
@@ -0,0 +1,17 @@
+{
+    "name": "manual-build-files.json",
+    "buildsystem": "simple",
+    "build-commands": [
+        "./manual-build-files.install"
+    ],
+    "sources": [
+        {
+            "type": "file",
+            "path": "manual-build-files.install"
+        },
+        {
+            "type": "file",
+            "path": "build-files.tar"
+        }
+    ]
+}
diff --git a/mbed6/mbed-cli b/mbed6/mbed-cli
new file mode 100755
index 0000000000000000000000000000000000000000..88d64a857c45ffd191787aa8ad5e432b42ec1d0d
--- /dev/null
+++ b/mbed6/mbed-cli
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+
+RUN_ARGS=()
+RUN_CWD="--cwd=$(pwd)"
+
+# Handle case when running from within hidden directory
+if [[ "$(pwd)" =~ ^(/var/tmp) ]] ; then
+    RUN_ARGS+=( --filesystem=${BASH_REMATCH[1]} )
+elif [[ "$(pwd)" =~ ^(/tmp) ]] ; then
+    RUN_ARGS+=( --filesystem=${BASH_REMATCH[1]} )
+elif [[ "$(pwd)" =~ ^(/usr) ]] ; then
+    RUN_CWD="--cwd=/run/host/$(pwd)"
+fi
+
+# Handle special trampoline directory (used at control.lth.se)
+if [ -d "${XDG_RUNTIME_DIR}/trampoline" ] ; then
+    RUN_ARGS+=( --filesystem=xdg-run/trampoline )
+fi
+                
+flatpak "${RUN_CWD}"  "${RUN_ARGS[@]}" run se.lth.control.mbed-cli $@
diff --git a/mbed6/se.lth.control.mbed-cli.json b/mbed6/se.lth.control.mbed-cli.json
index 37574634df15a10bc2b8ee1d0a27ade953c6b61b..ae76f65abe5af80ec923150d14aa7062aaa6dc63 100644
--- a/mbed6/se.lth.control.mbed-cli.json
+++ b/mbed6/se.lth.control.mbed-cli.json
@@ -17,16 +17,12 @@
         "manual-arm-none-eabi-newlib.json",
         "manual-arm-none-eabi-gcc.json",
         "manual-git.json",
+        "manual-build-files.json",
         "manual-mbed-cli-wrap.json"
     ],
     "finish-args" : [
         "--filesystem=host",
-        "--filesystem=xdg-run/trampoline",
         "--share=network",
-        //    "--share=ipc",
-        "--talk-name=org.freedesktop.Flatpak",
-        //    "--socket=x11",
-        //    "--device=dri",
         "--device=all"
   ]
 }