Skip to main content

Custom tool library for Strands Agents

Project description

strands-pack

PyPI version Python 3.10+ License: MIT Tests

54 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

Cloud Storage

Tool Description
box Box Platform: files, folders, metadata, tasks, shared links, Box AI (20 actions)

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=

# Box (choose one auth method)
BOX_DEVELOPER_TOKEN=              # Testing (60 min)
# BOX_CLIENT_ID=                  # CCG auth
# BOX_CLIENT_SECRET=
# BOX_JWT_CONFIG_PATH=            # JWT config file

# 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.1.tar.gz (346.5 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.1-py3-none-any.whl (269.4 kB view details)

Uploaded Python 3

File details

Details for the file strands_pack-0.1.1.tar.gz.

File metadata

  • Download URL: strands_pack-0.1.1.tar.gz
  • Upload date:
  • Size: 346.5 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.1.tar.gz
Algorithm Hash digest
SHA256 ab79d25b861c9c783c7490398e3ea3c73f5a12c1761ed1912b9ffe3e6d3bbc6a
MD5 6968b5a0ed69c6b8469fc9b7b894595e
BLAKE2b-256 e6f19208b31655a296e833f4d734341b3b0ee80fd578199f3c95700f540a17c9

See more details on using hashes here.

File details

Details for the file strands_pack-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: strands_pack-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 269.4 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 111c548629216762814f8b8cf3c4ef87b0bc10145bb3238b7177405c64e28f16
MD5 8cfaccb0ae82bca664b976bc7478e636
BLAKE2b-256 69682f0092a5fc1970a116da4253a5d810bbeabf67eb66fedc3cf6cfea649766

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