Skip to main content

Controller Companion icon

Controller Companion

Easily create controller shortcuts to perform actions on your computer — quit a game that has no quit option, control the volume, toggle fullscreen, and more.

PyPI version Python versions Latest release MIT License

Controller Companion listens to your connected controllers and triggers an action whenever you press a defined button combination — while gaming, streaming, or anywhere else on your system.

Supported actions:

  • Terminate a task by its name
  • Execute a keyboard shortcut
  • Execute any console command

Features

  • GUI and CLI — manage your shortcuts from a window or the terminal
  • Supports all controllers that pygame supports (Xbox, PlayStation, 8BitDo, …)
  • Runs on Windows, Linux and macOS
  • Shows connected controllers as chips that can be enabled or disabled with a click
  • Follows your system's light/dark appearance
  • Autostart on system startup (Windows only for now)
  • Can be compiled into a standalone executable (using PyInstaller)

Screenshots

Main window
Main window
Creating a new shortcut
Creating a new shortcut

Installation

Requires Python 3.10–3.13.

  • Using pip:
    pip install controller-companion
    
  • Standalone executables are also available in the releases for Windows, macOS and Linux. An installer is provided for Windows as well.

Usage

GUI

controller_companion --ui

Add --minimized to start the app minimized to the tray.

CLI

  • Multiple shortcuts can be created.

  • One or multiple input controller key combinations that trigger an action can be defined with --input. The keys of one individual input combination are separated by commas, while each distinct input combination is separated by a space.

  • One or multiple actions can be defined with either --task-kill, --console or --shortcut. These actions are mapped to the --input key combinations in the order --task-kill, --console and finally --shortcut.

  • The mappings saved by the GUI can be loaded with --config, or with --custom-config <file> using the same file format.

  • Example with 2 shortcuts:

    controller_companion --input A,B Back,Left --console explorer.exe --shortcut alt+f4
    

    will result in the following mapping:

    ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━┓
    ┃ Name                       ┃ Shortcut  ┃ Action       ┃ Type ┃
    ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━┩
    │ Run command "explorer.exe" │ A+B       │ explorer.exe │ Xbox │
    │ Shortcut "alt+f4"          │ Back+Left │ alt+f4       │ Xbox │
    └────────────────────────────┴───────────┴──────────────┴──────┘
    
  • Run controller_companion --help to see all available arguments.

Build Executable

With poetry installed, run the following command to build the executable using PyInstaller:

poetry run build_controller_companion_exe

Credits

License

This project is licensed under the MIT License — see LICENSE for details.

Metadata

Release files for controller-companion 0.8.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 controller-companion 0.8.1
File Size Uploaded Provenance Actions
controller_companion-0.8.1.tar.gz 378.2 kB With provenance Details for controller_companion-0.8.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for controller-companion 0.8.1
File Interpreter ABI Platform Actions
controller_companion-0.8.1-py3-none-any.whl Python 3 none any Details for controller_companion-0.8.1-py3-none-any.whl

Total release size: 771.2 kB

Release files / controller_companion-0.8.1.tar.gz

Download URL controller_companion-0.8.1.tar.gz
Size 378.2 kB
Tags Source
SHA-256 checksum
How to use checksums
71dfbf2e23a490ba484ed67e727530f40c3fc4094f42a65990e3f9a10e193623
BLAKE2b-256 checksum
How to use checksums
f33a17f2835f613a15b7a7349e72eef93681d1cbb67bb41e2b2d0ba3ee5b5640
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 16, 2026.

Transparency log

Release files / controller_companion-0.8.1-py3-none-any.whl

Download URL controller_companion-0.8.1-py3-none-any.whl
Size 392.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4ac3983a36e2c545e0328f163ab4763a30d8b6aec1d6e91de1b07b1dbab8f135
BLAKE2b-256 checksum
How to use checksums
6fa372f9cfec5dfab60c494551941ea6e3acb6597505d01d5d6f09b5dea4c007
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 16, 2026.

Transparency log

Security for controller-companion 0.8.1

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for controller_companion-0.8.1.tar.gz

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 16, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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