diff --git a/cmd-op.go b/cmd-op.go
index 5bedcfc..203ef8c 100644
--- a/cmd-op.go
+++ b/cmd-op.go
@@ -252,3 +252,23 @@ func part(conn *irc.Conn, nick *irc.Nick, args, target string) {
 		conn.Part(channel, "")
 	}
 }
+
+func highlightOps(conn *irc.Conn, nick *irc.Nick, args, target string) {
+	channel, args := parseAccess(conn, nick, target, args, "t")
+	if channel == "" {
+		return
+	}
+	c := conn.GetChannel(channel)
+	if c == nil {
+		say(conn, target, "Error while getting channel information for %s", channel)
+		return
+	}
+
+	var highlights string
+	for onick, privs := range c.Nicks {
+		if privs.Op && onick.Nick != nick.Nick {
+			highlights += onick.Nick + ", "
+		}
+	}
+	say(conn, channel, highlights[:len(highlights)-2] + "!")
+}
diff --git a/handler.go b/handler.go
index 9147f52..d538833 100644
--- a/handler.go
+++ b/handler.go
@@ -41,6 +41,7 @@ var commands = map [string]func(*irc.Conn, *irc.Nick, string, string) {
 	"topic": topic,
 	"appendtopic": appendtopic,
 	"part": part,
+	"ops": highlightOps,
 
 	// google
 	"tr": translate,