diff --git a/ivette/api/dive/index.ts b/ivette/api/plugins/dive/index.ts
similarity index 92%
rename from ivette/api/dive/index.ts
rename to ivette/api/plugins/dive/index.ts
index ddcb843297334a69edb8701cec64cdc788980405..e1bc260040c20ab9541d1464d712df6ce5af8c94 100644
--- a/ivette/api/dive/index.ts
+++ b/ivette/api/plugins/dive/index.ts
@@ -3,7 +3,7 @@
 /**
    Dive Services
    @packageDocumentation
-   @module api/dive
+   @module api/plugins/dive
 */
 
 //@ts-ignore
@@ -45,7 +45,7 @@ export const byVariableName: Compare.Order<variableName> =
 
 const graph_internal: Server.GetRequest<null,Json.json> = {
   kind: Server.RqKind.GET,
-  name:   'dive.graph',
+  name:   'plugins.dive.graph',
   input:  Json.jNull,
   output: Json.jAny,
 };
@@ -54,7 +54,7 @@ export const graph: Server.GetRequest<null,Json.json>= graph_internal;
 
 const clear_internal: Server.ExecRequest<null,null> = {
   kind: Server.RqKind.EXEC,
-  name:   'dive.clear',
+  name:   'plugins.dive.clear',
   input:  Json.jNull,
   output: Json.jNull,
 };
@@ -63,7 +63,7 @@ export const clear: Server.ExecRequest<null,null>= clear_internal;
 
 const addVar_internal: Server.ExecRequest<variableName,Json.json> = {
   kind: Server.RqKind.EXEC,
-  name:   'dive.addVar',
+  name:   'plugins.dive.addVar',
   input:  jVariableName,
   output: Json.jAny,
 };
@@ -75,7 +75,7 @@ const addFunctionAlarms_internal: Server.ExecRequest<
   Json.json
   > = {
   kind: Server.RqKind.EXEC,
-  name:   'dive.addFunctionAlarms',
+  name:   'plugins.dive.addFunctionAlarms',
   input:  Json.jKey<'#fct'>('#fct'),
   output: Json.jAny,
 };
@@ -90,7 +90,7 @@ const explore_internal: Server.ExecRequest<
   Json.json
   > = {
   kind: Server.RqKind.EXEC,
-  name:   'dive.explore',
+  name:   'plugins.dive.explore',
   input:  Json.jIndex<'#dive-node'>('#dive-node'),
   output: Json.jAny,
 };
@@ -99,7 +99,7 @@ export const explore: Server.ExecRequest<Json.index<'#dive-node'>,Json.json>= ex
 
 const show_internal: Server.ExecRequest<Json.index<'#dive-node'>,Json.json> = {
   kind: Server.RqKind.EXEC,
-  name:   'dive.show',
+  name:   'plugins.dive.show',
   input:  Json.jIndex<'#dive-node'>('#dive-node'),
   output: Json.jAny,
 };
@@ -108,7 +108,7 @@ export const show: Server.ExecRequest<Json.index<'#dive-node'>,Json.json>= show_
 
 const hide_internal: Server.ExecRequest<Json.index<'#dive-node'>,Json.json> = {
   kind: Server.RqKind.EXEC,
-  name:   'dive.hide',
+  name:   'plugins.dive.hide',
   input:  Json.jIndex<'#dive-node'>('#dive-node'),
   output: Json.jAny,
 };
diff --git a/src/plugins/server/package.ml b/src/plugins/server/package.ml
index 5da3ab8ad8e8e504d25f56c84dba0b77119f288e..6f2e56f956b5cafbb98573b3d8712d95206ed9d6 100644
--- a/src/plugins/server/package.ml
+++ b/src/plugins/server/package.ml
@@ -35,7 +35,7 @@ let pp_step fmt a =
 
 let pp_plugin fmt = function
   | Kernel -> pp_step fmt "kernel"
-  | Plugin p -> pp_step fmt p
+  | Plugin p -> pp_step fmt "plugins" ; pp_step fmt p
 
 let pp_ident fmt { plugin ; package ; name } =
   ( pp_plugin fmt plugin ;
@@ -69,7 +69,7 @@ struct
   let target p ids =
     match p with
     | Kernel -> "kernel" :: ids
-    | Plugin p -> "plugin" :: p :: ids
+    | Plugin p -> "plugins" :: p :: ids
 
   (* propose various abbreviations ; finally render full qualified name *)
   let ranked source { plugin ; package ; name } k =
@@ -241,12 +241,12 @@ type packageInfo = {
 let name_of_ident ?(sep=".") id =
   String.concat sep @@ match id.plugin with
   | Kernel -> "kernel" :: id.package @ [ id.name ]
-  | Plugin p -> p :: (id.package @ [id.name ])
+  | Plugin p -> "plugins" :: p :: (id.package @ [id.name ])
 
 let name_of_pkg ?(sep=".") plugin package =
   String.concat sep @@ match plugin with
   | Kernel -> "kernel" :: package
-  | Plugin p -> p :: package
+  | Plugin p -> "plugins" :: p :: package
 
 let name_of_pkginfo ?sep { p_plugin ; p_package } =
   name_of_pkg ?sep p_plugin p_package