again, I am not clear of an actual reason/use case in specific. When you launch CS as a server, obviously lots of users will use it (possibly with different bots), so no command line parameter would make sense that I know of. When you launch CS standalone, the presumption is it will run for a variety of volleys. And you control the bot and its data, so why would a command line parameter help?
As I understood your request, you wanted to take information from OUTSIDE CS, pass a reference to it inside and use that reference to pass to an outside program via popen or tcpopen. So I do not understand your examples above. Your request seems to be: “have a program outside of CS that is your primary program”, “invoke CS to get some data for your program”.
Say you want info on facts in a specific bot for a specific user. What steps do you go thru? Does your C# program launch CS to try and get access to this data, and then CS closes and your program continues? So the command line parameter to CS is the “text input to use” for this single volley launch of CS?
note: Your program could have written information to a text file (either a source input file holding a line of chat or a fact file for import). CS on startup can read either of those files, generate data into files, and then quit. Then your program reads from expected files the data. It’s not pretty or efficient, but it is possible I believe.
If CS is simply an embedded application of your program, then CS is always around, always ready, and you can choose when to send in an input and interpret the output CS generates.