diff --git a/.gitignore b/.gitignore
index b499e0894c35c95d989660ac54f6b1eddbeaadb3..f9fb1f27c705a33f569ae7ee3e2547a60c55abc5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -43,9 +43,9 @@ _obj
 /aclocal.m4
 /ltmain.sh
 /ylwrap
+/client/kresc
 /doc/doxyxml
 /doc/html
-/daemon/kresc
 /daemon/kresd
 /daemon/lua/*.inc
 /daemon/lua/kres.lua
diff --git a/Makefile b/Makefile
index 3a177936af90c7ec4794ef2de7c58902a4347c63..1d3cc8a9cd4c2d96e8bff3a7d3587342ca37ff82 100644
--- a/Makefile
+++ b/Makefile
@@ -187,6 +187,7 @@ $(DESTDIR)$(ETCDIR):
 # Sub-targets
 include contrib/contrib.mk
 include lib/lib.mk
+include client/client.mk
 include daemon/daemon.mk
 include modules/modules.mk
 include tests/tests.mk
diff --git a/client/client.mk b/client/client.mk
new file mode 100644
index 0000000000000000000000000000000000000000..07508aa305f476c48037f48215b897f3869075ec
--- /dev/null
+++ b/client/client.mk
@@ -0,0 +1,14 @@
+# Experimental client requires libedit
+
+ifeq ($(HAS_libedit), yes)
+kresc_SOURCES := client/kresc.c
+kresc_CFLAGS += -fPIE $(libedit_CFLAGS)
+kresc_LIBS += $(contrib_TARGET) $(libedit_LIBS)
+kresc_DEPEND := $(libkres) $(contrib)
+$(eval $(call make_sbin,kresc,client,yes))
+client: $(kresc)
+client-install: kresc-install
+client-clean: kresc-clean
+
+.PHONY: client client-install client-clean
+endif
diff --git a/daemon/kresc.c b/client/kresc.c
similarity index 100%
rename from daemon/kresc.c
rename to client/kresc.c
diff --git a/daemon/daemon.mk b/daemon/daemon.mk
index 09717d22b7301c64007bc41ce7b74cffe80169af..d1cef6c22847b3ac457de96064069c748ce6aa65 100644
--- a/daemon/daemon.mk
+++ b/daemon/daemon.mk
@@ -77,16 +77,4 @@ daemon/lua/kres-gen.lua: | $(libkres)
 	daemon/lua/kres-gen.sh | sed 's/    /\t/g' > $@
 .DELETE_ON_ERROR: daemon/lua/kres-gen.lua
 
-# Client
-ifeq ($(HAS_libedit), yes)
-kresc_SOURCES := daemon/kresc.c
-kresc_CFLAGS += -fPIE $(libedit_CFLAGS)
-kresc_LIBS += $(contrib_TARGET) $(libedit_LIBS)
-kresc_DEPEND := $(libkres) $(contrib)
-$(eval $(call make_sbin,kresc,daemon,yes))
-client: $(kresc)
-client-install: kresc-install
-client-clean: kresc-clean
-endif
-
-.PHONY: daemon daemon-install daemon-clean client client-install client-clean
+.PHONY: daemon daemon-install daemon-clean