@muthuishere/openx_linux_amd64
v0.2.7
Published
**Your development workflow shouldn't be a clicking marathon.**
Readme
openx
Your development workflow shouldn't be a clicking marathon.
Every day, developers waste precious minutes clicking through launchers, typing paths, and switching between apps just to start coding. You've probably written the same "launch my dev environment" script dozens of times, only to rewrite it for each new machine or project.
There's a better way:
# Instead of this chaos:
# ⌘+Space → "VS Code" → Enter → wait → click project folder
# ⌘+Space → "Chrome" → Enter → type localhost:3000
# ⌘+Space → "Postman" → Enter → find collection
# Just do this:
openx vscode . && openx chrome localhost:3000 && openx postmanWorks everywhere. Integrates with everything you already use.
Drop openx into your existing package.json scripts, Taskfile, tmuxp sessions, or shell scripts. Same commands work on Mac, Linux, and Windows. No more platform-specific paths or clicking around.
// package.json - works on any machine
{
"scripts": {
"dev": "openx vscode . && openx chrome localhost:3000 && openx postman"
}
}Smart enough to handle anything:
openx vscode→ launches VS Codeopenx README.md→ opens in your default editoropenx https://github.com→ opens in your default browseropenx TextEdit myfile.txt→ opens TextEdit with the file
Get Started in 30 Seconds
# Install (choose one)
brew install muthuishere/openx/openx # macOS/Linux
npm install -g @muthuishere/openx # Cross-platform
# First run creates config with 50+ popular apps
openx --doctor
# Launch your workflow
openx vscode .
openx chrome localhost:3000
openx postman
# Clean up when done
openx --kill vscode chrome postmanThat's it. Same commands work everywhere. Add to any script, any workflow, any automation.
Why This Matters
You already have the perfect workflow setup. Your package.json scripts are dialed in. Your Taskfile automates everything. Your tmuxp session is precisely configured.
The only thing missing? A reliable way to launch GUI apps that works the same everywhere.
openx fills that gap. It doesn't replace your tools—it makes them better.
Taskfile.yml
tasks:
dev:
cmds:
- openx vscode {{.PWD}}
- openx chrome localhost:3000
- openx postmanpackage.json
{
"scripts": {
"launch": "openx code . && openx chrome && openx postman",
"cleanup": "openx --kill vscode chrome postman"
}
}Shell script
#!/bin/bash
openx vscode ~/project
openx chrome localhost:3000
openx postmanWorks the same whether you're on a MacBook, Ubuntu laptop, or Windows machine.
🎯 Built-in Apps & Aliases
Code Editors & IDEs:
vscode(code,vs) - Visual Studio Codezed(z) - Zed editorsublime(st) - Sublime Textgoland- JetBrains GoLandintellij(idea,ij) - IntelliJ IDEAwebstorm(ws) - WebStormpycharm(pc) - PyCharmvim,nvim,emacs- Terminal editors
Browsers:
chrome(gc) - Google Chromefirefox(ff) - Firefoxsafari- Safari (macOS)edge- Microsoft Edgebrave(br) - Brave Browserarc- Arc Browser
Developer Tools:
postman(pm) - Postman API clientdocker- Docker Desktopfigma(fig) - Figma design toolinsomnia(ins) - Insomnia REST clienttableplus(tp) - TablePlus database tool
Communication & Productivity:
slack(sl) - Slackdiscord(dc) - Discordteams(tm) - Microsoft Teamsnotion(not) - Notionobsidian(obs) - Obsidian
Microsoft Office:
word- Microsoft Word / LibreOffice Writerexcel- Microsoft Excel / LibreOffice Calcpowerpoint(ppt,pp) - PowerPoint / LibreOffice Impress
Terminals:
terminal- Default terminaliterm(it) - iTerm2 (macOS)wezterm(wez) - WezTermalacritty(al) - Alacritty
⚙️ Configuration
Auto-generated config at: ~/.openx/config.yaml
apps:
myapp:
darwin: "/Applications/MyApp.app"
linux: "myapp"
windows: "MyApp.exe"
kill: ["MyApp", "myapp-helper"] # Custom kill patterns
aliases:
ma: myappCustom Kill Patterns
apps:
chrome:
darwin: "/Applications/Google Chrome.app"
kill: ["Google Chrome", "Chrome Helper", "chrome"]🔧 Workflow Integration
Taskfile.yml
version: '3'
tasks:
dev:
desc: Launch development environment
cmds:
- openx vscode {{.PWD}}
- openx chrome https://localhost:3000
- openx postman
test:
desc: Run tests with coverage
cmds:
- task: test:unit
- task: test:integration
test:unit:
desc: Run unit tests
dir: internal/core
cmds:
- go test -v -cover
test:integration:
desc: Run integration tests
dir: cmd
cmds:
- go test -v
test:all:
desc: Run all tests
cmds:
- task: test:unit
- task: test:integration
cleanup:
desc: Close development apps
cmds:
- openx --kill vscode chrome postmanPackage.json Scripts
{
"scripts": {
"dev": "openx vscode . && openx chrome http://localhost:3000",
"launch": "openx code . && openx chrome && openx postman",
"cleanup": "openx --kill vscode chrome postman"
}
}Shell Scripts
#!/bin/bash
# launch-dev.sh - Full development environment
openx vscode ~/my-project
openx chrome http://localhost:3000
openx postman
openx figma
openx slack
# For cleanup
openx --kill vscode chrome postman figma slackNix Flakes
{
description = "Development environment with openx";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
outputs = { self, nixpkgs }: {
devShells.default = pkgs.mkShell {
buildInputs = [ pkgs.openx ];
shellHook = ''
echo "🚀 Launching development environment..."
openx vscode $PWD
openx chrome http://localhost:3000
openx postman
'';
};
};
}📖 Commands Reference
Basic Usage
openx <app> [args...] # Launch app with optional arguments
openx <file-or-url> # Open file/URL with system default
openx <app> <file> # Open file with specific appProcess Management
openx --kill <apps...> # Close apps (case-insensitive, all instances)
openx --kill chrome firefox postman # Close multiple appsSystem Information
openx --doctor # Check all configured apps
openx --doctor --json # JSON output for automationSmart Fallbacks
# These work even if not configured as aliases:
openx README.md # System default editor
openx https://github.com # System default browser
openx Calculator # macOS Calculator app
openx /usr/bin/python3 script.py # Direct executable with args🌟 Key Features
🎯 Smart Alias Resolution
- 50+ Built-in Apps: Popular development tools work out of the box
- Convenient Shortcuts:
codefor VS Code,gcfor Chrome,pmfor Postman - Case-Insensitive:
openx CHROMEworks just likeopenx chrome
🔄 Intelligent Fallbacks
- Single Argument: Not an alias? Uses system default (
open,xdg-open,start) - Multiple Arguments: Treats first as app, rest as arguments
- Universal Compatibility: Works with any file, URL, or application
⚡ Robust Process Management
- Case-Insensitive Killing: Finds and terminates all process variations
- Multiple Instance Support: Kills ALL running instances of an app
- Smart Pattern Matching: Handles complex app names and helper processes
🏗️ Clean Architecture
- Single Source of Truth: Configuration templates in setup, no duplication
- Embedded Versioning: Self-contained version information
- Comprehensive Testing: Unit and integration test coverage
🌍 True Cross-Platform
- macOS: Full
.appbundle support,open -acommands, Safari handling - Linux:
xdg-open,gio openfallbacks, proper desktop integration - Windows:
startcommand integration,.exehandling
🧪 Testing
Run the comprehensive test suite:
# Unit tests
go test ./internal/core -v
# Integration tests
go test ./cmd/openx -v
# All tests with coverage
go test -cover ./...
# Using Taskfile
task test:all📊 Health Check Example
$ openx --doctor
openx doctor (darwin)
Config: /Users/you/.openx/config.yaml
Applications:
✓ chrome /Applications/Google Chrome.app (running)
└─ kill: Google Chrome
✗ discord /Applications/Discord.app
└─ kill: Discord
✓ vscode /Applications/Visual Studio Code.app (running)
└─ kill: Code
Aliases:
code → vscode
gc → chrome
pm → postman
Summary:
Total: 16 apps
Available: 12
Missing: 4
Running: 3🤝 Contributing
We welcome contributions! Areas where you can help:
- New App Definitions: Add support for more applications
- Platform Support: Improve Linux/Windows compatibility
- Test Coverage: Add more edge case testing
- Documentation: Improve examples and guides
📄 License
MIT License - see LICENSE for details.
Ready to stop clicking and start coding?
brew install muthuishere/openx/openx
openx --doctor
openx vscode . && openx chrome && openx postman