Hey John,

No VirtualT is still running locally on a PC.  I have it running on my Ubuntu distrobution.  You describe to the agentic AI flow tool (I use Copilot CLI with claude-sonnet LLM) how to interface with a tool.  I typically do this through a markdown file.  Some thing like:

virtualt.md:

Virtualt Provides M100/M102/T200, etc. emulation via a socket interface served on port 2023 of the localhost.

- Start the emulation server:
  /home/ken/virtualt/virtualt -nogui -p 2023 < /dev/null > /dev/null &t

- Test if VirtualT emulation server is running
  nc -z localhost 2023

Once a connection is made, commands can be issued to perform emulation services.  Each command is terminated with CR or CRLF line ending.  Commands are:

 -  cold_boot:  resets the emulated model laptop (i.e. wipes any previously existing apps / data that may have persisted across invocations since Virtualt Will do this)  - load file.ba: Loads an ASCII formatted Model 100 / 200, etc. BASIC file.  VirtualT will automatically tokenize this file for M100/M1002 and T200.  - kill FILE:  Deletes a file from the emulated "filesystem" by name.  Must include any extension and be all caps.  - key [keylist]:  [keylist] can be a space separated list of keys presses to emulate.  Quoted strings like "list" will be injected one keystroke at a time without the quotes. Special keys:     enter cr esc left up down right shift+code+a (where a is any key) shift+graph+a f1 f2 f3, etc.  - quit: closes the socket connection leaving the VirtualT emulation server running  - terminate: Terminates both the socket connection AND terminates the VirtaulT emulation server  - screen_dump (sd for short): Dump the entire contents of the 40x8 ASCII data currently displayed on the emulated LCD  - lcd_mon [on / off]: Turn dynamic LCD update montioring on or off.  Any writes to the emulated LCD will be reported using the following format:
     event, lcdwrite, (row,col),DATA
   example:
    event, lcdwrite, (2,1),list
    event, lcdwrite, (3,1),10 FOR X=1TO5:PRINTX:NEXT
    event, lcdwrite, (4,1),Ok

etc.

Then you can even pass this markdown file to your LLM and ask it to convert it to a more appropriate tool interface descripton format that for it to parse instead of parsing the source markdown over and over.

You are basically teaching the agentic AI tool how to interface with VirtualT, then it uses it's LLM interface for identifying what code to write, when it needs to be loade, how to use screen_dump or lcd_mon to gather test results and intrepret if they are correct, etc.

This is what I do at work all the time, though I typically interface with things like Xilinx xsim for doing Verilog coding tasks, gnu make tools for C coding or others for Pyhon, etc.

Ken

On 12/23/25 1:47 PM, John R. Hogerhuis wrote:


On Tue, Dec 23, 2025 at 1:36 PM George M. Rimakis <[email protected]> wrote:

    Like magic - Codex/Claude can not only use the socket interface,
    it manages to correctly update the GUI to reflect whatever it's
    doing over the socket.

    I just observed it enter BASIC, and type a test program

    """
    10 PRINT "HELLO FROM MCP"
    20 FOR I = 1 TO 3
    30 PRINT I
    40 NEXT I
    50 END
    """

    In not too long - I think this will be working flawlessly.



So are you saying you built VirtualT in some cloud thing and it learned about the custom VirtualT socket and started using it?

-- John.

Reply via email to