README.md
May 23, 2026 ยท View on GitHub
Ya - GUI
A modern desktop application for managing command-line shortcuts and aliases for the Ya CLI tool.
About
Ya-GUI is a sleek, user-friendly graphical interface built with Wails (Go + React + TypeScript) that helps you manage your command-line shortcuts efficiently. No more memorizing complex commands or editing configuration files manually - Ya-GUI provides an intuitive way to create, edit, and organize your CLI aliases.
Get the latest release here:
๐ https://github.com/d3uceY/Ya-GUI/releases/latest
๐ฆ Download
You can download prebuilt binaries for:
| Platform | File | Notes |
|---|---|---|
| macOS (Apple Silicon) | YaGUI-macos-arm64.dmg | DMG installer for M1/M2/M3+ |
| macOS (Intel) | YaGUI-macos-amd64.dmg | DMG installer for Intel Macs |
| Windows | YaGUI-windows-amd64-installer.exe | NSIS installer (recommended) |
| Windows | YaGUI-windows-amd64.exe | Portable executable |
| Linux | YaGUI-linux-amd64 | Binary for Ubuntu 24.04+ / amd64 |
A SHA256SUMS.txt file is included in each release to verify download integrity.
Visit the link above to grab the latest version for your platform.
Features
- Shortcut Management: Create, edit, delete, export and import command-line shortcuts with ease
- Real-time Search: Quickly find shortcuts by name, command, description or tag
- Visual Feedback: Clean, modern dark-themed UI with color-coded elements
- Confirmation Dialogs: Safe deletion with confirmation prompts to prevent accidental removals
- Edit Dialog: Edit shortcuts โ command, description and tags โ in a focused dialog
- Persistent Storage: All shortcuts are saved and synced with your Ya CLI configuration
- Run Shortcut in Terminal: Instantly open a new terminal window in your chosen directory and run the shortcut command interactively
- Tags & Filtering: Attach comma-separated tags to shortcuts and filter the list instantly with tag pills
- Descriptions: Add a plain-English description to any shortcut so you always know what it does
- Pin / Favourite: Pin important shortcuts to the top of the list so they're always within reach
- Duplicate Shortcut: Clone an existing shortcut as a starting point for a new one
- Variable Substitution: Use
{placeholder}syntax in commands โ the GUI prompts you for each value before running - Saved Workspace Directories: Save frequently-used directories by name so you can pick them quickly when running a shortcut
- Run History: Every shortcut execution is logged with a timestamp and the directory it ran in; browse or clear the history from the sidebar
- Preferred Terminal: Choose which terminal (Windows Terminal, PowerShell, cmd, Bash, or auto-detect) is used when running shortcuts
- Start on Boot: Optionally launch Ya-GUI automatically when you log into your computer
What is Ya CLI?
Ya CLI is a command-line tool that allows you to create shortcuts for frequently used commands. Instead of typing long commands repeatedly, you can define short aliases that Ya CLI will expand and execute for you.
For example:
ya gpโgit pushya devโnpm run devya buildโnpm run build && npm run test
How to Use
Adding a Shortcut
- Scroll to the "Add New Shortcut" section at the bottom
- Enter a Shortcut Name (e.g.,
gp,dev,deploy) - Enter the full Command (e.g.,
git push,npm run dev) - Optionally add a Description and comma-separated Tags
- Click the Add Shortcut button
Editing a Shortcut
- Click the Edit (pencil) icon next to the shortcut you want to modify
- A dialog opens where you can update the Command, Description, and Tags
- Click Save to apply your changes or Cancel to discard them
Using Tags & Filtering
-
When adding or editing a shortcut, enter comma-separated tags in the Tags field (e.g.,
git, deploy) -
Tag pills appear below the search bar once any shortcut has tags
-
Click a tag pill to filter the list to only shortcuts with that tag; click All to reset
-
Pinning a Shortcut
-
Click the Star icon on any row to pin that shortcut to the top of the list
-
A filled yellow star and a subtle highlight indicate a pinned shortcut
-
Click the star again to unpin
-
Duplicating a Shortcut
-
Click the Copy icon on any row to create an exact copy of that shortcut
-
The copy is named
<name> (copy)and appears in the list immediately, ready to edit -
Running a Shortcut with Variable Substitution
You can embed placeholders in a command using curly braces, e.g. git checkout {branch} or docker build -t {image}:{tag} .
-
Click the Run (terminal) icon next to a shortcut that has
{placeholders} -
A dialog appears asking you to fill in each variable
-
Once all fields are filled, click Continue to proceed to directory selection
-
Running a Shortcut in a Terminal
- Click the Run (terminal) icon next to the shortcut you want to execute
- If the command has variables, fill them in first (see above)
- Choose the directory where you want the command to run โ pick a Saved Directory or click Browse to pick any folder
- A new terminal window will open in that directory and run the command interactively
Saved Workspace Directories
Save directories you use often so they appear as one-click options in the run dialog.
-
Go to Settings โ Saved Directories
-
Enter a name (e.g.,
my-project) and the full path, or click Browse to pick the folder -
Click Add Directory
-
The directory now appears as a quick-pick button every time you run a shortcut
-
To remove a saved directory, click the Trash icon next to it.
Run History
Every shortcut execution is recorded automatically.
-
Click Run History in the sidebar to view the log
-
Each entry shows the shortcut name, command, directory, and timestamp
-
Click Clear All to wipe the history if needed
-
Searching Shortcuts
- Use the search bar at the top of the shortcuts table
- Type any part of the shortcut name, command, description, or tag
- Results filter in real-time as you type
Importing and Exporting Shortcuts (JSON)
- Go to Settings โ Data Management
- Click Export Shortcuts to save a
shortcuts.jsonfile you can back up or share - Click Import Shortcuts to merge shortcuts from a previously exported file
Preferred Terminal
-
Go to Settings โ Terminal Preference
-
Choose from Auto-detect, Windows Terminal (wt), PowerShell, Command Prompt, or Bash
-
Your choice is saved and used for every subsequent shortcut run
-
Start on Boot
-
Go to Settings โ Start on Boot
-
Toggle the switch to have Ya-GUI launch automatically when you log into your computer
-
Deleting a Shortcut
- Click the Delete (trash) icon next to the shortcut
- Confirm the deletion in the dialog that appears
- The shortcut will be permanently removed
Installation
Prerequisites
- Go 1.23 or higher
- Node.js 18 or higher
- Wails CLI (
go install github.com/wailsapp/wails/v2/cmd/wails@latest)
Building from Source
-
Clone the repository:
git clone <repository-url> cd ya-gui -
Install dependencies:
cd frontend npm install cd .. -
Build the application:
wails build -
The executable will be in the
build/bindirectory
Development
Live Development Mode
Run the application in development mode with hot reload:
wails dev
This will start:
- A Vite development server for the frontend
- A dev server on http://localhost:34115 where you can test Go methods from the browser
Project Structure
ya-gui/
โโโ frontend/ # React + TypeScript frontend
โ โโโ src/
โ โโโ components/ # Reusable UI components (dialogs, layout, sidebar)
โ โโโ contexts/ # React contexts (version, config)
โ โโโ features/
โ โ โโโ home/ # Shortcuts page
โ โ โโโ history/ # Run history page
โ โ โโโ settings/ # Settings page
โ โโโ hooks/ # Custom React hooks
โ โโโ lib/ # Helper utilities
โ โโโ types/ # Shared TypeScript interfaces
โโโ utils/ # Go backend utilities
โ โโโ shortcut.go # Shortcut CRUD (CLI-compatible storage)
โ โโโ config.go # App config & saved directories
โ โโโ history.go # Run history
โ โโโ terminal.go # Terminal launch logic
โ โโโ types.go # Shared Go structs
โโโ app.go # Wails-exposed API methods
โโโ main.go # Entry point
โโโ wails.json # Wails configuration
Technologies Used
- Frontend: React, TypeScript
- Backend: Go
- Framework: Wails v2
- Build Tool: Vite
Configuration
The project can be configured by editing wails.json. More information about project settings can be found in the Wails documentation.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
Support
For issues, questions, or feature requests, please open an issue on GitHub.