A comprehensive command-line tool suite for developers to interact with AWS services.
houlak-cli is a developer-friendly toolkit that provides multiple tools for interacting with AWS services. The tool abstracts the complexity of AWS operations, allowing developers to focus on their work without needing to understand AWS internals.
Currently, houlak-cli includes:
- Database connections: Connect to RDS databases through AWS Session Manager with a simple command
More tools and commands will be added in the future to expand the capabilities of the CLI.
Before using houlak-cli, you need:
- Python 3.8+
- AWS CLI v2 - Installation Guide
- AWS Session Manager Plugin - Installation Guide
- AWS Profile Configuration -
houlak-cliis based on AWS profiles configured locally in~/.aws/config. The first step is to have your AWS profile configured for the account you want to connect to. You can configure it manually or use thesetupcommand.
Install directly from GitHub:
pip install git+https://github.com/Houlak/houlak-cli.gitOr clone and install in development mode:
git clone https://github.com/Houlak/houlak-cli.git
cd houlak-cli
pip install -e .If you already have houlak-cli installed, update it with:
pip install --upgrade git+https://github.com/Houlak/houlak-cli.gitOr if installed in development mode:
cd houlak-cli
git pull origin main
pip install -e .Check which version you have installed:
houlak-cli --versionImportant: houlak-cli is based on AWS profiles configured locally in ~/.aws/config. The first step is to have your AWS profile configured for the account you want to connect to.
Run the setup wizard to configure your AWS profile:
houlak-cli setupThe wizard will guide you through:
- Checking prerequisites (AWS CLI, Session Manager Plugin)
- Configuring your AWS profile in
~/.aws/config - Testing your connection to Parameter Store
# Connect to postgres database in dev environment (default engine is postgres)
houlak-cli db-connect --env dev
# Connect to mariadb database
houlak-cli db-connect mariadb --env dev
# Connect with custom port
houlak-cli db-connect postgres --env dev --port 54321
# Connect with different AWS profile
houlak-cli db-connect --env dev --profile my-profileOnce connected, use your favorite database client (DBeaver, TablePlus, pgAdmin, etc.) with:
Host: localhost
Port: 54320 (or your custom port)
Press Ctrl+C in the terminal to stop the tunnel.
Run the interactive setup wizard to configure AWS profile and test connectivity.
Connect to a database through Session Manager.
Arguments:
ENGINE: Database engine (default: postgres). Supported: postgres, mariadb
Options:
--env, -e: Environment name (required). Examples: dev, qa, prod--port, -p: Local port number (optional, uses default based on engine)--profile: AWS profile name (default: houlak)
Examples:
houlak-cli db-connect --env dev
houlak-cli db-connect mariadb --env dev --port 33061
houlak-cli db-connect --env qa --profile my-profileList all available databases from Parameter Store.
houlak-cli db-list
houlak-cli db-list --profile my-profileDisplay current houlak-cli configuration.
houlak-cli config-currentList all AWS profiles configured locally.
houlak-cli config-listAdd a database configuration to Parameter Store. Requires admin privileges.
houlak-cli admin-db-add hk-postgres-dev \
--project hk \
--engine postgres \
--env dev \
--bastion i-1234567890abcdef0 \
--rds-endpoint hk-postgres-dev.region.rds.amazonaws.com \
--rds-port 5432 \
--region us-east-1Show help for all commands.
Show version information.
houlak-cli version
# or
houlak-cli --version
# Output: houlak-cli version 0.1.0The db-connect command uses AWS Session Manager to create a secure tunnel from your local machine to your RDS database through a bastion host. This approach:
- ✅ Eliminates the need for SSH keys
- ✅ Doesn't require exposed SSH ports
- ✅ Provides full audit trail in CloudTrail
- ✅ Uses IAM-based authentication
The database configurations are stored securely in AWS Systems Manager Parameter Store.
Additional tools and commands will be added to houlak-cli to support various AWS operations and developer workflows.
Install AWS CLI v2 from: https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
Install the plugin from: https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html
Run:
aws sso login --profile houlakSpecify a different port:
houlak-cli db-connect --env dev --port 54321Check available databases:
houlak-cli db-listThis is an internal tool for Houlak development team.
MIT License - See LICENSE file for details.
For issues or questions, contact the DevOps team or open an issue in the repository.