{"id":36852918,"url":"https://github.com/scttfrdmn/globus-go-cli","last_synced_at":"2026-01-12T14:40:15.048Z","repository":{"id":290972508,"uuid":"976165225","full_name":"scttfrdmn/globus-go-cli","owner":"scttfrdmn","description":"Fast, modern Go CLI for Globus services (Auth, Transfer) - aligned with upstream v3.37.0. Alternative to Python CLI with native performance, multiple output formats, and comprehensive service coverage.","archived":false,"fork":false,"pushed_at":"2025-10-26T03:03:05.000Z","size":8335,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-26T04:21:39.475Z","etag":null,"topics":["auth","cli","command-line","cross-platform","data-transfer","globus","globus-auth","globus-cli","globus-transfer","go","golang","hpc","research-computing","scientific-computing","transfer"],"latest_commit_sha":null,"homepage":"https://github.com/scttfrdmn/globus-go-cli/releases/latest","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scttfrdmn.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-01T16:05:18.000Z","updated_at":"2025-10-26T03:03:09.000Z","dependencies_parsed_at":"2025-08-09T03:12:46.705Z","dependency_job_id":"3fb6f2e9-516f-45ad-84e3-a935a6cc7b21","html_url":"https://github.com/scttfrdmn/globus-go-cli","commit_stats":null,"previous_names":["scttfrdmn/globus-go-cli"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/scttfrdmn/globus-go-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scttfrdmn%2Fglobus-go-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scttfrdmn%2Fglobus-go-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scttfrdmn%2Fglobus-go-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scttfrdmn%2Fglobus-go-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scttfrdmn","download_url":"https://codeload.github.com/scttfrdmn/globus-go-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scttfrdmn%2Fglobus-go-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28340403,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T12:22:26.515Z","status":"ssl_error","status_checked_at":"2026-01-12T12:22:10.856Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["auth","cli","command-line","cross-platform","data-transfer","globus","globus-auth","globus-cli","globus-transfer","go","golang","hpc","research-computing","scientific-computing","transfer"],"created_at":"2026-01-12T14:40:14.920Z","updated_at":"2026-01-12T14:40:15.040Z","avatar_url":"https://github.com/scttfrdmn.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- SPDX-License-Identifier: Apache-2.0 --\u003e\n\u003c!-- SPDX-FileCopyrightText: 2025 Scott Friedman and Project Contributors --\u003e\n\n# Globus Go CLI\n\nA command-line interface for Globus services, built in Go using the [Globus Go SDK](https://github.com/scttfrdmn/globus-go-sdk) v3.65.0-1 (production). Aligned with upstream Globus CLI v3.39.0.\n\n\u003e **Note:** This CLI uses SDK v3 (production-ready). SDK v4 is available but provides minimal benefit for CLI use cases. See [SDK_VERSION_DECISION.md](SDK_VERSION_DECISION.md) for details.\n\u003e\n\u003e **Future:** When upstream Globus v4 becomes official, this CLI will adopt a dual-version approach (parallel v3/v4 implementations) similar to the SDK. See [CLI_DUAL_VERSION_STRATEGY.md](CLI_DUAL_VERSION_STRATEGY.md).\n\n## Features\n\n- Modern CLI implementation with Cobra and Viper\n- Fast and lightweight with no Python dependencies\n- **100% feature parity with Python Globus CLI v3.39.0 + additional Compute support**\n- Comprehensive coverage of Globus services:\n  - ✅ Auth (100% - authentication and identity management)\n  - ✅ Transfer (100% - file transfer operations)\n  - ✅ Groups (80% - full functionality, role management pending SDK)\n  - ✅ Timers (100% - scheduled task management)\n  - ✅ Search (100% - index and document management, 18 commands)\n  - ✅ Flows (100% - workflow automation, 15 commands)\n  - ✅ Compute (100% - **exclusive to Go CLI**, not in Python CLI, 14 commands)\n- Multiple output formats (text, JSON, CSV)\n- Interactive features with progress visualization\n- Multiple configuration profiles\n- Cross-platform support (Linux, macOS, Windows)\n- Shell completion for Bash, Zsh, Fish, and PowerShell\n\n## Documentation\n\n**📚 [Read the full documentation](https://scttfrdmn.github.io/globus-go-cli/)**\n\n- [Installation Guide](https://scttfrdmn.github.io/globus-go-cli/getting-started/installation/)\n- [Quick Start](https://scttfrdmn.github.io/globus-go-cli/getting-started/quickstart/)\n- [Command Reference](https://scttfrdmn.github.io/globus-go-cli/reference/)\n- [Common Tasks](https://scttfrdmn.github.io/globus-go-cli/guides/common-tasks/)\n\n## Installation\n\n### Using Homebrew (macOS and Linux)\n\n```bash\n# Install from Homebrew\nbrew tap scttfrdmn/tap\nbrew install globus-go-cli\n```\n\n### Using Scoop (Windows)\n\n```powershell\n# Add the scoop bucket\nscoop bucket add scttfrdmn https://github.com/scttfrdmn/scoop-bucket\n\n# Install globus-go-cli\nscoop install globus-go-cli\n```\n\n### Using Docker\n\n```bash\n# Run using Docker\ndocker run --rm -it scttfrdmn/globus-go-cli:latest auth whoami\n```\n\n### From Binary Releases\n\nDownload the latest release for your platform from the [Releases page](https://github.com/scttfrdmn/globus-go-cli/releases).\n\nBinaries are provided for:\n- Linux (amd64, arm64)\n- macOS (amd64, arm64)\n- Windows (amd64)\n\n### From Source\n\n```bash\n# Clone the repository\ngit clone https://github.com/scttfrdmn/globus-go-cli.git\ncd globus-go-cli\n\n# Build the binary\nmake build\n# or\ngo build -o globus\n\n# Install the binary\nmv globus /usr/local/bin/\n```\n\n## Quick Start\n\n```bash\n# Login to Globus\nglobus auth login\n\n# Or login without a browser\nglobus auth device\n\n# Show information about the current user\nglobus auth whoami\n\n# List your endpoints\nglobus transfer endpoint list\n\n# List files on an endpoint\nglobus transfer ls ENDPOINT_ID:/path\n\n# Transfer files between endpoints\nglobus transfer cp SOURCE_ENDPOINT:/source/path DEST_ENDPOINT:/dest/path\n\n# Check transfer status\nglobus transfer task show TASK_ID\n\n# Logout when done\nglobus auth logout\n```\n\n## Configuration\n\nThe CLI stores its configuration and tokens in `~/.globus-cli/`:\n\n- `~/.globus-cli/config.yaml`: General configuration\n- `~/.globus-cli/tokens/`: OAuth tokens for different profiles\n- `~/.globus-cli/profiles/`: Named configuration profiles\n\n### Configuration Profiles\n\nYou can use multiple configuration profiles to work with different Globus accounts:\n\n```bash\n# Create a new profile\nglobus config profile create myprofile\n\n# Use a specific profile\nglobus --profile=myprofile auth login\n\n# List all profiles\nglobus config profile list\n```\n\n### Output Formats\n\nMost commands support different output formats:\n\n```bash\n# Default text format\nglobus transfer endpoint list\n\n# JSON output for scripting\nglobus transfer endpoint list --format=json\n\n# CSV output for importing into spreadsheets\nglobus transfer endpoint list --format=csv\n```\n\n## Detailed Command Reference\n\n### Auth Commands\n\n```bash\n# Log in using browser\nglobus auth login\n\n# Log in with device code (no browser)\nglobus auth device\n\n# Show current user info\nglobus auth whoami\n\n# List tokens\nglobus auth tokens show\n\n# Refresh tokens\nglobus auth refresh\n\n# Revoke tokens\nglobus auth tokens revoke --type=access\n\n# Look up identities\nglobus auth identities lookup user@example.com\n\n# Log out\nglobus auth logout\n```\n\n### Transfer Commands\n\n```bash\n# List endpoints\nglobus transfer endpoint list\n\n# Search for endpoints\nglobus transfer endpoint search \"my data\"\n\n# Show endpoint details\nglobus transfer endpoint show ENDPOINT_ID\n\n# List files on endpoint\nglobus transfer ls ENDPOINT_ID:/path\nglobus transfer ls -l ENDPOINT_ID:/path  # long format\n\n# Create directory\nglobus transfer mkdir ENDPOINT_ID:/new/directory\nglobus transfer mkdir -p ENDPOINT_ID:/nested/directory  # create parents\n\n# Delete files/directories\nglobus transfer rm ENDPOINT_ID:/path/to/file\nglobus transfer rm -r ENDPOINT_ID:/directory  # recursive\n\n# Transfer files\nglobus transfer cp SOURCE_EP:/file DEST_EP:/path\nglobus transfer cp -r SOURCE_EP:/dir DEST_EP:/path  # recursive\n\n# List tasks\nglobus transfer task list\n\n# View task details\nglobus transfer task show TASK_ID\n\n# Wait for task completion\nglobus transfer task wait TASK_ID\n\n# Cancel task\nglobus transfer task cancel TASK_ID\n```\n\n### Shell Completion\n\n```bash\n# Generate shell completion scripts\nglobus completion bash \u003e ~/.bash_completion.d/globus\nglobus completion zsh \u003e \"${fpath[1]}/_globus\"\nglobus completion fish \u003e ~/.config/fish/completions/globus.fish\n```\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request. See [CONTRIBUTING.md](CONTRIBUTING.md) for details.\n\n## Development\n\n### Integration Testing\n\nFor information about setting up integration testing with real Globus credentials, see [INTEGRATION_TESTING.md](INTEGRATION_TESTING.md).\n\n### Cross-Platform Compatibility\n\nFor guidelines on ensuring cross-platform compatibility, see [CROSS_PLATFORM.md](CROSS_PLATFORM.md).\n\n## Release Process\n\nFor information about the release process, see [RELEASE_PROCESS.md](RELEASE_PROCESS.md).\n\n## Release Notes\n\n- [Release v3.39.0-1](RELEASE_NOTES_V3.39.0-1.md) - Latest release (aligned with upstream CLI v3.39.0)\n- [Changelog](CHANGELOG.md) - Full history of changes\n\n## License\n\nApache License 2.0","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscttfrdmn%2Fglobus-go-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscttfrdmn%2Fglobus-go-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscttfrdmn%2Fglobus-go-cli/lists"}