err... from what I understand, the record command should be completely client side as well.
Someone correct me if im wrong, but a 'fake' client command just tells the server that the client has run a command, even though they havent. This means that only commands that interact with the server (such as 'say') can be executed.
Is your plugin currently starting the demo? Run the plugin, and type 'stop' in console, and im pretty sure it will tell you that there is no demo being recorded.
Again, I may be wrong, but thats how I understood things.