A terminal-based UI (TUI) frontend for Amazon DynamoDB, built with Go and Bubble Tea.
- Browse DynamoDB tables
- View table schema and metadata
- Explore Global Secondary Indexes (GSIs) and Local Secondary Indexes (LSIs)
- Navigate with keyboard shortcuts
- Simple, intuitive interface
# Clone the repository
git clone https://github.com/jlgore/dynamightea.git
cd dynamightea
# Build the binary
go build -o dynamightea
# Run the application
./dynamighteaDynamighTea uses AWS SDK for Go to connect to DynamoDB. It supports multiple authentication methods:
-
Environment variables:
AWS_REGIONorAWS_DEFAULT_REGION: The AWS region to useAWS_PROFILE: The AWS profile to use from your AWS configAWS_DYNAMODB_ENDPOINT: Custom endpoint for connecting to DynamoDB Local or other endpointsAWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,AWS_SESSION_TOKEN: Direct credential values
-
AWS config files:
~/.aws/config~/.aws/credentials
DynamighTea supports both IMDSv1 and IMDSv2 for retrieving credentials from EC2 instances:
AWS_USE_IMDS: Set to "false" to disable IMDS usage (enabled by default on EC2)AWS_IMDS_VERSION: Set to "v1" or "v2" to specify the IMDS version (defaults to "v2")
For applications running in Amazon ECS, DynamighTea will automatically use the ECS Task Metadata Endpoint when the following environment variable is set:
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI: This is automatically set by ECS task daemon
# Start DynamighTea
./dynamightea↑/↓ork/j: Navigate through tables and optionsEnter: Select a table to view its detailsTab: Switch between different views (Tables, Table Details, Indexes)qorCtrl+C: Quit the application
- Go 1.21 or higher
- AWS account with DynamoDB access (or DynamoDB Local for development)
# Get dependencies
go mod tidy
# Build
go build -o dynamighteaThis project uses GitHub Actions for continuous integration and delivery:
- Automatically builds on Linux, macOS, and Windows
- Cross-compiles for ARM64, ARM, and other architectures
- Runs unit tests on all platforms
- Creates release artifacts (zip for Windows, tar.gz for others)
- Automatically creates GitHub Releases when version tags are pushed
To create a new release:
-
Tag the commit with a version:
git tag v1.0.0
-
Push the tag to GitHub:
git push origin v1.0.0
-
GitHub Actions will automatically build all binaries and create a release
MIT