Skip to main content

Custom tool library for Strands Agents

Project description

strands-pack

PyPI version Python 3.10+ License: MIT Tests

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 required
    • youtube_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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

strands_pack-0.1.0.tar.gz (336.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

strands_pack-0.1.0-py3-none-any.whl (262.7 kB view details)

Uploaded Python 3

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

Hashes for strands_pack-0.1.0.tar.gz
Algorithm Hash digest
SHA256 920aaefcca3ddc446d6820f357917a806abd7bea67b081eea0c30cc763289bb8
MD5 8d0ff44fc592faf69883c81aafe2aba2
BLAKE2b-256 a33ffbaead402d8c99e9d7b8affd6b6bd7ac6631c87d5845dfe35a2a433e0973

See more details on using hashes here.

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

Hashes for strands_pack-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1b12506622d95db178fdf54f75b322b01769bd0ecfc6bf21736b729f8239e800
MD5 b4309bb67a9bc3c323818f4352722435
BLAKE2b-256 9b3607556d50e2e61e093120d70e7695277c473bfb6cb76ff03f3e4b39f85200

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page