Tired of the slow, clunky AWS Console search? Clicking through multiple pages, waiting for searches to load, and navigating endless menus just to find a Lambda function or S3 bucket?
AWSF is your solution - a lightning-fast, keyboard-driven fuzzy finder that brings all your AWS resources to your fingertips. Search Lambda functions, S3 buckets, SQS queues, DynamoDB tables, RDS instances, Kinesis streams, and API Gateway APIs instantly with fuzzy matching. No more frustration, no more waiting - just type and go.
Search, filter, and open AWS resources in seconds with an intuitive fuzzy finder interface.
- π Fuzzy Search: Lightning-fast fuzzy search across all your AWS resources - no more sluggish console searches
- π― Service-Specific Search: Target specific AWS services (e.g.,
lambda payment,s3 media) - π·οΈ Environment Detection: Automatically detects and displays environment indicators (PROD, STAGE, DEV)
- β‘ Quick Actions:
- Press
Enterto open resource in AWS Console - Press
Ctrl+Cto copy resource URL to clipboard
- Press
- ποΈ Configurable Services: Enable/disable specific AWS services
- βοΈ Multi-Region Support: Configure your preferred AWS region and profile
- π₯οΈ Beautiful Interface: Enhanced fzf interface with preview cards and icons
- π± Multiple Access Methods: CLI, GUI integration, keyboard shortcuts
| Service | Icon | Description |
|---|---|---|
| Lambda | Ξ» | Functions, layers |
| S3 | πͺ£ | Buckets |
| SQS | π¬ | Queues |
| Kinesis | π | Data streams |
| DynamoDB | ποΈ | Tables |
| RDS | ποΈ | Instances, clusters |
| API Gateway | πͺ | REST APIs |
- Python 3.6+
- AWS CLI configured (
aws configure) or environment variables - fzf fuzzy finder:
- macOS:
brew install fzf - Ubuntu/Debian:
sudo apt install fzf - Fedora/RHEL:
sudo dnf install fzf - Arch Linux:
sudo pacman -S fzf
- macOS:
- boto3 Python library (
pip install boto3)
# Clone the repository
git clone https://github.com/asayed18/awsf.git
cd awsf
# Install dependencies
pip install -r requirements.txt
# Configure AWS (if not already done)
aws configure
# Populate your AWS resources
python3 scripts/populate_resources.py
# Start searching!
./awsf# Add to your shell profile (bash/zsh/fish)
echo 'alias awsf="/path/to/awsf/awsf"' >> ~/.bashrc
# Or create a symlink
ln -s /path/to/awsf/awsf /usr/local/bin/awsf
# Optional: Create app bundle for Spotlight integration
./scripts/create_macos_app.sh# Add to your shell profile
echo 'alias awsf="/path/to/awsf/src/awsf.py"' >> ~/.bashrc
# Or create a symlink
sudo ln -s /path/to/awsf/src/awsf.py /usr/local/bin/awsf
# Optional: Create desktop entry for application menu integration
./scripts/create_linux_desktop.sh
# The script will:
# β’ Create a .desktop file in ~/.local/share/applications
# β’ Add AWSF to your application menu
# β’ Create a launcher in ~/.local/bin/awsf
# β’ Generate an icon for the appπ See Linux Installation Guide for detailed instructions, desktop environment integration, and troubleshooting.
# Add to PATH for global access
export PATH="/path/to/awsf:$PATH"
# Reload your shell
source ~/.bashrc # or ~/.zshrc, ~/.config/fish/config.fish# Interactive mode - search all enabled services
awsf
# Search all services for a term
awsf payment
# Search specific service
awsf lambda auth
awsf s3 media
awsf dynamodb user# Open settings menu
awsf --settings
# Quick configuration edit
awsf --config
# Get help
awsf --help# Find Lambda functions with "auth" in the name
awsf lambda auth
# Find S3 buckets containing "media"
awsf s3 media
# Find DynamoDB tables with "user"
awsf dynamodb user
# Search across all services for "api"
awsf apiThe tool respects your AWS configuration in the following order:
- Environment Variables:
AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,AWS_SESSION_TOKEN - AWS Profile: Specified in
config/config.jsonor via--profile - Default AWS Credentials: From
~/.aws/credentials
Edit config/config.json:
{
"aws_region": "us-east-1",
"aws_profile": "my-profile",
"console_base_url": "https://console.aws.amazon.com"
}Use the settings menu to enable/disable services:
awsf --settingsOr edit config/settings.json directly:
{
"enabled_services": [
"lambda",
"s3",
"sqs",
"kinesis",
"dynamodb",
"rds",
"apigateway"
]
}AWS resources change frequently. Update your local resource cache:
# Manual update
python3 scripts/populate_resources.py
# Update with specific region/profile
python3 scripts/populate_resources.py --region us-west-2 --profile production
# From settings menu
awsf --settings
# Select option 1: "Repopulate resource list"Minimum required IAM permissions for resource discovery:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"lambda:ListFunctions",
"s3:ListAllMyBuckets",
"sqs:ListQueues",
"kinesis:ListStreams",
"kinesis:DescribeStream",
"dynamodb:ListTables",
"dynamodb:DescribeTable",
"rds:DescribeDBInstances",
"rds:DescribeDBClusters",
"apigateway:GET"
],
"Resource": "*"
}
]
}Contributions are welcome! Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.
AWSF is built with β€οΈ for the AWS community. If this tool saves you time and makes your workflow smoother:
- β Star this repository - It helps others discover the tool and motivates continued development
- π Report issues & ideas - Your feedback shapes the roadmap
- οΏ½ Contribute code - See our Contributing Guide to get started
- π¬ Share your story - Tweet about how AWSF helps your workflow (tag @asayed)
- β Buy me a coffee - Fuel late-night coding sessions β Ko-fi | Buy Me a Coffee
- π Become a sponsor - Support ongoing development β GitHub Sponsors
Every star, issue report, and contribution helps make AWSF better for everyone. Thank you! π
See SECURITY.md for information about reporting security vulnerabilities.
This project is licensed under the MIT License - see the LICENSE file for details.
If you find this tool useful, please consider giving it a star! It helps others discover the project.
Made with β€οΈ for the AWS community
