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.3.0.tar.gz
(51.6 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.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d8b183f8833963ee0254c310724600da100ed5be0813d0cadc0e5ce0830d5051
|
|
| MD5 |
bef079131160af100065ca3ba2152213
|
|
| BLAKE2b-256 |
287801828239733d0b75739f705769b1f76c5aeb25b3b54e69197b4ad8f43936
|
File details
Details for the file strands_fun_tools-0.3.0-py3-none-any.whl.
File metadata
- Download URL: strands_fun_tools-0.3.0-py3-none-any.whl
- Upload date:
- Size: 56.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
394ef4a31ee213ed3053959f1c89dde7f091ddbe58f9409e0b7c332a39d9d658
|
|
| MD5 |
386bab412d7dc52ee167ce4cb27db8f1
|
|
| BLAKE2b-256 |
d41fa908054f8abef64e5c6b7d043b6d97b4f8662a10dc13a772d5207241aa2c
|