diff --git a/xtrn/oneliners/oneliners.xjs b/xtrn/oneliners/oneliners.xjs
new file mode 100644
index 0000000000000000000000000000000000000000..26f1a9996da4b2b7e985f3395da8b5ac21f5bb27
--- /dev/null
+++ b/xtrn/oneliners/oneliners.xjs
@@ -0,0 +1,33 @@
+<?xjs
+
+var show = 5;
+var lines = [];
+
+try {
+	load(system.exec_dir + "../xtrn/oneliners/lib.js");
+	var settings = initSettings(system.exec_dir + "../xtrn/oneliners/");
+	var oneliners = new Oneliners(settings.server, settings.port);
+	var count = oneliners.count;
+	lines = (count < show) ? oneliners.read(0) : oneliners.read(0 - count);
+	oneliners.close();
+} catch(err) {
+	log(LOG_ERR, err);
+}
+
+?>
+
+Synchronet Oneliners<br><br>
+
+<?xjs
+
+for(var line = 0; line < lines.length; line++) {
+	var bg = (line %2 == 0) ? "#1C1C1C" : "#585858";
+	var fg = (line %2 == 0) ? "#FFFFFF" : "#000000";
+	write("<div style='width:100%;color:"+fg+";background-color:"+bg+";'>");
+	write(lines[line].alias + "@" + lines[line].qwkid + "<br>");
+	write(system.timestr(lines[line].time) + "<br>");
+	write(lines[line].oneliner.replace(/\|\d\d|\1\w/g, "") + "<br>");
+	write("</div>");
+}
+
+?>