diff --git a/.gitattributes b/.gitattributes
index 9578333d..5ddd271a 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,3 +1,3 @@
 src/lib/i18n/generated_kcMessages/* linguist-documentation
-src/bin/build-keycloak-theme/index.ts -linguist-detectable
+src/bin/keycloakify/index.ts -linguist-detectable
 src/bin/install-builtin-keycloak-themes.ts -linguist-detectable
diff --git a/package.json b/package.json
index 144cf11c..51c3f23f 100755
--- a/package.json
+++ b/package.json
@@ -21,7 +21,7 @@
         "format:check": "yarn _format --list-different"
     },
     "bin": {
-        "build-keycloak-theme": "dist/bin/build-keycloak-theme/index.js",
+        "keycloakify": "dist/bin/keycloakify/index.js",
         "create-keycloak-email-directory": "dist/bin/create-keycloak-email-directory.js",
         "download-builtin-keycloak-theme": "dist/bin/download-builtin-keycloak-theme.js"
     },
diff --git a/src/bin/build-keycloak-theme/index.ts b/src/bin/build-keycloak-theme/index.ts
deleted file mode 100644
index f2283be3..00000000
--- a/src/bin/build-keycloak-theme/index.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env node
-
-export * from "./build-keycloak-theme";
-import { main } from "./build-keycloak-theme";
-
-if (require.main === module) {
-    main();
-}
diff --git a/src/bin/create-keycloak-email-directory.ts b/src/bin/create-keycloak-email-directory.ts
index 3ef14c2c..9d72d0bb 100644
--- a/src/bin/create-keycloak-email-directory.ts
+++ b/src/bin/create-keycloak-email-directory.ts
@@ -1,7 +1,7 @@
 #!/usr/bin/env node
 
 import { downloadBuiltinKeycloakTheme } from "./download-builtin-keycloak-theme";
-import { keycloakThemeEmailDirPath } from "./build-keycloak-theme";
+import { keycloakThemeEmailDirPath } from "./keycloakify";
 import { join as pathJoin, basename as pathBasename } from "path";
 import { transformCodebase } from "./tools/transformCodebase";
 import { promptKeycloakVersion } from "./promptKeycloakVersion";
diff --git a/src/bin/download-builtin-keycloak-theme.ts b/src/bin/download-builtin-keycloak-theme.ts
index 66dbcdc2..3aa7ede9 100644
--- a/src/bin/download-builtin-keycloak-theme.ts
+++ b/src/bin/download-builtin-keycloak-theme.ts
@@ -1,6 +1,6 @@
 #!/usr/bin/env node
 
-import { keycloakThemeBuildingDirPath } from "./build-keycloak-theme";
+import { keycloakThemeBuildingDirPath } from "./keycloakify";
 import { join as pathJoin } from "path";
 import { downloadAndUnzip } from "./tools/downloadAndUnzip";
 import { promptKeycloakVersion } from "./promptKeycloakVersion";
diff --git a/src/bin/build-keycloak-theme/BuildOptions.ts b/src/bin/keycloakify/BuildOptions.ts
similarity index 100%
rename from src/bin/build-keycloak-theme/BuildOptions.ts
rename to src/bin/keycloakify/BuildOptions.ts
diff --git a/src/bin/build-keycloak-theme/ftlValuesGlobalName.ts b/src/bin/keycloakify/ftlValuesGlobalName.ts
similarity index 100%
rename from src/bin/build-keycloak-theme/ftlValuesGlobalName.ts
rename to src/bin/keycloakify/ftlValuesGlobalName.ts
diff --git a/src/bin/build-keycloak-theme/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl b/src/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl
similarity index 100%
rename from src/bin/build-keycloak-theme/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl
rename to src/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl
diff --git a/src/bin/build-keycloak-theme/generateFtl/generateFtl.ts b/src/bin/keycloakify/generateFtl/generateFtl.ts
similarity index 100%
rename from src/bin/build-keycloak-theme/generateFtl/generateFtl.ts
rename to src/bin/keycloakify/generateFtl/generateFtl.ts
diff --git a/src/bin/build-keycloak-theme/generateFtl/index.ts b/src/bin/keycloakify/generateFtl/index.ts
similarity index 100%
rename from src/bin/build-keycloak-theme/generateFtl/index.ts
rename to src/bin/keycloakify/generateFtl/index.ts
diff --git a/src/bin/build-keycloak-theme/generateJavaStackFiles.ts b/src/bin/keycloakify/generateJavaStackFiles.ts
similarity index 100%
rename from src/bin/build-keycloak-theme/generateJavaStackFiles.ts
rename to src/bin/keycloakify/generateJavaStackFiles.ts
diff --git a/src/bin/build-keycloak-theme/generateKeycloakThemeResources.ts b/src/bin/keycloakify/generateKeycloakThemeResources.ts
similarity index 100%
rename from src/bin/build-keycloak-theme/generateKeycloakThemeResources.ts
rename to src/bin/keycloakify/generateKeycloakThemeResources.ts
diff --git a/src/bin/build-keycloak-theme/generateStartKeycloakTestingContainer.ts b/src/bin/keycloakify/generateStartKeycloakTestingContainer.ts
similarity index 100%
rename from src/bin/build-keycloak-theme/generateStartKeycloakTestingContainer.ts
rename to src/bin/keycloakify/generateStartKeycloakTestingContainer.ts
diff --git a/src/bin/keycloakify/index.ts b/src/bin/keycloakify/index.ts
new file mode 100644
index 00000000..258b6e23
--- /dev/null
+++ b/src/bin/keycloakify/index.ts
@@ -0,0 +1,8 @@
+#!/usr/bin/env node
+
+export * from "./keycloakify";
+import { main } from "./keycloakify";
+
+if (require.main === module) {
+    main();
+}
diff --git a/src/bin/build-keycloak-theme/build-keycloak-theme.ts b/src/bin/keycloakify/keycloakify.ts
similarity index 100%
rename from src/bin/build-keycloak-theme/build-keycloak-theme.ts
rename to src/bin/keycloakify/keycloakify.ts
diff --git a/src/bin/build-keycloak-theme/replacers/replaceImportsFromStaticInJsCode.ts b/src/bin/keycloakify/replacers/replaceImportsFromStaticInJsCode.ts
similarity index 100%
rename from src/bin/build-keycloak-theme/replacers/replaceImportsFromStaticInJsCode.ts
rename to src/bin/keycloakify/replacers/replaceImportsFromStaticInJsCode.ts
diff --git a/src/bin/build-keycloak-theme/replacers/replaceImportsInCssCode.ts b/src/bin/keycloakify/replacers/replaceImportsInCssCode.ts
similarity index 100%
rename from src/bin/build-keycloak-theme/replacers/replaceImportsInCssCode.ts
rename to src/bin/keycloakify/replacers/replaceImportsInCssCode.ts
diff --git a/src/bin/build-keycloak-theme/replacers/replaceImportsInInlineCssCode.ts b/src/bin/keycloakify/replacers/replaceImportsInInlineCssCode.ts
similarity index 100%
rename from src/bin/build-keycloak-theme/replacers/replaceImportsInInlineCssCode.ts
rename to src/bin/keycloakify/replacers/replaceImportsInInlineCssCode.ts
diff --git a/src/lib/getKcContext/KcContextBase.ts b/src/lib/getKcContext/KcContextBase.ts
index 34cb3b4c..01918200 100644
--- a/src/lib/getKcContext/KcContextBase.ts
+++ b/src/lib/getKcContext/KcContextBase.ts
@@ -1,4 +1,4 @@
-import type { PageId } from "../../bin/build-keycloak-theme/generateFtl";
+import type { PageId } from "../../bin/keycloakify/generateFtl";
 import { assert } from "tsafe/assert";
 import type { Equals } from "tsafe";
 import type { MessageKeyBase } from "../i18n";
diff --git a/src/lib/getKcContext/getKcContextFromWindow.ts b/src/lib/getKcContext/getKcContextFromWindow.ts
index 0142277b..400a177f 100644
--- a/src/lib/getKcContext/getKcContextFromWindow.ts
+++ b/src/lib/getKcContext/getKcContextFromWindow.ts
@@ -1,6 +1,6 @@
 import type { KcContextBase } from "./KcContextBase";
 import type { AndByDiscriminatingKey } from "../tools/AndByDiscriminatingKey";
-import { ftlValuesGlobalName } from "../../bin/build-keycloak-theme/ftlValuesGlobalName";
+import { ftlValuesGlobalName } from "../../bin/keycloakify/ftlValuesGlobalName";
 
 export type ExtendsKcContextBase<KcContextExtended extends { pageId: string }> = [KcContextExtended] extends [never]
     ? KcContextBase
diff --git a/src/test/bin/generateKeycloakThemeResources.ts b/src/test/bin/generateKeycloakThemeResources.ts
index 85f931f5..16ef1a04 100644
--- a/src/test/bin/generateKeycloakThemeResources.ts
+++ b/src/test/bin/generateKeycloakThemeResources.ts
@@ -1,5 +1,5 @@
 import { join as pathJoin } from "path";
-import { generateKeycloakThemeResources } from "../../bin/build-keycloak-theme/generateKeycloakThemeResources";
+import { generateKeycloakThemeResources } from "../../bin/keycloakify/generateKeycloakThemeResources";
 import { setupSampleReactProject, sampleReactProjectDirPath } from "./setupSampleReactProject";
 
 setupSampleReactProject();
diff --git a/src/test/bin/main.ts b/src/test/bin/main.ts
index 19ac2b9c..630f90be 100644
--- a/src/test/bin/main.ts
+++ b/src/test/bin/main.ts
@@ -9,8 +9,8 @@ setupSampleReactProject();
 const binDirPath = pathJoin(getProjectRoot(), "dist_test", "bin");
 
 st.execSyncTrace(
-    //`node ${pathJoin(binDirPath, "build-keycloak-theme")} --external-assets`,
-    `node ${pathJoin(binDirPath, "build-keycloak-theme")}`,
+    //`node ${pathJoin(binDirPath, "keycloakify")} --external-assets`,
+    `node ${pathJoin(binDirPath, "keycloakify")}`,
     { "cwd": sampleReactProjectDirPath }
 );
 
diff --git a/src/test/bin/replaceImportFromStatic.ts b/src/test/bin/replaceImportFromStatic.ts
index e6096780..baa6bbbb 100644
--- a/src/test/bin/replaceImportFromStatic.ts
+++ b/src/test/bin/replaceImportFromStatic.ts
@@ -1,6 +1,6 @@
-import { replaceImportsFromStaticInJsCode } from "../../bin/build-keycloak-theme/replacers/replaceImportsFromStaticInJsCode";
-import { generateCssCodeToDefineGlobals, replaceImportsInCssCode } from "../../bin/build-keycloak-theme/replacers/replaceImportsInCssCode";
-import { replaceImportsInInlineCssCode } from "../../bin/build-keycloak-theme/replacers/replaceImportsInInlineCssCode";
+import { replaceImportsFromStaticInJsCode } from "../../bin/keycloakify/replacers/replaceImportsFromStaticInJsCode";
+import { generateCssCodeToDefineGlobals, replaceImportsInCssCode } from "../../bin/keycloakify/replacers/replaceImportsInCssCode";
+import { replaceImportsInInlineCssCode } from "../../bin/keycloakify/replacers/replaceImportsInInlineCssCode";
 import { assert } from "tsafe/assert";
 import { same } from "evt/tools/inDepth/same";
 import { assetIsSameCode } from "../tools/assertIsSameCode";
diff --git a/src/test/bin/setupSampleReactProject.ts b/src/test/bin/setupSampleReactProject.ts
index eb0dc8fe..63231841 100644
--- a/src/test/bin/setupSampleReactProject.ts
+++ b/src/test/bin/setupSampleReactProject.ts
@@ -6,7 +6,8 @@ export const sampleReactProjectDirPath = pathJoin(getProjectRoot(), "sample_reac
 
 export function setupSampleReactProject() {
     downloadAndUnzip({
-        "url": "https://github.com/garronej/keycloakify/releases/download/v0.0.1/sample_build_dir_and_package_json.zip",
-        "destDirPath": sampleReactProjectDirPath
+        "url": "https://github.com/InseeFrLab/keycloakify/releases/download/v0.0.1/sample_build_dir_and_package_json.zip",
+        "destDirPath": sampleReactProjectDirPath,
+        "cacheDirPath": pathJoin(sampleReactProjectDirPath, "build_keycloak", ".cache")
     });
 }