Skip to content

aimeritething/sealos-cli

 
 

Sealos CLI

Official CLI tool for Sealos Cloud - Manage devbox, applications, databases, and object storage

Project Structure

src/
├── bin/
│   └── cli.ts                 # CLI entry point
├── commands/                  # Command modules
│   ├── auth/                 # Authentication commands
│   │   ├── login.ts
│   │   ├── logout.ts
│   │   ├── whoami.ts
│   │   └── index.ts
│   ├── workspace/            # Workspace management
│   │   └── index.ts
│   ├── devbox/               # Devbox management
│   │   └── index.ts
│   ├── s3/                   # S3 object storage
│   │   └── index.ts
│   ├── database/             # Database management
│   │   └── index.ts
│   ├── template/             # Template management
│   │   └── index.ts
│   ├── quota/                # Resource quotas
│   │   └── index.ts
│   ├── app/                  # Application management
│   │   └── index.ts
│   └── config/               # CLI configuration
│       └── index.ts
├── lib/                       # Shared libraries
│   ├── api.ts                # API client
│   ├── config.ts             # Configuration management
│   ├── errors.ts             # Error handling
│   └── output.ts             # Output formatting
├── types/                     # TypeScript type definitions
│   └── index.ts
└── main.ts                    # Main program setup

Architecture

Configuration Management (lib/config.ts)

  • Manages CLI configuration at ~/.sealos/config.json
  • Handles multiple contexts (hosts/workspaces)
  • Supports environment variables (e.g., KUBECONFIG)

API Client (lib/api.ts)

  • Axios-based HTTP client with interceptors
  • Automatic token injection from current context
  • Unified error handling
  • Support for KUBECONFIG environment variable

Output Formatting (lib/output.ts)

  • Support for multiple formats: JSON, YAML, Table
  • Colored terminal output using chalk
  • Loading spinners using ora
  • Table formatting using table

Error Handling (lib/errors.ts)

  • Typed error classes (AuthError, ConfigError, ApiError)
  • Global error handler
  • User-friendly error messages

Development

Install Dependencies

npm install

Run CLI in Development

npm start -- <command>

# Examples:
npm start -- --help
npm start -- login
npm start -- devbox list

Build

npm run build

Test

npm test

Usage Examples

Authentication

# Login with token
sealos login hzh.sealos.run --token YOUR_TOKEN

# Check current user
sealos whoami

# Logout
sealos logout

Workspace Management

# List workspaces
sealos workspace list

# Switch workspace
sealos workspace switch production

# Show current workspace
sealos workspace current

Devbox Management

# Create a devbox
sealos devbox create --name my-devbox --template nextjs --cpu 2c --memory 4g

# List devboxes
sealos devbox list
sealos devbox list --output json

# Get devbox details
sealos devbox get my-devbox

# Connect to devbox
sealos devbox connect my-devbox --ide cursor

# Start/Stop/Restart
sealos devbox start my-devbox
sealos devbox stop my-devbox
sealos devbox restart my-devbox

# Delete devbox
sealos devbox delete my-devbox --force

Configuration

# List all config
sealos config list

# Get config value
sealos config get currentContext

# Set config value
sealos config set key value

Environment Variables

  • KUBECONFIG: Path to Kubernetes config file (automatically included in API requests)
  • DEBUG: Enable debug mode for verbose error output

TODO

Most command implementations contain TODO comments indicating where API integration is needed. Key areas:

  1. Authentication: OAuth flow for browser-based login
  2. API Integration: Connect all commands to actual Sealos API endpoints
  3. S3 Operations: File upload/download with progress tracking
  4. Database Management: Full CRUD operations
  5. Interactive Prompts: Use inquirer for confirmations
  6. YAML Support: Add YAML output formatting
  7. Config Nesting: Support nested config key access

Best Practices Implemented

  • Modular command structure
  • TypeScript for type safety
  • Shared utilities for common operations
  • Consistent error handling
  • Multiple output formats
  • Environment variable support
  • Configuration file management
  • Loading indicators for async operations
  • Color-coded terminal output

License

Apache-2.0

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 90.0%
  • JavaScript 10.0%