because I don't want to rely on Slime or the native interface when I don't have the terminal open.
Should be "really easy." Unfortunately it's not though. Needs likely to have another main loop open and at least would allow you to select a restart without any input. N.b. the CL standard is pretty bad with regards to streams as main input, so either that would need some hacks around providing textual input, or support from the underlying Lisp implementation!
because I don't want to rely on Slime or the native interface when I don't have the terminal open.
Should be "really easy." Unfortunately it's not though. Needs likely to have another main loop open and at least would allow you to select a restart without any input. N.b. the CL standard is pretty bad with regards to streams as main input, so either that would need some hacks around providing textual input, or support from the underlying Lisp implementation!