diff --git a/ivette/Makefile b/ivette/Makefile
index c038ba8aca794a3e0ad176fa49e5c1a97b940f8c..137f743ac2696b9cd67ca6a2343e85c840a77ef7 100644
--- a/ivette/Makefile
+++ b/ivette/Makefile
@@ -39,8 +39,8 @@ COPYRIGHT=CEA LIST / LSL
 
 all: pkg lint app
 
-app: dome-app
-dev: dome-dev
+app: api dome-app
+dev: api dome-dev
 
 lint: dome-pkg dome-templ checkcase
 	@echo "[Ivette] running typechecker & linter"
diff --git a/ivette/src/dome/main/dome.ts b/ivette/src/dome/main/dome.ts
index d32c37a3f9c3c371a5705628c5dd8acb56865dab..bec195e27ee9085cccef96609a09e8126e80988f 100644
--- a/ivette/src/dome/main/dome.ts
+++ b/ivette/src/dome/main/dome.ts
@@ -501,8 +501,13 @@ function createBrowserWindow(
 // --- Application Window(s) & Command Line
 // --------------------------------------------------------------------------
 
-function stripElectronArgv(argv: string[]): string[] {
-  return argv.slice(DEVEL ? 3 : (LOCAL ? 2 : 1)).filter((p) => !!p);
+interface Cmd { wdir: string; argv: string[] }
+
+function stripElectronArgv(cmd: Cmd): Cmd
+{
+  const wdir = DEVEL ? cmd.argv[3] : cmd.wdir ;
+  const argv = cmd.argv.slice(DEVEL ? 4 : (LOCAL ? 2 : 1)).filter((p) => !!p);
+  return { wdir, argv };
 }
 
 function createPrimaryWindow(): void {
@@ -516,14 +521,14 @@ function createPrimaryWindow(): void {
     });
   const cwd = process.cwd();
   const wdir = cwd === '/' ? app.getPath('home') : cwd;
-  const argv = stripElectronArgv(process.argv);
+  const cmd = stripElectronArgv({ wdir, argv: process.argv });
 
   // Initialize Theme
   const globals = obtainGlobalSettings();
   applyThemeSettings(globals);
 
   // Create Window
-  createBrowserWindow(true, { title: appName }, argv, wdir);
+  createBrowserWindow(true, { title: appName }, cmd.argv, cmd.wdir);
 }
 
 let appCount = 1;
@@ -538,9 +543,9 @@ function createSecondaryWindow(
   if (argString) {
     argString = argString.substring(argStart.length);
     const electronArgv = JSON.parse(argString);
-    const argv = stripElectronArgv(electronArgv);
+    const cmd = stripElectronArgv({ wdir, argv: electronArgv });
     const title = `${appName} #${++appCount}`;
-    createBrowserWindow(false, { title }, argv, wdir);
+    createBrowserWindow(false, { title }, cmd.argv, cmd.wdir);
   }
 }
 
diff --git a/ivette/src/dome/misc/system.ts b/ivette/src/dome/misc/system.ts
index f97d6e7760df5f02ba7cc2a1860290ec7b03bcea..0896e7712106c082ab1ad4a2db4d1da4354e55fa 100644
--- a/ivette/src/dome/misc/system.ts
+++ b/ivette/src/dome/misc/system.ts
@@ -144,6 +144,7 @@ let COMMAND_WDIR = '.';
 let COMMAND_ARGV: string[] = [];
 
 function setCommandLine(argv: string[], wdir: string): void {
+  process.chdir(wdir);
   COMMAND_ARGV = argv;
   COMMAND_WDIR = wdir;
 }
diff --git a/ivette/src/dome/template/makefile b/ivette/src/dome/template/makefile
index b79a6e427570a59875966f7b19825a5aa5039b02..1f8033fcaf03d3ec165d86b7e415fb9407dad4ce 100644
--- a/ivette/src/dome/template/makefile
+++ b/ivette/src/dome/template/makefile
@@ -25,6 +25,7 @@
 # --------------------------------------------------------------------------
 
 # DOMEMK_ reserved for makefile derived variables
+# CURDIR is a Makefile builtin variable
 
 APP?=$(shell basename $(CURDIR))
 COPYRIGHT?=CEA Tech
@@ -220,10 +221,11 @@ dome-dev: dome-pkg dome-templ
 	@echo "#!/bin/sh" >> $(DOME_CLI)
 	@echo "export DOME='$(DOME)'" >> $(DOME_CLI)
 	@echo "export DOME_ENV='dev'" >> $(DOME_CLI)
-	@echo 'exec $(DOME_MK_BIN)/electron-webpack dev $(DOME_ARGS) $(DOME_DEV) "$$@"' >> $(DOME_CLI)
+	@echo 'WDIR=$$PWD' >> $(DOME_CLI)
+	@echo 'ARGV="$(DOME_ARGS) $(DOME_DEV) $$@"' >> $(DOME_CLI)
+	@echo "cd $(CURDIR)" >> $(DOME_CLI)
+	@echo 'exec $(DOME_MK_BIN)/electron-webpack dev $$WDIR $$ARGV' >> $(DOME_CLI)
 	@chmod 555 $(DOME_CLI)
-	@echo "[Dome] running application (development)"
-	@$(DOME_CLI)
 
 # --------------------------------------------------------------------------
 # ---  Application Building