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!
📦 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.4.0.tar.gz
(54.1 kB
view details)
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_fun_tools-0.4.0.tar.gz.
File metadata
- Download URL: strands_fun_tools-0.4.0.tar.gz
- Upload date:
- Size: 54.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d797b9955445b7d7f3e418df8388409c05c92f34de4d94dd2cec29db7e02079c
|
|
| MD5 |
6da0d790f6a4a50e57d06b4b49927e67
|
|
| BLAKE2b-256 |
224739a4bb6910875ef845b98b703b96488b50d661fecea13fa5de63e42b15bd
|
File details
Details for the file strands_fun_tools-0.4.0-py3-none-any.whl.
File metadata
- Download URL: strands_fun_tools-0.4.0-py3-none-any.whl
- Upload date:
- Size: 57.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29b6d8e7c1a4053a87723716261ef295f75708625c86c7866417a70dbea33db2
|
|
| MD5 |
278fe0f34cf05dd7d682fb49dc09cdf2
|
|
| BLAKE2b-256 |
d86d85e53824e3765f77a360d653d4337593cf93f279eaf4e9391d85e966456f
|