diff --git a/CoolUtils.ml b/CoolUtils.ml
index bf60d093209ad929114761b1911e999a92b13d3b..d2da1160ba8df39e4deb221b5828d4c0dc8916d9 100644
--- a/CoolUtils.ml
+++ b/CoolUtils.ml
@@ -42,3 +42,4 @@ let cl_set_agents arr = ignore (
     agents := TArray.uniq !agents)
 
 
+let intlist_of_string str = List.map int_of_string (Str.split (Str.regexp "[ \t,]+") str)
diff --git a/CoolUtils.mli b/CoolUtils.mli
index 73e7e53eacd0eecd30988334368851013011b1e0..d8cd77144cda90b1efa6c0bd4a8affe88d791e10 100644
--- a/CoolUtils.mli
+++ b/CoolUtils.mli
@@ -18,3 +18,5 @@ end
 val cl_get_agents : unit -> int array
 val cl_set_agents : int array -> unit
 
+val intlist_of_string : string -> int list
+
diff --git a/coalgcompare.ml b/coalgcompare.ml
index 81a9edb0a07c6f3a8e4d3b3fc696aada392fa809..30f86abbf9d86b406f2ccb131778647903ff97d3 100644
--- a/coalgcompare.ml
+++ b/coalgcompare.ml
@@ -231,9 +231,20 @@ let doGenCL aglist sizelist : unit =
   List.iter (fun sz -> printformula (genF sz)) sizelist
 
 let _ =
+    let argidx = ref (1) in
+    let fail str = raise (CoAlgFormula.CoAlgException (str)) in
+    let getarg () =
+        if !argidx >= Array.length Sys.argv then fail "Missing argument" else ();
+        let str = Sys.argv.(!argidx) in
+        argidx := 1 + !argidx;
+        str
+    in
     if Array.length Sys.argv < 2 then printUsage ()
     else match Sys.argv.(1) with
     | "K" -> printRawData (doTestK ())
+    | "genCL" -> let p1 = getarg () in
+                 let p2 = getarg () in
+                 doGenCL (intlist_of_string p1) (intlist_of_string p2)
     | _ -> raise (CoAlgFormula.CoAlgException ("Unknown Logic name »" ^ (Sys.argv.(1)) ^ "«"))