{"id":31628195,"url":"https://github.com/junminhong/awsui","last_synced_at":"2025-10-06T20:19:40.669Z","repository":{"id":317412806,"uuid":"1066971856","full_name":"junminhong/awsui","owner":"junminhong","description":"A modern Textual-powered AWS UI for lightning-fast profile switching, seamless SSO re-auth, Amazon Q integration, smart CLI autocomplete, and bilingual UI.","archived":false,"fork":false,"pushed_at":"2025-09-30T18:51:30.000Z","size":55,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-30T19:07:36.383Z","etag":null,"topics":["amazon-q","autocomplete","aws","aws-iam-identity-center","cli","developer-tools","profile-switcher","sso","sts","terminal","textual","tui"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"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/junminhong.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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-09-30T07:55:15.000Z","updated_at":"2025-09-30T18:51:33.000Z","dependencies_parsed_at":"2025-09-30T19:07:52.161Z","dependency_job_id":"036ddb28-4e7e-4c6b-8118-b8789085bae4","html_url":"https://github.com/junminhong/awsui","commit_stats":null,"previous_names":["junminhong/awsui"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/junminhong/awsui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junminhong%2Fawsui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junminhong%2Fawsui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junminhong%2Fawsui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junminhong%2Fawsui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/junminhong","download_url":"https://codeload.github.com/junminhong/awsui/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junminhong%2Fawsui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278672196,"owners_count":26025860,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["amazon-q","autocomplete","aws","aws-iam-identity-center","cli","developer-tools","profile-switcher","sso","sts","terminal","textual","tui"],"created_at":"2025-10-06T20:19:39.657Z","updated_at":"2025-10-06T20:19:40.660Z","avatar_url":"https://github.com/junminhong.png","language":"Python","funding_links":[],"categories":["Table of Contents"],"sub_categories":[],"readme":"# awsui\n\u003cp align=\"center\"\u003e\n    \u003cpicture\u003e\n      \u003cimg src=\"images/logo.png\" alt=\"awsui logo\" width=\"400\"\u003e\n    \u003c/picture\u003e\n    \u003cbr\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://pypi.org/project/awsui/\"\u003e\u003cimg src=\"https://img.shields.io/pypi/v/awsui?color=blue\" alt=\"PyPI version\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://pypi.org/project/awsui/\"\u003e\u003cimg src=\"https://img.shields.io/pypi/status/awsui\" alt=\"PyPI status\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://pypi.org/project/awsui/\"\u003e\u003cimg src=\"https://img.shields.io/pypi/pyversions/awsui\" alt=\"Python versions\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://pypi.org/project/awsui/\"\u003e\u003cimg src=\"https://img.shields.io/pypi/dw/awsui\" alt=\"Downloads\"\u003e\u003c/a\u003e\n  \u003cbr\u003e\n  \u003ca href=\"https://opensource.org/licenses/MIT\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-yellow.svg\" alt=\"License: MIT\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://textual.textualize.io/\"\u003e\u003cimg src=\"https://img.shields.io/badge/TUI-Textual-cyan.svg\" alt=\"Textual\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/astral-sh/ruff\"\u003e\u003cimg src=\"https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json\" alt=\"Ruff\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#\"\u003e\u003cimg src=\"https://img.shields.io/badge/🇺🇸_English-selected-blue\" alt=\"English\"\u003e\u003c/a\u003e\n  \u003ca href=\"README_ZH_TW.md\"\u003e\u003cimg src=\"https://img.shields.io/badge/🇹🇼_繁體中文-available-lightgrey\" alt=\"繁體中文\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003e\n  A powerful, user-friendly terminal interface for AWS Profile and SSO management.\u003cbr\u003e\n  Built with \u003ca href=\"https://textual.textualize.io/\"\u003eTextual\u003c/a\u003e for a modern, responsive TUI experience.\n\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003e⚡ Fast\u003c/strong\u003e • \u003cstrong\u003e🔐 Secure\u003c/strong\u003e • \u003cstrong\u003e🤖 AI-Powered\u003c/strong\u003e • \u003cstrong\u003e🌍 Bilingual\u003c/strong\u003e\n\u003c/p\u003e\n\n## ✨ Why awsui?\n\n- **⚡ Lightning Fast**: Search and switch between dozens of AWS profiles in milliseconds\n- **🔐 SSO Made Easy**: Automatic re-authentication when credentials expire - no manual login headaches\n- **🤖 AI-Powered**: Integrated Amazon Q Developer CLI for intelligent AWS assistance\n- **🎯 Smart CLI**: Command autocomplete with AWS CLI cheatsheet built-in\n- **🌍 Bilingual**: Full support for English and Traditional Chinese\n- **📊 Clear Visibility**: See profile details, account info, and current identity at a glance\n- **🎨 Modern UX**: Beautiful, keyboard-driven interface that respects your terminal theme\n\n## 🎬 Demo\n\n\u003cp align=\"center\"\u003e\n  \u003cfigure\u003e\n    \u003cimg src=\"images/demo01.png\" alt=\"Profile search and switching\" width=\"800\"\u003e\n    \u003cfigcaption\u003e\u003ci\u003e⚡ Fast profile search and switching with real-time filtering\u003c/i\u003e\u003c/figcaption\u003e\n  \u003c/figure\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cfigure\u003e\n    \u003cimg src=\"images/demo02.png\" alt=\"AWS CLI execution\" width=\"800\"\u003e\n    \u003cfigcaption\u003e\u003ci\u003e🎯 Smart CLI with command autocomplete and inline execution\u003c/i\u003e\u003c/figcaption\u003e\n  \u003c/figure\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cfigure\u003e\n    \u003cimg src=\"images/demo03.png\" alt=\"Amazon Q AI assistant\" width=\"800\"\u003e\n    \u003cfigcaption\u003e\u003ci\u003e🤖 AI-powered Amazon Q Developer integration with streaming responses\u003c/i\u003e\u003c/figcaption\u003e\n  \u003c/figure\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cfigure\u003e\n    \u003cimg src=\"images/demo04.png\" alt=\"AWS CLI cheatsheet\" width=\"800\"\u003e\n    \u003cfigcaption\u003e\u003ci\u003e📚 Built-in AWS CLI cheatsheet with quick reference for 15+ services\u003c/i\u003e\u003c/figcaption\u003e\n  \u003c/figure\u003e\n\u003c/p\u003e\n\n## 📋 Features\n\n### Core Features\n- **Fast Profile Search**: Filter by name, account, role, or region with real-time fuzzy matching\n- **SSO Authentication**: Automatic `aws sso login` when tokens expire or on manual trigger\n- **Profile Details**: View comprehensive profile information including account, role, region, and session\n\n### AI Assistant\n- **Amazon Q Integration**: Ask questions in natural language\n- **Context-Aware**: Automatically includes your current profile and region\n- **Streaming Responses**: Real-time output as Q processes your query\n- **Command Suggestions**: Get AWS CLI commands for common tasks\n\n### CLI Features\n- **Command History**: Browse previous commands with ↑↓\n- **Smart Autocomplete**: Suggestions from AWS CLI cheatsheet\n- **Inline Execution**: Run AWS CLI commands directly in the TUI\n- **Output Capture**: See command results with timing and exit codes\n- **Built-in Cheatsheet**: Quick reference for 15+ AWS services\n\n### Developer Experience\n- **Structured Logging**: JSON logs to STDERR for debugging and monitoring\n- **Cross-Platform**: Linux, macOS, Windows (PowerShell)\n- **Keyboard-First**: Efficient navigation without touching the mouse\n- **Extensible**: Clean Python architecture for customization\n\n## ⚡ Quick Start\n\n```bash\n# Install with uv (recommended)\nuv tool install --python 3.13 awsui\n\n# Or install with pip\npip install awsui\n\n# Launch the TUI\nawsui\n```\n\nThat's it! Start managing your AWS profiles with ease. 🚀\n\n## 📦 Requirements\n\n- **Python**: \u003e= 3.13, \u003c 3.14\n- **AWS CLI**: v2 (required)\n- **Amazon Q CLI**: Optional, for AI assistance ([installation guide](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-installing.html))\n- **uv**: Recommended for dependency management ([installation guide](https://docs.astral.sh/uv/))\n\n## 🚀 Installation\n\n### Option 1: Install with uv (Recommended)\n\n```bash\n# Install as a tool (isolated environment)\nuv tool install --python 3.13 awsui\n\n# Run directly\nawsui\n```\n\n### Option 2: Install with pip\n\n```bash\npip install awsui\n\n# Run\nawsui\n```\n\n### Option 3: Development Setup\n\n```bash\n# Clone the repository\ngit clone https://github.com/junminhong/awsui.git\ncd awsui\n\n# Pin Python version\nuv python install 3.13\nuv python pin 3.13\n\n# Install dependencies\nuv sync\n\n# Run from source\nuv run awsui\n```\n\n## 📖 Usage\n\n### Interactive Mode\n\nLaunch the TUI to select and switch profiles:\n\n```bash\nawsui\n```\n\n**Keyboard Shortcuts:**\n\n| Category | Key | Action |\n|----------|-----|--------|\n| **🔍 Navigation** | `/` | Focus search box |\n| | `↑` `↓` | Navigate profiles |\n| | `Enter` | Apply selected profile |\n| | `Esc` | Leave input field |\n| **💻 CLI \u0026 Tools** | `c` | Focus CLI input |\n| | `a` | Toggle AI assistant panel |\n| | `h` | Show AWS CLI cheatsheet |\n| | `t` | Toggle left pane (profile list) |\n| **🔐 AWS** | `l` | Force SSO login for selected profile |\n| | `w` | Show current AWS identity (WhoAmI) |\n| **⚙️ System** | `Ctrl+L` | Clear CLI output |\n| | `Ctrl+U` | Clear CLI input |\n| | `?` | Show help |\n| | `q` | Quit |\n\n### Pre-select Profile\n\nSkip interactive selection:\n\n```bash\n# Pre-select a profile when launching the TUI\nawsui --profile my-prod-admin\n```\n\n### Override Region\n\nTemporarily override AWS region:\n\n```bash\nawsui --profile my-profile --region us-west-2\n```\n\n### Language Selection\n\n```bash\n# English (default)\nawsui --lang en\n\n# Traditional Chinese\nawsui --lang zh-TW\n```\n\n### Debug Mode\n\n```bash\nawsui --log-level DEBUG 2\u003e awsui-debug.log\n```\n\n## 🤖 AI Assistant (Amazon Q Developer)\n\n### Setup\n\n1. Install Amazon Q Developer CLI:\n   ```bash\n   # Follow official installation guide\n   # https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-installing.html\n   ```\n\n2. Verify installation:\n   ```bash\n   q --version\n   ```\n\n### Usage\n\n1. Press `a` in awsui to open AI assistant panel\n2. Type your question (e.g., \"How do I list all S3 buckets with encryption enabled?\")\n3. Press `Enter` to submit\n4. View streaming response with AWS-specific context\n5. Press `a` again to close panel\n\nThe assistant automatically includes your current profile, region, and account context for more relevant answers.\n\n## ⚙️ AWS Configuration\n\n### SSO Session Configuration\n\n`~/.aws/config`:\n\n```ini\n[sso-session my-company]\nsso_start_url = https://my-company.awsapps.com/start\nsso_region = us-east-1\nsso_registration_scopes = sso:account:access\n\n[profile production-admin]\nsso_session = my-company\nsso_account_id = 111111111111\nsso_role_name = AdministratorAccess\nregion = us-east-1\noutput = json\n\n[profile staging-developer]\nsso_session = my-company\nsso_account_id = 222222222222\nsso_role_name = DeveloperAccess\nregion = us-west-2\noutput = json\n```\n\n### Assume Role Configuration\n\n```ini\n[profile base]\nregion = us-east-1\n\n[profile cross-account-admin]\nsource_profile = base\nrole_arn = arn:aws:iam::333333333333:role/AdminRole\nregion = us-east-1\n```\n\n### Legacy SSO (without sso-session)\n\n```ini\n[profile legacy-sso]\nsso_start_url = https://my-company.awsapps.com/start\nsso_region = us-east-1\nsso_account_id = 444444444444\nsso_role_name = ViewOnlyAccess\nregion = us-east-1\n```\n\n## 📁 Project Structure\n\n```\nawsui/\n├── awsui/\n│   ├── __init__.py\n│   ├── app.py           # Main Textual application\n│   ├── models.py        # Profile data models\n│   ├── config.py        # AWS config parsing (~/.aws/config)\n│   ├── aws_cli.py       # AWS CLI wrapper (SSO, STS)\n│   ├── q_assistant.py   # Amazon Q Developer CLI integration\n│   ├── autocomplete.py  # Command autocomplete engine\n│   ├── cheatsheet.py    # AWS CLI command reference\n│   ├── i18n.py          # Internationalization (EN/ZH-TW)\n│   └── logging.py       # Structured JSON logging\n├── tests/\n│   ├── test_config.py\n│   ├── test_models.py\n│   └── __init__.py\n├── docs/\n│   ├── prd.md\n│   ├── constitution.md\n│   ├── specify.md\n│   ├── clarify.md\n│   ├── plan.md\n│   └── tasks.md\n├── pyproject.toml\n├── LICENSE\n├── README.md\n└── README_ZH_TW.md\n```\n\n## 🧪 Development\n\n### Run Tests\n\n```bash\nuv run pytest\n```\n\n### Test Coverage\n\n```bash\nuv run pytest --cov=awsui --cov-report=html\nopen htmlcov/index.html\n```\n\n### Install Dev Dependencies\n\n```bash\nuv sync --dev\n```\n\n### Code Quality\n\n```bash\n# Linting (if configured)\nuv run ruff check awsui/\n\n# Type checking (if configured)\nuv run mypy awsui/\n```\n\n## 🐛 Troubleshooting\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eAWS CLI Not Found\u003c/strong\u003e - \u003ccode\u003eE_NO_AWS: AWS CLI v2 not detected\u003c/code\u003e\u003c/summary\u003e\n\n\u003cbr\u003e\n\n**Solution:** Install AWS CLI v2 following the [official guide](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)\n\nVerify installation:\n```bash\naws --version  # Should show \"aws-cli/2.x.x ...\"\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eNo Profiles Available\u003c/strong\u003e - \u003ccode\u003eE_NO_PROFILES: No profiles detected\u003c/code\u003e\u003c/summary\u003e\n\n\u003cbr\u003e\n\n**Solution:** Configure at least one profile:\n```bash\n# For SSO\naws configure sso-session\n\n# For legacy SSO\naws configure sso\n\n# For static credentials\naws configure\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eSSO Login Fails\u003c/strong\u003e - \u003ccode\u003eE_LOGIN_FAIL: SSO login failed\u003c/code\u003e\u003c/summary\u003e\n\n\u003cbr\u003e\n\n**Possible causes:**\n- Network connectivity issues\n- Invalid SSO start URL\n- MFA/2FA not completed\n- Browser not opening (check firewall/permissions)\n\n**Solution:**\n```bash\n# Try manual login first\naws sso login --profile your-profile-name\n\n# Check browser permissions\n# Ensure port 8080-8090 range is available for OAuth callback\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eIdentity Check Fails\u003c/strong\u003e - \u003ccode\u003eE_STS_FAIL: Unable to fetch identity\u003c/code\u003e\u003c/summary\u003e\n\n\u003cbr\u003e\n\n**Possible causes:**\n- Credentials expired (SSO token or assume-role session)\n- Invalid profile configuration\n- Network/VPC issues\n- Missing IAM permissions\n\n**Solution:**\n```bash\n# Force re-authentication\n# Press 'l' in awsui to trigger SSO login\n\n# Verify profile configuration\ncat ~/.aws/config\n\n# Test manually\naws sts get-caller-identity --profile your-profile-name\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eAmazon Q Not Available\u003c/strong\u003e - \u003ccode\u003eAmazon Q CLI not available\u003c/code\u003e\u003c/summary\u003e\n\n\u003cbr\u003e\n\n**Solution:** Install Amazon Q Developer CLI:\n```bash\n# macOS\nbrew install amazon-q\n\n# Other platforms: follow official guide\n# https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-installing.html\n```\n\nVerify installation:\n```bash\nq --version\n```\n\n\u003c/details\u003e\n\n## 🔒 Security\n\nawsui follows AWS security best practices:\n\n- ✅ **Credential Handling**: Only uses AWS CLI's credential system - no credential storage or caching\n- ✅ **Temporary Credentials**: Leverages AWS STS and SSO for short-lived tokens\n- ✅ **Read-Only Config**: Only reads `~/.aws/config` and `~/.aws/credentials` - never writes\n- ✅ **Log Safety**: Sensitive data (tokens, secrets) automatically masked in logs\n- ✅ **Environment Isolation**: Supports `AWS_CONFIG_FILE` and `AWS_SHARED_CREDENTIALS_FILE` for custom config locations\n- ✅ **No Network Calls**: All AWS operations delegated to official AWS CLI\n- ✅ **Subprocess Safety**: Secure subprocess execution with proper escaping\n\n## 🎯 Performance\n\nTarget metrics:\n\n- **Startup time**: ≤ 300ms (cold start)\n- **Search response**: ≤ 50ms (keystroke to UI update)\n- **Profile switch**: ≤ 5s (including SSO login if needed)\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit issues, feature requests, or pull requests.\n\n### Guidelines\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Make your changes\n4. Add tests for new functionality\n5. Ensure all tests pass (`uv run pytest`)\n6. Commit your changes (`git commit -m 'Add amazing feature'`)\n7. Push to the branch (`git push origin feature/amazing-feature`)\n8. Open a Pull Request\n\n### Development Setup\n\nSee [Development](#-development) section above.\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- [Textual](https://textual.textualize.io/) - Modern TUI framework for Python\n- [uv](https://docs.astral.sh/uv/) - Fast Python package installer and resolver\n- [AWS CLI](https://aws.amazon.com/cli/) - Official AWS command-line tool\n- [Amazon Q Developer](https://aws.amazon.com/q/developer/) - AI-powered assistant for AWS\n\n## 📚 References\n\n- [AWS CLI SSO Configuration](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html)\n- [AWS CLI Assume Role](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html)\n- [Textual Documentation](https://textual.textualize.io/)\n- [Amazon Q Developer CLI](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line.html)\n- [Python 3.13 Documentation](https://docs.python.org/3.13/)\n\n---\n\n\u003ch2 align=\"center\"\u003e✨ Made with ❤️ for AWS Developers ✨\u003c/h2\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eawsui\u003c/strong\u003e - Making AWS Profile switching delightful! 🚀\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  If you find this tool useful, please consider giving it a ⭐ on GitHub!\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/junminhong/awsui/stargazers\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/stars/junminhong/awsui?style=social\" alt=\"GitHub stars\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/junminhong/awsui/fork\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/forks/junminhong/awsui?style=social\" alt=\"GitHub forks\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/junminhong/awsui/issues\"\u003eReport Bug\u003c/a\u003e\n  •\n  \u003ca href=\"https://github.com/junminhong/awsui/issues\"\u003eRequest Feature\u003c/a\u003e\n  •\n  \u003ca href=\"https://pypi.org/project/awsui/\"\u003ePyPI Package\u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjunminhong%2Fawsui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjunminhong%2Fawsui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjunminhong%2Fawsui/lists"}