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.

freerdp-tk: saved connections on the left, connection settings on the right, the generated command line, and the log of a running session

  • 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/

The screenshot above is rendered from demo data in a virtual X server, so no real hosts end up in it. Regenerate it after changing the UI:

xvfb-run -s "-screen 0 1400x1000x24" \
    uv run --with pillow --with-editable . python scripts/screenshot.py docs/screenshot.png

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.1

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.1
File Size Uploaded
freerdp_tk-0.1.1.tar.gz 30.7 kB Details

Built distribution (wheel)

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

Total release size: 45.8 kB

Release files / freerdp_tk-0.1.1.tar.gz

Download URL freerdp_tk-0.1.1.tar.gz
Size 30.7 kB
Tags Source
SHA-256 checksum
How to use checksums
a5beed948348f7c7d1de4a80f1cbd62f17dd40cd4f243adab4a851a6437a74df
BLAKE2b-256 checksum
How to use checksums
c843902a781e2d6a7106e60e244110d06ace2335ef2990126c3a04c99312c8cd
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.1-py3-none-any.whl

Download URL freerdp_tk-0.1.1-py3-none-any.whl
Size 15.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bcd375da8efee1671e49f2780b9fc53d9c46e8dc03c54a9a9a4af27ba8fab111
BLAKE2b-256 checksum
How to use checksums
114eecf8af49be5f23269217ec4194b21a8104fb9fb8580053bbcc5c3ba23520
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

This release

0.1.1 This release

2 release files

0.1.0

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