Index: uspace/lib/c/generic/io/con_srv.c
===================================================================
--- uspace/lib/c/generic/io/con_srv.c	(revision 8edec5347eb33f22b1815db3609ff69c0f618d63)
+++ uspace/lib/c/generic/io/con_srv.c	(revision 232bf2c52c8d4572d78e81df5fe84ab28ed8ac39)
@@ -281,4 +281,26 @@
 }
 
+static void con_set_caption_srv(con_srv_t *srv, ipc_call_t *icall)
+{
+	char *caption;
+	errno_t rc;
+
+	rc = async_data_write_accept((void **) &caption, true, 0,
+	    CON_CAPTION_MAXLEN, 0, NULL);
+	if (rc != EOK) {
+		async_answer_0(icall, rc);
+		return;
+	}
+
+	if (srv->srvs->ops->set_caption == NULL) {
+		async_answer_0(icall, ENOTSUP);
+		return;
+	}
+
+	srv->srvs->ops->set_caption(srv, caption);
+	free(caption);
+	async_answer_0(icall, EOK);
+}
+
 static void con_get_event_srv(con_srv_t *srv, ipc_call_t *icall)
 {
@@ -488,4 +510,7 @@
 			con_set_cursor_visibility_srv(srv, &call);
 			break;
+		case CONSOLE_SET_CAPTION:
+			con_set_caption_srv(srv, &call);
+			break;
 		case CONSOLE_GET_EVENT:
 			con_get_event_srv(srv, &call);
Index: uspace/lib/c/generic/io/console.c
===================================================================
--- uspace/lib/c/generic/io/console.c	(revision 8edec5347eb33f22b1815db3609ff69c0f618d63)
+++ uspace/lib/c/generic/io/console.c	(revision 232bf2c52c8d4572d78e81df5fe84ab28ed8ac39)
@@ -40,4 +40,5 @@
 #include <errno.h>
 #include <stdlib.h>
+#include <str.h>
 #include <vfs/vfs_sess.h>
 #include <io/console.h>
@@ -128,4 +129,30 @@
 	async_req_1_0(exch, CONSOLE_SET_CURSOR_VISIBILITY, (show != false));
 	async_exchange_end(exch);
+}
+
+/** Set console caption.
+ *
+ * Set caption text for the console (if the console suports captions).
+ *
+ * @param ctrl Console
+ * @param caption Caption text
+ * @return EOK on success or an error code
+ */
+errno_t console_set_caption(console_ctrl_t *ctrl, const char *caption)
+{
+	async_exch_t *exch = async_exchange_begin(ctrl->output_sess);
+	ipc_call_t answer;
+	aid_t req = async_send_0(exch, CONSOLE_SET_CAPTION, &answer);
+	errno_t retval = async_data_write_start(exch, caption, str_size(caption));
+
+	if (retval != EOK) {
+		async_forget(req);
+		async_exchange_end(exch);
+		return retval;
+	}
+
+	async_wait_for(req, &retval);
+	async_exchange_end(exch);
+	return EOK;
 }
 
Index: uspace/lib/c/include/io/con_srv.h
===================================================================
--- uspace/lib/c/include/io/con_srv.h	(revision 8edec5347eb33f22b1815db3609ff69c0f618d63)
+++ uspace/lib/c/include/io/con_srv.h	(revision 232bf2c52c8d4572d78e81df5fe84ab28ed8ac39)
@@ -51,4 +51,6 @@
 typedef struct con_ops con_ops_t;
 
+#define CON_CAPTION_MAXLEN 255
+
 /** Service setup (per sevice) */
 typedef struct {
@@ -83,4 +85,5 @@
 	void (*set_rgb_color)(con_srv_t *, pixel_t, pixel_t);
 	void (*set_cursor_visibility)(con_srv_t *, bool);
+	errno_t (*set_caption)(con_srv_t *, const char *);
 	errno_t (*get_event)(con_srv_t *, cons_event_t *);
 	errno_t (*map)(con_srv_t *, sysarg_t, sysarg_t, charfield_t **);
Index: uspace/lib/c/include/io/console.h
===================================================================
--- uspace/lib/c/include/io/console.h	(revision 8edec5347eb33f22b1815db3609ff69c0f618d63)
+++ uspace/lib/c/include/io/console.h	(revision 232bf2c52c8d4572d78e81df5fe84ab28ed8ac39)
@@ -83,4 +83,5 @@
 
 extern void console_cursor_visibility(console_ctrl_t *, bool);
+extern errno_t console_set_caption(console_ctrl_t *, const char *);
 extern errno_t console_get_color_cap(console_ctrl_t *, sysarg_t *);
 extern errno_t console_get_event(console_ctrl_t *, cons_event_t *);
Index: uspace/lib/c/include/ipc/console.h
===================================================================
--- uspace/lib/c/include/ipc/console.h	(revision 8edec5347eb33f22b1815db3609ff69c0f618d63)
+++ uspace/lib/c/include/ipc/console.h	(revision 232bf2c52c8d4572d78e81df5fe84ab28ed8ac39)
@@ -50,4 +50,5 @@
 	CONSOLE_SET_RGB_COLOR,
 	CONSOLE_SET_CURSOR_VISIBILITY,
+	CONSOLE_SET_CAPTION,
 	CONSOLE_MAP,
 	CONSOLE_UNMAP,
