pyshortcuts
Create desktop and Start Menu shortcuts for python scripts
What it is and what it does
Pyshortcuts is a pure-Python utility that generates platform-native shortcuts for launching Python scripts and applications. It abstracts away the OS-specific details of shortcut creation—on Windows it generates .lnk files in the Start Menu and Desktop, on macOS it builds minimal application bundles, and on Linux it creates .desktop files in standard application directories. The package includes both a Python API (make_shortcut function) and a command-line tool (pyshortcut), plus an optional wxPython-based GUI for interactive shortcut creation.
The tool is designed for developers who need to package Python applications for end users without requiring elevated permissions or system-level modifications. It handles Anaconda Python specially on Windows to ensure shortcuts run in the correct environment, supports custom icons, and allows shortcuts to be organized into subfolders. After creation, users retain full control to rename, move, or delete shortcuts.
Use it for:
- Bundle a Python application with an installer that creates desktop shortcuts automatically during post-installation setup
- Provide end users with clickable desktop launchers for command-line Python tools without requiring terminal knowledge
- Create Start Menu entries for Python GUI applications on Windows with custom icons and descriptions
- Generate platform-specific shortcuts as part of a Python package's installation or deployment workflow
- Build a launcher GUI (using the wxPython interface) that lets non-technical users create shortcuts for their own scripts
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Creates desktop and Start Menu shortcuts for Python scripts and applications across Windows, macOS, and Linux with a consistent cross-platform interface.
Yes. Pyshortcuts solves a genuine cross-platform problem with low install friction, active maintenance, no security vulnerabilities, and permissive licensing. It is production-stable and suitable for both direct use and integration into larger installation workflows. Install it if you need to create desktop shortcuts for Python scripts or applications across multiple operating systems.
Install
pyshortcuts on PyPI
pip
pip install pyshortcutsuv
uv add pyshortcutspoetry
poetry add pyshortcutsInstalling pyshortcuts
Before you install
Low friction: pure Python wheel with only three runtime dependencies (tabulate, charset-normalizer, pywin32). Active maintenance with recent release (93 days ago) and 128 repository stars. Supports Python 3.10 through 3.14.
License in practice
MIT license permits unrestricted use, modification, and distribution in both open-source and commercial projects with minimal restrictions.
Quickstart
pip install pyshortcuts
from pyshortcuts import make_shortcut
make_shortcut('/path/to/script.py', name='MyApp', icon='/path/to/icon.ico')
On Windows, pywin32 is automatically installed. The optional wxPython GUI requires separate installation (pip install wxPython).
Verify before relying
- Whether icon format support (.ico, .icns) is consistent across all three platforms or has platform-specific limitations
- Performance characteristics when creating shortcuts for scripts with complex command-line arguments
- Behavior when shortcuts target scripts in virtual environments or non-standard Python installations
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — tabulate, charset-normalizer, pywin32 |
| Maintenance | actively maintained — 93 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 120,024/month — #12,046 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyshortcuts-1.9.9-py3-none-any.whl
Keywords: desktop shortcuts, python utilities
Tags
More Utilities packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
charset-normalizerDetects and normalizes text encoding from…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
PygmentsPygments is a syntax highlighter that colorizes…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
app-modelProvides a declarative schema for organizing…
permissive · top 15,000 on PyPI
pylnk3Reads, writes, and creates Windows .lnk…
copyleft · top 15,000 on PyPI
pystrayPystray creates a system tray icon with an…
copyleft · top 5,000 on PyPI
pysimpleguiPySimpleGUI wraps tkinter and other GUI…
copyleft · top 15,000 on PyPI
PyGetWindowPyGetWindow provides functions to query,…
permissive · top 5,000 on PyPI
infi.systrayImplements a Windows system tray icon with a…
permissive · top 15,000 on PyPI
git-pythonProvides command-line shortcuts for common git…
unclear · top 15,000 on PyPI
wxPythonwxPython provides Python bindings to the…
unclear · top 15,000 on PyPI
simple-term-menuCreates interactive command-line menus where…
permissive · top 5,000 on PyPI
universal-startfileProvides a cross-platform wrapper around…
permissive · top 15,000 on PyPI