A smart CLI utility for managing and quickly opening project URLs across different environments.
- 🚀 Smart Command Routing: Opens environment-specific URLs (
prod,stg,dev) in your default browser. - 🔗 Environment Aliases: Use intuitive shorthand like
p,stg, orlocal. - 📂 Local Configuration: Project-specific URL mappings stored in
.cache/gourls.json. - 💻 Cross-Platform: Native support for macOS, Windows (CMD/PowerShell), and Linux (including WSL).
- 🛠️ Assisted Setup: Helpful prompts and
.gitignoresuggestions for first-time users, with automatic detection for Go, Node.js (npm, Yarn, pnpm, Bun), Rails, Python, and Rust. - 🛡️ Governance-Ready: Secure-by-design, local-first architecture with zero external dependencies.
Default (Edge version from develop branch):
curl -sSL https://raw.githubusercontent.com/ram-ai-kumar/gourl/develop/scripts/install-source.sh | bashStable (Stable version from main branch):
curl -sSL https://raw.githubusercontent.com/ram-ai-kumar/gourl/main/scripts/install.sh | bash -s -- --stableNote
The modern installer includes automatic source build fallback. If a pre-compiled binary is not found for your specific architecture, it will automatically attempt to build from source using Go.
- Homebrew:
brew install --head https://github.com/ram-ai-kumar/gourl/raw/develop/scripts/gourl.rb - Go Install:
go install github.com/ram-ai-kumar/gourl@latest
To create a new release of gourl:
-
Create a git tag with the version number:
git tag v0.2.1 git push origin v0.2.1
-
Automatic Release Process:
- GitHub Actions triggers the
release.ymlworkflow - GoReleaser builds binaries for all platforms (Linux, macOS, Windows, FreeBSD, OpenBSD)
- Version is injected via ldflags from the git tag
- SHA256 checksums are generated for all artifacts
- Release notes are automatically generated from git commits
- Homebrew formula is pushed to
ram-ai-kumar/homebrew-tap - Artifacts are uploaded to the GitHub Release
- GitHub Actions triggers the
-
Release Artifacts (available in the release):
gourl_v{version}_linux_amd64.tar.gzgourl_v{version}_linux_arm64.tar.gzgourl_v{version}_darwin_amd64.tar.gzgourl_v{version}_darwin_arm64.tar.gzgourl_v{version}_windows_amd64.zipgourl_v{version}_freebsd_amd64.tar.gzgourl_v{version}_freebsd_arm64.tar.gzgourl_v{version}_openbsd_amd64.tar.gzSHA256SUMS.txt
To test a release locally before pushing:
# Test with snapshot mode (dry-run)
goreleaser release --snapshot --clean
# Check artifacts in ./dist folder
ls -la dist/To verify the version is correctly injected:
./dist/gourl_v{version}_linux_amd64 --versionFor detailed guides and governance information, please explore our documentation suite:
- 📖 Usage Guide: Detailed command references, aliasing logic, and configuration formats.
- 🧪 Testing Guide: How we verify our enterprise security posture and feature correctness.
- ⚖️ Security & Governance: Executive summary of our security posture, including:
This project is licensed under the MIT License - see the LICENSE file for details.