Custom tool library for Strands Agents
Project description
strands-pack
53 ready-to-use tools for Strands Agents
AI media generation, AWS services, Google Workspace, social platforms, smart home, and more.
Installation
pip install strands-pack # lightweight core
pip install strands-pack[aws] # add AWS tools (boto3)
pip install strands-pack[gmail,youtube] # add specific tools
pip install strands-pack[all] # install everything
Install only the extras you need. Each tool's dependencies are listed in the optional groups below.
Quick Start
from strands import Agent
from strands_pack import gemini_image, gmail, discord, sqlite
agent = Agent(tools=[gemini_image, gmail, discord, sqlite])
agent("Generate an image of a mountain sunset")
agent("Send an email to team@company.com about the project update")
agent("Post 'Hello World!' to the announcements channel")
agent("Create a tasks table and add 'Review PR' as a new task")
Tools
AI & Media
| Tool | Description |
|---|---|
gemini_image |
Image generation/editing (Google Gemini) |
gemini_video |
Video generation (Google Veo) |
gemini_music |
Music generation (Google Lyria) |
openai_image |
Image generation/editing/analysis (OpenAI) |
openai_video |
Video generation (OpenAI Sora) |
carbon |
Code screenshots |
ffmpeg |
Video/audio processing |
AWS
| Tool | Description |
|---|---|
s3 |
Bucket and object operations |
dynamodb |
NoSQL database operations |
lambda_tool |
Function management and invocation |
sqs |
Message queue operations |
sns |
Pub/sub notifications |
eventbridge_scheduler |
Scheduled tasks |
apigateway_http_api |
HTTP APIs with Lambda |
apigateway_rest_api |
REST APIs with API keys |
secrets_manager |
Secrets access (safe-by-default) |
list_managed_resources |
Inventory of strands-pack managed resources |
Google Workspace
| Tool | Description |
|---|---|
gmail |
Send/read emails, attachments |
google_calendar |
Events and scheduling |
google_drive |
File management |
google_sheets |
Spreadsheet operations |
google_docs |
Document editing |
google_tasks |
Task lists |
google_forms |
Forms and responses |
YouTube
| Tool | Description |
|---|---|
youtube_read |
Search, metadata, playlists |
youtube_write |
Update videos, manage playlists |
youtube_analytics |
Channel statistics |
youtube_transcript |
Get video transcripts |
- Auth model
youtube_read: API key only (YOUTUBE_API_KEY)youtube_write/youtube_analytics: OAuth requiredyoutube_transcript: no auth (public videos)
Social & Communication
| Tool | Description |
|---|---|
discord |
Messages, channels, threads (13 actions) |
github |
Repos, issues, PRs (21 actions) |
linkedin |
Posts and profile |
x |
Twitter/X (read-only) |
twilio_tool |
SMS, voice, WhatsApp |
Productivity
| Tool | Description |
|---|---|
notion |
Pages and databases |
calendly |
Scheduling |
excel |
Excel file manipulation |
pdf |
PDF operations |
pdf_to_markdown |
PDF to markdown conversion (LLM-ready) |
image |
Image processing |
audio |
Audio processing |
qrcode_tool |
QR code generation/reading |
Data & Storage
| Tool | Description |
|---|---|
sqlite |
Local SQL database |
chromadb_tool |
Vector database |
local_queue |
SQLite-backed queue (SQS-like) |
local_scheduler |
SQLite-backed scheduler |
local_embeddings |
Local embeddings (SentenceTransformers) |
openai_embeddings |
OpenAI embeddings API |
keyword_search |
BM25 keyword search for hybrid retrieval |
Developer & Utilities
| Tool | Description |
|---|---|
playwright_browser |
Browser automation |
grab_code |
Read source code with line numbers |
skills |
Reusable multi-tool workflows |
notify |
Local sound notifications |
hue |
Philips Hue smart lighting (23 actions) |
Environment Variables
Set the variables for the tools you use:
# AI Services
GOOGLE_API_KEY= # Gemini tools
OPENAI_API_KEY= # OpenAI tools
# AWS
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=
# Google Workspace (OAuth token path)
GOOGLE_AUTHORIZED_USER_FILE=secrets/token.json
# YouTube (read-only public data via API key)
YOUTUBE_API_KEY=
# Optional defaults (so you can omit IDs in prompts)
YOUTUBE_CHANNEL_ID=
YOUTUBE_UPLOADS_PLAYLIST_ID=
# Social
DISCORD_BOT_TOKEN=
GITHUB_TOKEN=
NOTION_TOKEN=
# See env.example for all options
Google Workspace Authentication
Google tools use OAuth, not API keys. Generate a token:
# 1. Create OAuth Desktop app in Google Cloud Console
# 2. Download client_secret.json
# 3. Run:
python examples/google_oauth_token.py \
--client-secrets client_secret.json \
--preset gmail \
--out secrets/token.json
Or use the google_auth tool interactively:
from strands_pack import google_auth
result = google_auth(action="setup", preset="gmail", token_output_path="secrets/token.json")
print(result["auth_url"]) # Open this URL, approve access
Examples
# Generate an image
from strands_pack import gemini_image
result = gemini_image(action="generate", prompt="A cat in space", output_filename="cat.png")
# Send a Discord message
from strands_pack import discord
discord(action="send_message", channel_id="123456", content="Hello!")
# Query a database
from strands_pack import sqlite
sqlite(action="query", db_path="app.db", sql="SELECT * FROM users")
# Control smart lights
from strands_pack import hue
hue(action="set_light", light_id=1, on=True, brightness=200, hue=10000)
Check each tool's docstring for all available actions:
from strands_pack import discord
help(discord)
Development
git clone https://github.com/labeveryday/strands-pack.git
cd strands-pack
pip install -e ".[dev]"
pytest
License
MIT License
Created by Du'An Lightfoot (@labeveryday)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file strands_pack-0.1.0.tar.gz.
File metadata
- Download URL: strands_pack-0.1.0.tar.gz
- Upload date:
- Size: 336.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
920aaefcca3ddc446d6820f357917a806abd7bea67b081eea0c30cc763289bb8
|
|
| MD5 |
8d0ff44fc592faf69883c81aafe2aba2
|
|
| BLAKE2b-256 |
a33ffbaead402d8c99e9d7b8affd6b6bd7ac6631c87d5845dfe35a2a433e0973
|
File details
Details for the file strands_pack-0.1.0-py3-none-any.whl.
File metadata
- Download URL: strands_pack-0.1.0-py3-none-any.whl
- Upload date:
- Size: 262.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b12506622d95db178fdf54f75b322b01769bd0ecfc6bf21736b729f8239e800
|
|
| MD5 |
b4309bb67a9bc3c323818f4352722435
|
|
| BLAKE2b-256 |
9b3607556d50e2e61e093120d70e7695277c473bfb6cb76ff03f3e4b39f85200
|