diff --git a/code/modules/keybindings/keybind/living.dm b/code/modules/keybindings/keybind/living.dm
index f76c86691f..7f5ccb3b51 100644
--- a/code/modules/keybindings/keybind/living.dm
+++ b/code/modules/keybindings/keybind/living.dm
@@ -36,3 +36,25 @@
/datum/keybinding/living/toggle_resting/down(client/user)
var/mob/living/L = user.mob
L.lay_down()
+
+/datum/keybinding/living/cancel_action
+ hotkey_keys = list("Unbound")
+ name = "cancel_action"
+ full_name = "Cancel Action"
+ description = "Cancel the current action."
+
+/// Technically you shouldn't be doing any actions if you were sleeping either but...
+/datum/keybinding/living/can_use(client/user)
+ . = ..()
+ var/mob/living/mob = user.mob
+ return . && (mob.stat == CONSCIOUS)
+
+/datum/keybinding/living/cancel_action/down(client/user)
+ var/mob/M = user.mob
+ if(length(M.do_afters))
+ var/atom/target = M.do_afters[M.do_afters.len]
+ to_chat(M, "You stop interacting with \the [target].")
+ LAZYREMOVE(M.do_afters, target)
+ else
+ to_chat(M, "There's nothing that you can cancel right now.")
+ return TRUE