Skip to main content

freerdp-tk

A small launcher window for the FreeRDP remote desktop clients. It runs on Linux, Windows and macOS and needs nothing beyond Python and its built-in Tkinter.

  • Saved connections: a list you can filter. Double-click one to connect, or select several and connect them all at once.
  • Picks a client for you: it finds the FreeRDP clients on your PATH and in local build trees. "(auto)" prefers the SDL client, then X11, Wayland and Windows.
  • Form instead of flags: display, graphics codec (including AV1), clipboard, sound, microphone, drive sharing, log level, plus a box for extra arguments.
  • Live command preview: shows the exact command line, with the password hidden, and copies it for you.
  • Session log: runs several sessions at once and shows each client's output.

Install

uv tool install freerdp-tk   # or: pipx install freerdp-tk
freerdp-tk

You also need a FreeRDP client, for example:

Platform Client
Debian / Ubuntu sudo apt install freerdp3-sdl (or freerdp3-x11)
Fedora sudo dnf install freerdp
macOS brew install freerdp
Windows a FreeRDP build containing sdl-freerdp.exe or wfreerdp.exe, on your PATH

On Linux, a system Python may need its Tk package (sudo apt install python3-tk). The Pythons that uv installs already include Tk.

Passwords

  • Passwords are never written to disk. They are asked for once and kept in memory until the window closes.
  • With FreeRDP 3, all arguments are passed to the client through standard input (/args-from:stdin). The password therefore never appears in the process list (ps, Task Manager).
  • FreeRDP 2 has no such option, so the password goes on the command line, and the log warns you about it.

Where things are kept

What Where
Saved connections ~/.config/freerdp-tk/profiles.json (Linux), ~/Library/Application Support/freerdp-tk/ (macOS), %APPDATA%\freerdp-tk\ (Windows)
Extra FreeRDP source trees to search for built clients FREERDP_TK_TREES, separated like PATH. ~/projects/FreeRDP is always searched.

Limitation

The client runs without a terminal, so it cannot ask questions while connecting, such as whether to trust a new certificate. Pick a certificate policy (tofu, ignore or deny) on the Connection tab instead. The default, tofu, trusts a server's certificate the first time you connect.

Development

uv run --with-editable . python -m freerdp_tk   # run from the checkout
uv build                                         # build the sdist and wheel into dist/

Releasing to PyPI

Releases are published by GitHub Actions through trusted publishing, so no API token is needed. The version is taken from the git tag.

One-time setup:

  1. On PyPI, open Your projects → Publishing → Add a new pending publisher and enter: project freerdp-tk, owner congzhangzh, repository freerdp-tk, workflow release.yml, environment pypi.
  2. On GitHub, create an environment named pypi (Settings → Environments).

Each release after that:

git tag v0.1.0
git push origin v0.1.0

The workflow builds the package, checks that it installs on Linux, Windows and macOS, and then uploads it to PyPI.

License

Apache-2.0, the same license as FreeRDP.

Metadata

Release files for freerdp-tk 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for freerdp-tk 0.1.0
File Size Uploaded
freerdp_tk-0.1.0.tar.gz 13.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for freerdp-tk 0.1.0
File Interpreter ABI Platform
freerdp_tk-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 28.8 kB

Release files / freerdp_tk-0.1.0.tar.gz

Download URL freerdp_tk-0.1.0.tar.gz
Size 13.9 kB
Tags Source
SHA-256 checksum
How to use checksums
c6c3eee26941ad60309092ec6f7471d67341ccab0fb61ff6397df9429c6b7302
BLAKE2b-256 checksum
How to use checksums
6d3f8a9f84742fbd2f410c4a4bd9c7cbf0c8477bae5c90a8d5aebfb9b709f92d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.

Transparency log

Release files / freerdp_tk-0.1.0-py3-none-any.whl

Download URL freerdp_tk-0.1.0-py3-none-any.whl
Size 15.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f0f369255e085bebb242d46e1278a7eb6edc2f3556e705092212a58ba6e19be0
BLAKE2b-256 checksum
How to use checksums
407389dec15af37f6aa67507ede9ae71239a5777f7d70790dbccff445cfa9cf3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page