New version will introduce TMD sessions

Prior to this change, the client connected to the server and accessed the desktop of the active user session by authenticating with system credentials. Now, TMD 2026.1 will require a registered, active TMD session before granting desktop access. The OS username and password still authenticate the user, but session selection will be separate from authentication. You can create persistent TMD sessions and handle them with the tmdtool command from command line. For example:

$ sudo tmdtool create-session console --owner john --type console

You can also manage the sessions with:

$ sudo tmdtool list-sessions --json
$ sudo tmdtool describe-session console --json
$ sudo tmdtool close-session console

The `create-session` argument asks the running server to create a persistent console or virtual session. The server starts its agent when the owner’s OS console is available; creation can therefore succeed while the session is still inactive or starting. A console session does not create an OS login. `close-session` removes the definition, stops its agent and disconnects its viewers. It does not log the owner out of the OS.

The session id can be passed in the host address when the viewer connects. Use `host:port#session-id`, for example `server.example:8191#console` with the native viewer’s default WSS transport. A browser address is `https://server.example:8191/#console`. Without a session ID, the server selects the first accessible active session in ascending session-ID order; if none exists, the connection fails. To facilitate setting up the server, automatic console creation is supported and enabled by default.

The new version of TMD is not only introducing virtual sessions on Linux, but improving the entire sessions system. It still will be FREE.

TMD Viewer in a web-browser with WebGL

I’m glad to announce that the port of TMD to Emscripten is totally finished, it’s working and it comes with WebGL support for GPU rendering. With TMD Viewer in a web browser, you don’t need to download the viewer to make it work. You just need to write your host machine IP address in your browser URL (i.e. https://192.168.1.21:8191) and the viewer will be downloaded, executed within your web-browser and connected automatically. Note that this new features changed the port from 4815 (used for TCP/SSL) to 8191 (used now for WebSocket/HTTPS): the new https port is also used by the viewer application by default; to keep backward compatibility, you can still connect to older servers with –use-tcp (i.e. tmdviewer.exe –host 192.168.1.21 –use-tcp). WebGL is used for GPU rendering only where it is available, otherwise it falls back to software rendering. GPU rendering is already faster than software rendering, in particular with 4K resolutions. The next step is to implement h.264 hardware decoding: it will allow TMD Viewer to reach about 60 FPS in a web-browser. All these new features will be available in TMD 2026.1, that will be released in the next few months (check the ‘Roadmap’ page for completion percentage).

Plan for TMD 2026.1: web-browser client and more

In this period, I’m porting TextureMind Framework to WASM / Emscripten. I already ported about 70% of the framework and I’m already able to run the first graphics applications. The final result will be that TMD Viewer will run also on a web-browser, connecting directly to the host machine where the server is running. Typically, this is a best feature implemented by only a few remote desktop software in the world, almost all of which are paid. TMD will continue to be free in its 2026.1 version. There will also be other new features. The introduction of OpenGL will allow GPU support in web browsers, and hardware encoding / decoding on Linux. There will also be support for virtual sessions on Linux, multiple user sessions on Windows and game-pad.

TMD 2026.0.0 is Available

You can find the new version TMD 2026.0.0 in the download page (you can check changes here). Some thought TMD was an experiment, which I’d abandoned to focus on other projects. This release proves that this is not true. In fact, from now on, the project’s goals are clearer. First of all, the software is now completely free, not only for personal use, but also for commercial purposes. This is because the project has finally freed itself from an uncertain phase of experimentation and false expectations set by third parties, which further slowed down its development. Now that the intentions are clearer and the software is free, it will be easier to develop and achieve the pre-established goals, as there is a broader scope for action, free from any restrictions. For example, there was the possibility of splitting the software in two, one free for personal use and one commercial, with the goal of being highly competitive with purely headless remote desktop software. This would have slowed everything down and commercialized a large part of the project, which would no longer be accessible to the public for free. However, the gain from this choice was very questionable, so I made the final decision not to do it. As a result, I was able to resume the development of this software without the crazy demands of commercial products, freely improving it and implementing new features, without excessive planning, marketing strategies, or having to worry about every single decision made. Version 2026.0 therefore adds some important missing features. Experimental support for Wayland is now available (but you still need to accept the remote session from user session before logging in with TMD, and the start screen still doesn’t work). Another important feature is file transport, which allows you to copy and paste files from the client desktop to the server desktop, in true RDP style (note: on Windows server it only works in “agentless” mode, while on Linux and macOS it has full support). Finally, high-performance hardware encoding and decoding have been added on macOS, through the GPU-only graphics pipeline. For the first time, it’s possible to encode video streams in h.264 format on macOS and decode at high resolution (4K) and high frame rate (60 fps).

New Feature: Hardware decoding on MacOS

Now it’s possible to decode h.264 video stream in 4K at 60 fps on a Mac device. Previously, it was possible only on Windows, with d3d11va. For the first time, TMD Viewer can do it also on MacOS, with Metal and VideoToolbox, through the GPU-only pipeline. Even in this case, the CPU dropped from high usage to low usage, depite the high resolution.

New Feature: Hardware encoding on MacOS

Things are going well and pretty fast. Today I finished to implement hardware encoding on MacOS, with VideoToolbox. All the frames are now captured with SCK and encoded with the hardware, without any CPU copy. For now, I’m testing in 4K with h.264 compression, getting amazing results.

The CPU usage dropped from 180% to 45%, while the framerate incremented from 30 FPS to 50 FPS, in super high quality (about 200 Mbps). The GPU only graphics pipeline programmed and designed by me is making its job. Now the next step is to implement hardware decoding. It will be a little bit harder, because I have to implement an intermediate interoperability between Metal and Vulkan textures, for the final rendering. After that, I think I will release TMD 2026.0.

TMD 2026.0 for the end of April

The release of TMD 2026.0 will be for the end of this month. I want to include all the new features and I need more time to improve the product quality. Some of the new features: cross-platform copy & paste of files with the system clipboard; hardware encoding and decoding on macOS; experimental Wayland support. This new release will be a bar raiser for the whole TMD series, and it will be available for FREE, even for commercial purposes. The other work-in-progress features will be available in the next version 2026.1: FFmpeg encoding on Linux; hardware encoding and decoding on Linux; screen capture with NvFBC with full graphics pipeline on Linux; virtual sessions on Linux.

New Feature: File transport with system clipboard

One of the most difficult features I implemented in TMD is now complete: the ability to copy and paste files between client and server, in perfect RDP style, with the system clipboard. When I started designing it, I didn’t even think it was possible, because it’s rare to find this feature in other remote desktop software. The most other software can do is to share a folder and move files in both directions with a file selector in the viewer, which is not the best, in particular when you have to deal with many files and folders at once. I’ve always found it much better to directly copy & paste files, multiple folders, archives, and now this feature will be available in TMD, with the difference that it will be cross-platform. Another advantage in using TMD instead of RDP is that you don’t need to leave the user session. From now on, I’ll be able to use my own software to easily manage files distributed across multiple devices and develop on remote machines where frequent file copying is necessary.

New Feature: Wayland support in TMD Server

Now TMD has support for Wayland. The screen capture component for Wayland is implemented with portwire and it can run on any Wayland version, from CentOS 8 onward. The feature is still experimental but it will be included in the next TMD 2026.0 release.

You will be able to connect to your host machine even without X11. Not only the screen capture, but also all the other features will be available, like mouse / keyboard input injection, and the clipboard. The challenge is to keep the highest degree of compatility, with all the restrictions introduced by Wayland.

TMD is totally FREE now

I decided to release TMD for FREE. From now, you can use TMD for any purpose, personal or commercial use. Full features enabled, no 30 days trials, no license is required. Windows, Linux and MacOS.