diff --git a/cdist/conf/type/__daemontools_service/manifest b/cdist/conf/type/__daemontools_service/manifest
new file mode 100644
index 00000000..34f45545
--- /dev/null
+++ b/cdist/conf/type/__daemontools_service/manifest
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+RUN_PREFIX="#!/bin/sh
+exec 2>&1
+exec "  # mind the space :D
+
+name=$__object_id
+servicedir=$(cat "$__object/parameter/servicedir")
+run=$(cat "$__object/parameter/run")
+runfile=$(cat "$__object/parameter/run-file")
+logrun=$(cat "$__object/parameter/log-run")
+
+badusage() {
+	echo "__daemontools_service/$__object_id: exactly one of --run, --run-file must be set" >&2
+	exit 1
+}
+
+[ -z "$run$runfile" ] && badusage
+[ -n "$run" ] && [ -n "$runfile" ] && badusage
+
+__directory $servicedir/$name/log/main --parents
+
+echo "$RUN_PREFIX$run" | require="__directory/$servicedir/$name/log/main" __config_file "$servicedir/$name/run" \
+	--onchange "svc -t '$servicedir/$name' 2>/dev/null" \
+	--mode 755 \
+	--source "${runfile:--}"
+
+echo "$RUN_PREFIX$logrun" | require="__directory/$servicedir/$name/log/main" __config_file $servicedir/$name/log/run \
+	--onchange "svc -t '$servicedir/$name/log' 2>/dev/null" \
+	--mode 755 \
+	--source "-"
diff --git a/cdist/conf/type/__daemontools_service/parameter/default/log-run b/cdist/conf/type/__daemontools_service/parameter/default/log-run
new file mode 100644
index 00000000..80d57a74
--- /dev/null
+++ b/cdist/conf/type/__daemontools_service/parameter/default/log-run
@@ -0,0 +1 @@
+multilog t ./main
diff --git a/cdist/conf/type/__daemontools_service/parameter/default/run b/cdist/conf/type/__daemontools_service/parameter/default/run
new file mode 100644
index 00000000..e69de29b
diff --git a/cdist/conf/type/__daemontools_service/parameter/default/run-file b/cdist/conf/type/__daemontools_service/parameter/default/run-file
new file mode 100644
index 00000000..e69de29b
diff --git a/cdist/conf/type/__daemontools_service/parameter/default/servicedir b/cdist/conf/type/__daemontools_service/parameter/default/servicedir
new file mode 100644
index 00000000..b74e27f6
--- /dev/null
+++ b/cdist/conf/type/__daemontools_service/parameter/default/servicedir
@@ -0,0 +1 @@
+/service
diff --git a/cdist/conf/type/__daemontools_service/parameter/optional b/cdist/conf/type/__daemontools_service/parameter/optional
new file mode 100644
index 00000000..7e54985f
--- /dev/null
+++ b/cdist/conf/type/__daemontools_service/parameter/optional
@@ -0,0 +1,4 @@
+log-run
+run
+run-file
+servicedir