{"id":37171763,"url":"https://github.com/cubbit/composer-cli","last_synced_at":"2026-01-14T20:02:22.962Z","repository":{"id":316254216,"uuid":"661586431","full_name":"cubbit/composer-cli","owner":"cubbit","description":"Cubbit DS3 Composer official CLI","archived":false,"fork":false,"pushed_at":"2025-10-07T16:02:18.000Z","size":449,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-10-07T18:15:55.353Z","etag":null,"topics":["cli","cubbit","ds3"],"latest_commit_sha":null,"homepage":"https://www.cubbit.io","language":"Go","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cubbit.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","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":"2023-07-03T07:54:45.000Z","updated_at":"2025-10-07T16:02:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"43afcbf5-a33f-455a-a5c9-e623d81f35b1","html_url":"https://github.com/cubbit/composer-cli","commit_stats":null,"previous_names":["cubbit/composer-cli"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/cubbit/composer-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cubbit%2Fcomposer-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cubbit%2Fcomposer-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cubbit%2Fcomposer-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cubbit%2Fcomposer-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cubbit","download_url":"https://codeload.github.com/cubbit/composer-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cubbit%2Fcomposer-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28434133,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T18:57:19.464Z","status":"ssl_error","status_checked_at":"2026-01-14T18:52:48.501Z","response_time":107,"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":["cli","cubbit","ds3"],"created_at":"2026-01-14T20:02:22.091Z","updated_at":"2026-01-14T20:02:22.943Z","avatar_url":"https://github.com/cubbit.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cubbit CLI\n\n[![Go Version](https://img.shields.io/badge/Go-1.24+-blue.svg)](https://golang.org/)\n[![Version](https://img.shields.io/github/package-json/v/cubbit/composer-cli)](https://github.com/cubbit/composer-cli/releases)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n\nThe official Cubbit CLI (Command-Line Interface) for managing your DS3 composer infrastructure.\n\n## Overview\n\nThe Cubbit CLI is a powerful command-line tool designed to provide comprehensive management capabilities for your DS3 composer environment. Built with Go and featuring an intuitive interface, it streamlines operations across your entire infrastructure stack.\n\n### Key Capabilities\n\n- **Swarm Management** - Create, configure, and manage distributed swarms\n- **Tenant Operations** - Complete tenant lifecycle management and configuration\n- **Infrastructure Control** - Deploy and manage Nexus, Redundancy Classes, nodes, and agents\n- **User \u0026 Account Management** - Handle tenant accounts and user administration\n- **Gateway Configuration** - Set up and manage gateway operations\n- **Interactive Workflows** - User-friendly guided processes for complex tasks\n\nThe CLI leverages modern Go libraries including Cobra for command structure and Bubble Tea for terminal user interfaces, supporting both automated scripting and interactive modes.\n\n## Installation\n\n### Prerequisites\n\n- Go 1.24.1 or higher\n- Git (for source installation)\n\n### Option 1: Pre-built Binaries (Recommended)\n\nDownload the latest release for your platform from our [releases page](https://github.com/cubbit/composer-cli/releases).\n\n### Option 2: Go Install\n\nInstall directly using Go's package manager:\n\n```bash\ngo install github.com/cubbit/composer-cli@latest\n```\n\nThis will download, compile, and install the `composer-cli` binary to your `$GOPATH/bin` directory. Make sure `$GOPATH/bin` is in your system's PATH.\n\n### Option 3: Build from Source\n\n1. **Clone the repository:**\n   ```bash\n   git clone https://github.com/cubbit/composer-cli.git\n   cd composer-cli\n   ```\n\n2. **Build the CLI:**\n   ```bash\n   # Build for current platform\n   go build -o build/cubbit .\n\n   # Cross-compile for specific platform (example for macOS)\n   env GOOS=darwin GOARCH=amd64 go build -o build/cubbit .\n   ```\n\n3. **Install to your PATH:**\n   ```bash\n   # Linux/macOS\n   sudo cp build/cubbit /usr/local/bin/\n\n   # Windows: Copy build/cubbit.exe to a directory in your PATH\n   ```\n\n### Option 4: Build with Bazel\n\nFor developers using Bazel build system:\n\n1. **Prerequisites:**\n   ```bash\n   # Install Bazel (if not already installed)\n   # Visit https://bazel.build/install for platform-specific instructions\n   ```\n\n2. **Clone the repository:**\n   ```bash\n   git clone https://github.com/cubbit/composer-cli.git\n   cd composer-cli\n   ```\n\n3. **Build with Bazel:**\n   ```bash\n   # Build the CLI binary\n   bazel build //:cli\n\n   # Build for specific platform\n   bazel build --platforms=@io_bazel_rules_go//go/toolchain:linux_amd64 //:cli\n   bazel build --platforms=@io_bazel_rules_go//go/toolchain:darwin_amd64 //:cli\n   bazel build --platforms=@io_bazel_rules_go//go/toolchain:windows_amd64 //:cli\n   ```\n\n4. **Run directly with Bazel:**\n   ```bash\n   # Run without building separately\n   bazel run //:cli -- --help\n   bazel run //:cli -- --version\n   ```\n\n5. **Install the built binary:**\n   ```bash\n   # Copy from Bazel output directory\n   cp bazel-bin/cli_/cli /usr/local/bin/\n   ```\n\n### Verify Installation\n\n```bash\ncubbit --version\n```\n\n## Quick Start\n\n### Initial Setup\n\n1. **Initialize configuration** (optional - creates config file at `$XDG_CONFIG/cubbit/config.yaml`):\n   ```bash\n   cubbit config init\n   ```\n\n2. **Authenticate with your composer account:**\n   ```bash\n   cubbit auth login --profile \u003cprofile_name\u003e\n   ```\n\n   This will open your browser for secure authentication and automatically configure your API key.\n\n3. **Verify your setup:**\n   ```bash\n   cubbit config view\n   ```\n\n### Basic Commands\n\n```bash\n# Display help and available commands\ncubbit --help\n\n# View command structure\ncubbit docs tree\n\n# Manage configuration profiles\ncubbit config [command]\n\n# Manage tenants\ncubbit tenant [command]\n\n# Manage swarms\ncubbit swarm [command]\n```\n\n## Configuration\n\nThe CLI uses a profile-based configuration system stored in `$XDG_CONFIG/cubbit/config.yaml`. This allows you to manage multiple environments and accounts efficiently.\n\n### Configuration Example\n\n```toml\n[default]\nendpoint = \"https://api.eu00wi.cubbit.services\"\noutput = \"json\"\n\n[profile.composer]\ninherits = \"default\"\ntype = \"composer\"\napi_key = \"\u003cyour_api_key\u003e\"\n\n[profile.dev-composer]\ninherits = \"default\"\ntype = \"composer\"\nendpoint = \"localhost\"\napi_key = \"\u003cyour_api_key\u003e\"\n```\n\n### Configuration Options\n\n| Option | Description | Default |\n|--------|-------------|---------|\n| `endpoint` | API endpoint for your DS3 composer | - |\n| `output` | Output format: `json`, `yaml`, `xml`, `csv` | Human-readable |\n| `type` | Profile type (`composer` for DS3 management) | - |\n| `api_key` | Your authentication API key | - |\n| `inherits` | Inherit settings from another profile | - |\n\n### Profile Management\n\n```bash\n# Switch between profiles\ncubbit config switch-profile \u003cprofile_name\u003e\n\n# List available profiles\ncubbit config list-profiles\n```\n\n## Authentication\n\nAuthentication is handled through API keys generated via secure browser-based login.\n\n### Login Process\n\n1. Run the login command:\n   ```bash\n   cubbit auth login --profile \u003cprofile_name\u003e\n   ```\n\n2. Your browser will open automatically for authentication\n\n3. After successful login, copy the 8-digit verification code from the CLI prompt\n\n4. Enter the code in your browser to complete authorization\n\n5. The CLI will automatically update your configuration with the new API key\n\n![Authentication Flow](./assets/auth.gif)\n\n## Interactive Mode\n\nFor complex operations and guided workflows, use interactive mode:\n\n```bash\ncubbit --interactive\n```\n\nInteractive mode provides step-by-step assistance for gateway configuration and installation processes.\n\n## Advanced Usage\n\n### Scripting and Automation\n\nThe CLI provides multiple modes for automation and scripting:\n\n- **Quiet mode** - Suppresses non-essential output\n- **Silent mode** - Designed for background operations\n\n```bash\n# Quiet mode example\ncubbit tenant list --quiet\n\n# Silent mode example\ncubbit swarm deploy --silent\n```\n\n### Output Formats\n\nThe CLI supports multiple output formats to suit different use cases:\n\n```bash\n# Human-readable (default)\ncubbit tenant list\n\n# JSON for scripting\ncubbit tenant list --output json\n\n# YAML for configuration\ncubbit tenant list --output yaml\n```\n\n## Features\n\n- ✅ **Cross-platform Support** - Linux, macOS, Windows\n- ✅ **Profile-based Configuration** - Manage multiple environments and accounts\n- ✅ **Interactive Workflows** - Guided setup processes\n- ✅ **Automation-friendly** - Scriptable with multiple output formats\n- ✅ **Comprehensive Documentation** - Built-in help system\n- ✅ **Secure Authentication** - Browser-based OAuth flow\n\n## Documentation\n\n- **Cubbit Official Documentation**: [docs.cubbit.io](https://docs.cubbit.io)\n- **Command Reference**: Run `cubbit docs` for detailed command documentation\n\n## Support\n\n### Getting Help\n\n- **Issues**: [GitHub Issues](https://github.com/cubbit/composer-cli/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/cubbit/composer-cli/discussions)\n- **Documentation**: [docs.cubbit.io](https://docs.cubbit.io)\n\n### Reporting Bugs\n\nPlease include the following information when reporting issues:\n- CLI version (`cubbit --version`)\n- Operating system and version\n- Complete error messages\n- Steps to reproduce\n\n## Contributing\n\nWe welcome contributions from the community! Please see our [Contributing Guide](CONTRIBUTING.md) for:\n\n- Code style guidelines\n- Development setup instructions\n- Pull request process\n- Issue reporting guidelines\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for complete details.\n\n## Changelog\n\nFor a complete history of changes and new features, see [CHANGELOG.md](CHANGELOG.md).\n\n---\n\n**Need help?** Check our [documentation](https://docs.cubbit.io) or open an [issue](https://github.com/cubbit/composer-cli/issues).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcubbit%2Fcomposer-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcubbit%2Fcomposer-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcubbit%2Fcomposer-cli/lists"}