It turns out this is a noob problem. I started the project thinking, "I would like to do this as a nimscript project". I'm guessing that access to stdout, stdin, io, or similar has some restrictions in nimscript.
So when I started the file was project.nims. When I ran into trouble, I tried it again with a compiled version called project.nim. I forgot that the compiler looks for a matching .nims file when compiling, so the error essentially followed to the new file. This is all working as expected without nimscript or the .nims file.