Alright, I said I was going to do i2p this week. printf "7looking for:\t((hour . 1))\n((hour . 6))\n" | nc \ -x127.0.0.1:4447 \ acc2svi43emo3sri5pxbwmhrm5lprktwkv4jxkjcejmqbwpzsgwq.b32.i2p 70 ((SECOND . 37) (MINUTE . 32) (HOUR . 10) (DATE . 22) (MONTH . 5) (YEAR . 2022) (TIMEZONE . 0)) I imagine you have installed i2pd (pkg_add i2pd) and either left its defaults intact, or are comfortable yourself. I hope you also have a normal openbsd netcat (nc). There is a socks5 (I guess?) tcp tunnel to a port broadcast as port 70 over i2p. In particular it is that a+b-c.lisp date app from yesterday (except talking to a usocket tcp stream). I have two one second pauses because #'force-output seems to need to be waited for, and #'finish-output doesn't seem to do what I want. And forming the i2p connection seems to take a few seconds already. In finer resolution, at my eepher address: acc2svi43emo3sri5pxbwmhrm5lprktwkv4jxkjcejmqbwpzsgwq.b32.i2p Port 70 I am serving a slightly liberally minded item type 7. The rule for item type 7 is that you send the item specifier followed by a tab. Here, now I am telling you that the item specifier is 7looking for: followed by a literal tab. Item type 7 is handled by the server by reading a line (until a double? CRLF I think). I am a bit badly behaved in that I just attempt 3 (optional) lisp READs (*read-eval* nil). Those can be time specifiers that look kind of like what you get if you don't send anything. So minimally: printf "7looking for:\t" | nc -x127.0.0.1:4447 \ acc2svi43emo3sri5pxbwmhrm5lprktwkv4jxkjcejmqbwpzsgwq.b32.i2p 70 One bug for me is that if you send a newline, my app thinks you're trying to send a date specifier like ((hour . 3))\n and tries to wait for you. Please hang up on your own in that case ;p. The EOF from not sending a newline works as a newline which is why cutting off after the \t works. If it's useful, you are welcome to use it. If it has too much interference I'll patch it... I guess it should really be an inetd thing to take advantage of inetd's behaviors. I do log (get-universal-time) when I receive a connection, and it is possible that when an error happens what you send might show up in my logs, but generally I am not attempting to log time queries.