Skip to main content

Creative and utility tools for Strands AI agents - interactive experiences

Project description

🎨 Strands Fun Tools

Creative and utility tools for Strands AI agents - Bluetooth, vision, cursor control, audio, and more!

License Python

📦 Installation

# Base installation (human_typer only)
pip install strands-fun-tools

# With specific features
pip install "strands-fun-tools[cursor,clipboard,vision]"

# Everything
pip install "strands-fun-tools[all]"

🛠️ Available Tools

🎮 Interaction

  • human_typer - Human-like typing with emotions and typos
  • cursor - Mouse & keyboard automation (pyautogui)
  • clipboard - Clipboard monitoring & history
  • dialog - Interactive terminal prompts

👁️ Vision

  • screen_reader - OCR-based screen monitoring
  • yolo_vision - Real-time object detection (YOLOv8)
  • face_recognition - Face detection via AWS Rekognition
  • take_photo - Camera capture & burst mode

🎤 Audio

  • listen - Background audio transcription (Whisper)

📡 Connectivity

  • bluetooth - BLE device monitoring & GATT operations

♟️ Games

  • chess - Stockfish chess engine integration

🎨 Display

  • spinner_generator - Custom loading animations
  • template - Jinja2 template rendering
  • asciimatics_ui - Terminal UI framework

🔧 Utilities

  • utility - Crypto, encoding, hashing, JSON/YAML
  • dynamic_package - Execute any Python package function
  • npm - Run npm packages from Python

🚀 Quick Start

from strands import Agent
from strands_fun_tools import human_typer, cursor, clipboard

agent = Agent(
    tools=[human_typer, cursor, clipboard],
    system_prompt="You can type like a human and control the cursor!"
)

agent("Type 'Hello World!' with excited emotion and then copy it to clipboard")

📋 Tool Reference

Tool Install Extra Key Actions
human_typer (base) Type with emotions: calm, excited, thoughtful, rushed, nervous
cursor [cursor] move, click, drag, type_text, hotkey
clipboard [clipboard] start, read, write, get_history
screen_reader [vision] start, capture_once, find_element
yolo_vision [vision] start, detect_once, query_objects
face_recognition [face] detect_faces, compare_faces
take_photo [vision] capture, burst, list_cameras
listen [audio] start, stop, get_transcripts
bluetooth [bluetooth] start, scan_once, list_devices, read_characteristic
chess [chess] new_game, get_best_move, make_move, analyze
spinner_generator [display] Display 50+ spinner types
template [template] create, render Jinja2 templates
utility [utility] encode, decode, hash, encrypt
dynamic_package (base) execute any Python function
npm (base) execute npm packages
dialog [dialog] Interactive terminal prompts
asciimatics_ui [ui] Terminal UI framework

🎯 Examples

Background Monitoring

from strands import Agent
from strands_fun_tools import bluetooth, clipboard, yolo_vision

agent = Agent(tools=[bluetooth, clipboard, yolo_vision])

agent("""
Start monitoring:
1. Bluetooth devices nearby
2. Clipboard content changes  
3. Objects visible on camera
""")

Autonomous Screen Control

from strands import Agent
from strands_fun_tools import screen_reader, cursor

agent = Agent(tools=[screen_reader, cursor])

agent("""
1. Find the 'Submit' button on screen
2. Click it
""")

Human-Like Typing

agent.tool.human_typer(
    text="Hello World!",
    emotion="excited",      # calm, excited, thoughtful, rushed, nervous
    typo_rate=2,           # 0-10 percentage
    thinking_pauses=True   # Pause at punctuation
)

📚 Documentation

Full documentation at github.com/cagataycali/strands-fun-tools

🤝 Contributing

Issues and PRs welcome!

git clone https://github.com/cagataycali/strands-fun-tools.git
cd strands-fun-tools
pip install -e ".[all,dev]"

📄 License

Apache-2.0 - see LICENSE


Built with ❤️ for the Strands community

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_fun_tools-0.3.0.tar.gz (51.6 kB view details)

Uploaded Source

Built Distribution

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

strands_fun_tools-0.3.0-py3-none-any.whl (56.2 kB view details)

Uploaded Python 3

File details

Details for the file strands_fun_tools-0.3.0.tar.gz.

File metadata

  • Download URL: strands_fun_tools-0.3.0.tar.gz
  • Upload date:
  • Size: 51.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for strands_fun_tools-0.3.0.tar.gz
Algorithm Hash digest
SHA256 d8b183f8833963ee0254c310724600da100ed5be0813d0cadc0e5ce0830d5051
MD5 bef079131160af100065ca3ba2152213
BLAKE2b-256 287801828239733d0b75739f705769b1f76c5aeb25b3b54e69197b4ad8f43936

See more details on using hashes here.

File details

Details for the file strands_fun_tools-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for strands_fun_tools-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 394ef4a31ee213ed3053959f1c89dde7f091ddbe58f9409e0b7c332a39d9d658
MD5 386bab412d7dc52ee167ce4cb27db8f1
BLAKE2b-256 d41fa908054f8abef64e5c6b7d043b6d97b4f8662a10dc13a772d5207241aa2c

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