diff --git a/Interpreter.hs b/Interpreter.hs
new file mode 100644
index 0000000000000000000000000000000000000000..77a392142b005a6f0bd97eab09d24a4482a028d4
--- /dev/null
+++ b/Interpreter.hs
@@ -0,0 +1,14 @@
+module Main where
+
+import System.Environment
+import IServ.Remote.Message
+import IServ.Remote.Interpreter
+
+verbose :: Bool
+verbose = True
+
+main :: IO ()
+main = do
+    [portStr, storagePath] <- getArgs
+    let port = read portStr
+    startInterpreter' verbose storagePath port
diff --git a/iserv-proxy.cabal b/iserv-proxy.cabal
index 792463fd17d59d8a211550c3b776ac7b0a8b1e25..71798641cbf2800e31d44fee36f43ca9f62d2345 100644
--- a/iserv-proxy.cabal
+++ b/iserv-proxy.cabal
@@ -37,8 +37,9 @@ Description:
       > iserv $ arch-platform-target-cabal install -flibrary
   .
   * setup an application for your target that calls the
-    @startInterpreter@ function. This could be either Haskell or your
-    target's FFI-capable language, if needed.
+    @startInterpreter@ function. This could be either the included
+    @iserv-proxy-interpreter@ executable or, if necessary, an application in
+    your target's FFI-capable language:
   .
       >  void startInterpreter(
       >    false /* verbose */, 5000 /* port */,
@@ -94,3 +95,10 @@ Executable iserv-proxy
                   ghci       == 9.3,
                   libiserv   == 9.3,
                   iserv-proxy
+
+Executable iserv-proxy-interpreter
+   Default-Language: Haskell2010
+   Main-Is: Interpreter.hs
+   Build-Depends: base       >= 4   && < 5,
+                  iserv-proxy
+