System tray tool manager for private GitHub tools via uv
Project description
Tool Tray
System tray app to manage and update Python tools from private GitHub repos via uv.
Quick Start
For Users
-
Install:
uv tool install tool-tray
-
Run:
tooltray
-
Paste the config code when prompted
-
Done! The tray icon shows tool versions and updates.
For Admins
Generate a config code to share with your team:
tooltray encode --token ghp_xxx --tool myapp:myorg/myapp
# Output: TB-eyJ0b2tlbi...
Share the output code via your internal channels.
Commands
| Command | Description |
|---|---|
tooltray |
Run tray app (shows setup if not configured) |
tooltray setup |
Re-run setup dialog |
tooltray encode |
Generate config code for sharing |
tooltray --help |
Show help |
tooltray --version |
Show version |
Encode Options
tooltray encode --token TOKEN --tool NAME:ORG/REPO [--tool ...] [--prefix PREFIX]
Examples:
# Single tool (default TB- prefix)
tooltray encode --token ghp_xxx --tool myapp:myorg/myapp
# Multiple tools
tooltray encode --token ghp_xxx \
--tool cli:acme/cli \
--tool api:acme/api
# Custom prefix for branding
tooltray encode --prefix ACME --token ghp_xxx --tool cli:acme/cli
Tray Menu
| Item | Description |
|---|---|
myapp 1.0.0 → 1.1.0 ⬆ |
Update available |
myapp 1.0.0 |
Up to date |
myapp (not installed) |
Not yet installed |
| Update All | Install/update all tools |
| Check for Updates | Refresh version info |
| Setup... | Re-paste config code |
| Quit | Exit the app |
Config Code Format
The config code is a prefix + base64-encoded JSON with the GitHub token and tool list:
TB-eyJ0b2tlbiI6ImdocF94eHgiLCJ0b29scyI6W3sibmFtZSI6Im15YXBwIiwicmVwbyI6Im15b3JnL215YXBwIn1dfQ==
Decodes to:
{
"token": "ghp_xxx",
"tools": [
{"name": "myapp", "repo": "myorg/myapp"}
]
}
The prefix (default TB) can be customized with --prefix for org branding.
Config is stored at:
- Windows:
%LOCALAPPDATA%\tooltray\config.json - macOS:
~/Library/Application Support/tooltray/config.json - Linux:
~/.config/tooltray/config.json(or$XDG_CONFIG_HOME/tooltray/)
Requirements
- Python 3.12+
- uv
- tkinter (usually included with Python)
Architecture
Internal channel: "TB-eyJ0b2tlbi..." (config code)
│
▼ (user pastes on first run)
┌─────────────────────────────────┐
│ tooltray (system tray) │
│ ┌─────────────────────────────┐ │
│ │ 🔧 Tool Tray │ │
│ │ myapp 1.0.0 → 1.1.0 ⬆ │ │
│ │ Update All │ │
│ │ Check for Updates │ │
│ │ Setup... │ │
│ │ Quit │ │
│ └─────────────────────────────┘ │
└─────────────────────────────────┘
│
▼ (uv tool install git+https://oauth2:TOKEN@github.com/...)
Private GitHub Repos
Development
# Run directly
uv run tooltray
# Test encode command
uv run tooltray encode --token test123 --tool myapp:myorg/myapp
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tool_tray-0.1.1.tar.gz.
File metadata
- Download URL: tool_tray-0.1.1.tar.gz
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"EndeavourOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4cbc75d9976fcb3e67e385ff9839656c437f09befb8d8b4a2a9f91e3510ded74
|
|
| MD5 |
b00f5bf9fe33e62e9a19208667ec9780
|
|
| BLAKE2b-256 |
7f461f2188e515a3104384a1fe222ce132d4cf6fa6b766c2d10ed547bd9e7079
|
File details
Details for the file tool_tray-0.1.1-py3-none-any.whl.
File metadata
- Download URL: tool_tray-0.1.1-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"EndeavourOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd233261dc3994ec8f5d9387461fe29da192a3c08bd7f3bd46080f4f5130ec7a
|
|
| MD5 |
0966f47cbaf8b4b9b58fa1fdc286e240
|
|
| BLAKE2b-256 |
9f2eec04039b53c07b8751df1e86efe32cc7586bcbe7bfa4e763d2ae4ff92eb6
|