A Terminal User Interface (TUI) application for managing Alibaba Cloud resources. Navigate and inspect your cloud infrastructure directly from the command line with vim-style navigation and powerful search capabilities.
- ECS Instances: View instance details with zone, CPU/RAM configuration, private/public IPs, and full JSON details
- Security Groups: Browse security groups, view rules, and see associated instances
- DNS Management: Browse AliDNS domains and their DNS records
- SLB (Server Load Balancer): Monitor SLB instances, listeners, VServer groups, and backend servers
- OSS (Object Storage): Browse OSS buckets and objects with pagination
- RDS (Relational Database): Inspect RDS instances, databases, and accounts
- Redis: View Redis instances and accounts
- RocketMQ: Browse RocketMQ instances, topics, and consumer groups
- Vim-style Navigation: Use j/k keys for navigation, Enter to select
- Powerful Search: Search across all data with
/key, navigate results with n/N - Data Export: Copy any data as JSON to clipboard with
yy(double-y) - External Editing: Edit JSON data in nvim with
ekey - Mouse Support: Text selection in detail views
- Profile Management: Switch between multiple Alibaba Cloud profiles
- Real-time Mode Line: Shows current profile and contextual shortcuts
- Pagination: Navigate large datasets with intuitive controls
- Go 1.22.2 or later
- Valid Alibaba Cloud account with API access
- Access Key ID and Secret with appropriate permissions
- (Optional) nvim for external JSON editing
The easiest way to install alidash on macOS is using Homebrew:
# Add the tap (replace with your actual repository)
brew tap lululau/alidash
# Install alidash
brew install alidashOr install directly from the formula URL:
brew install https://raw.githubusercontent.com/lululau/alidash/main/alidash.rbFor detailed Homebrew setup instructions, including creating your own tap, see HOMEBREW.md.
For maintainers: Use the provided script to generate the formula:
./scripts/generate-formula.sh 1.0.0 lululau- Clone the repository:
git clone <repository-url>
cd alidash- Build the application:
go build -o alidash cmd/main.go- (Optional) Install globally:
go install ./cmdThe application uses the standard Alibaba Cloud CLI configuration format. Create a configuration file at ~/.aliyun/config.json:
{
"current": "default",
"profiles": [
{
"name": "default",
"mode": "AK",
"access_key_id": "your-access-key-id",
"access_key_secret": "your-access-key-secret",
"region_id": "cn-hangzhou",
"oss_endpoint": "oss-cn-hangzhou.aliyuncs.com"
},
{
"name": "production",
"mode": "AK",
"access_key_id": "prod-access-key-id",
"access_key_secret": "prod-access-key-secret",
"region_id": "cn-shanghai",
"oss_endpoint": "oss-cn-shanghai.aliyuncs.com"
}
]
}- name: Profile name (used for identification)
- mode: Authentication mode (use "AK" for Access Key)
- access_key_id: Your Alibaba Cloud Access Key ID
- access_key_secret: Your Alibaba Cloud Access Key Secret
- region_id: Target region ID
- oss_endpoint: OSS endpoint (optional, auto-generated if not specified)
cn-hangzhou- China (Hangzhou)cn-shanghai- China (Shanghai)cn-beijing- China (Beijing)cn-shenzhen- China (Shenzhen)us-west-1- US West (Silicon Valley)ap-southeast-1- Asia Pacific (Singapore)
./alidashOr if installed globally:
alidashThe application uses vim-style keyboard navigation with contextual shortcuts displayed in the mode line at the bottom.
Q- Quit application (uppercase Q)qorEsc- Go back to previous screen/menuP- Open profile selection dialog (uppercase P)R- Open region selection dialog (uppercase R)Ctrl+C- Force quit
j/kor↑/↓- Navigate up/downEnter- Select current service- Service shortcuts:
s- ECS Instancesg- Security Groupsd- DNS Managementb- SLB Instanceso- OSS Managementr- RDS Instancesi- Redis Instancesm- RocketMQ Instances
j/kor↑/↓- Move up/down in listsEnter- Select item for detailed view or sub-navigation/- Enter search moden/N- Navigate to next/previous search resultyy- Copy current row data as JSON to clipboard
ECS Instances:
g- View security groups for selected instance
Security Groups:
Enter- View security group ruless- View instances using this security group
SLB Instances:
l- View listeners for selected SLBv- View VServer groups for selected SLB
RDS Instances:
D- View databases for selected RDS instanceA- View accounts for selected RDS instance
Redis Instances:
A- View accounts for selected Redis instance
RocketMQ Instances:
T- View topics for selected RocketMQ instanceG- View consumer groups for selected RocketMQ instance
q/Esc- Go back to list viewyy- Copy complete JSON data to clipboarde- Open JSON data in nvim for editing/- Search within JSON datan/N- Navigate search results within JSON- Mouse selection supported for copying text
/- Enter search mode (vim-style search bar appears at bottom)Enter- Execute search and highlight matchesEsc- Exit search moden- Go to next search resultN- Go to previous search result- Search is case-insensitive by default
- Works in all table views and JSON detail views
- Press
Pto open profile selection dialog - Use
j/kto navigate available profiles - Use
/to filter profiles by name - Press
Enterto select a profile - Press
qorEscto cancel - After switching profiles:
- All client connections are recreated
- All cached data is cleared
- Region resets to the profile's default region
- Application returns to main menu
- New credentials take effect immediately
- Press
Rto open region selection dialog - The region list only shows regions where your account has resources
- Region list is cached per profile (7-day expiration, stored in
~/.aliyun/region_cache.json) - Use
j/kto navigate available regions - Use
/to filter regions - Press
Enterto select a region - Press
qorEscto cancel - After switching regions:
- All client connections are recreated with the new region
- All cached data is cleared
- Application returns to main menu
- New region takes effect immediately
[- Previous page]- Next page0- Go to first page- Page information displayed in mode line
- Lists all ECS instances with ID, status, zone, CPU/RAM configuration, private IP, public IP, name, and expired time
- Press
gon any instance to view its security groups - Select an instance to view complete JSON details including:
- Instance specifications and configuration
- Network configuration and IP addresses
- Security groups and network interfaces
- Storage details and disk information
- All available metadata
- Lists all ECS security groups with ID, name, description, VPC ID, type, and creation time
- Press
Enterto view security group rules (ingress/egress) - Press
sto view instances using this security group - Select for complete JSON configuration including:
- Security group rules and policies
- Associated instances and network interfaces
- VPC and network configuration
- All available metadata
- Browse all domains in your account
- View record count and version information
- Select a domain to view all DNS records
- See record types (A, CNAME, MX, etc.), values, TTL, and status
- Full JSON details for domains and records
- List all SLB instances with ID, name, IP address, type, and status
- Press
lto view listeners for selected SLB - Press
vto view VServer groups for selected SLB - Navigate to backend servers from VServer groups
- Complete JSON configuration including:
- Load balancer specifications
- Network configuration and IP addresses
- Health check settings
- All available metadata
- Browse all OSS buckets with name, location, creation date, and storage class
- Select a bucket to view all objects with pagination
- Object details include key, size, last modified date, storage class, and ETag
- Navigate large object lists with
[,], and0keys - Select an object to view complete JSON metadata
- Browse all RDS database instances
- View engine type, version, instance class, and status
- Press
Dto view databases for selected RDS instance - Press
Ato view accounts for selected RDS instance - Complete JSON configuration including:
- Connection strings and ports
- Storage and backup information
- Network configuration
- Maintenance windows and settings
- All available metadata
- Browse all Redis instances with version, class, and status information
- Press
Ato view accounts for selected Redis instance - Complete JSON configuration including:
- Connection information
- Memory and performance settings
- Network configuration
- All available metadata
- Browse all RocketMQ instances
- Press
Tto view topics for selected instance - Press
Gto view consumer groups for selected instance - Complete JSON configuration including:
- Instance specifications
- Network configuration
- Topic and group management details
- All available metadata
Your Alibaba Cloud Access Key needs the following permissions:
- ECS:
ecs:DescribeInstances,ecs:DescribeSecurityGroups,ecs:DescribeSecurityGroupAttribute - DNS:
alidns:DescribeDomains,alidns:DescribeDomainRecords - SLB:
slb:DescribeLoadBalancers,slb:DescribeLoadBalancerAttribute,slb:DescribeVServerGroups,slb:DescribeVServerGroupAttribute - RDS:
rds:DescribeDBInstances,rds:DescribeDatabases,rds:DescribeAccounts - Redis:
r-kvstore:DescribeInstances,r-kvstore:DescribeAccounts - RocketMQ:
ons:OnsInstanceInServiceList,ons:OnsTopicList,ons:OnsGroupList - OSS:
oss:ListBuckets,oss:ListObjects,oss:GetObjectMeta
-
Authentication Error
- Verify your Access Key ID and Secret are correct in
~/.aliyun/config.json - Ensure the keys have the required permissions
- Check that the region ID is valid and accessible
- Verify your Access Key ID and Secret are correct in
-
Configuration File Not Found
- Ensure
~/.aliyun/config.jsonexists and is properly formatted - Check file permissions (should be readable by your user)
- Verify JSON syntax is correct
- Ensure
-
No Resources Found
- Verify you're using the correct region ID
- Ensure resources exist in the specified region
- Check that your account has access to the resources
- Verify the profile has the correct permissions
-
Profile Switching Issues
- Ensure all profiles in config.json have required fields
- Check that profile names are unique
- Verify the "current" field points to an existing profile
-
Network Issues
- Ensure you have internet connectivity
- Check if your firewall allows HTTPS traffic
- Verify the OSS endpoint is correct for your region
-
nvim Editor Issues
- Ensure nvim is installed and in your PATH
- Check that temporary file creation works in your system
- Verify nvim can be launched from the terminal
For additional debugging information, you can check the application logs. The application will display error messages in modal dialogs for most issues.
The project uses Go modules. Key dependencies include:
github.com/aliyun/alibaba-cloud-sdk-go- Alibaba Cloud SDKgithub.com/aliyun/aliyun-oss-go-sdk- OSS SDKgithub.com/charmbracelet/bubbletea- Terminal UI framework (Elm architecture)github.com/charmbracelet/bubbles- TUI components (table, list, viewport, etc.)github.com/charmbracelet/lipgloss- Style definitions for terminal rendering
# Download dependencies
go mod download
# Run tests (if any)
go test ./...
# Build
go build -o alidash cmd/main.goalidash/
├── cmd/ # Application entry point
├── internal/
│ ├── client/ # Alibaba Cloud client management
│ ├── config/ # Configuration loading and management
│ ├── service/ # Service layer for API calls (including RegionService)
│ └── tui/ # Terminal user interface (Bubble Tea)
│ ├── components/ # Reusable UI components (table, modal, header, etc.)
│ ├── pages/ # Page models for each service
│ ├── types/ # Shared types and messages
│ ├── app.go # Main application model
│ ├── keys.go # Key bindings
│ ├── messages.go # Message types
│ └── styles.go # Style definitions
├── go.mod # Go module definition
├── go.sum # Go module checksums
└── README.md # This file
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
[Add your license information here]
[Add support information here]