zeekay
dac3d6e1c6
chore: bump versions for consolidated computer/screen tools
...
- hanzo-tools-computer: 0.5.2
- hanzo-mcp: 0.10.39
2026-01-11 22:06:11 -08:00
zeekay
55703b869c
fix(computer): use Claude's actual 2000px limit for multi-image
2026-01-11 20:13:05 -08:00
zeekay
9144211873
feat(computer): add ScreenTool for unified screen recording and Claude interpretation
...
New 'screen' tool provides one-shot recording → analysis → compression:
screen(action="session", duration=30) # Record 30s, return compressed frames
ACTIONS:
- session: ONE-SHOT record → analyze → compress → return for Claude
- capture: Single screenshot (optimized)
- record: Start background recording
- stop: Stop and process recording
- analyze: Process existing video file
HARD LIMITS (Claude API constraints):
- Max 1568px per dimension (Claude 2000px limit for multi-image)
- Max 100 images per request
- Max 32MB payload
DEFAULT SETTINGS:
- 768px max dimension (good quality, safe margin)
- 60% JPEG quality (aggressive compression)
- 30 target frames per session
- Activity detection @ 0.02 threshold
USAGE:
screen(action="session") # 30s → ~30 frames → ~500KB
screen(action="capture") # Single screenshot
screen(action="analyze", path="recording.mp4") # Process existing
ENV VARS:
HANZO_SCREEN_DURATION=30
HANZO_SCREEN_TARGET_FRAMES=30
HANZO_SCREEN_MAX_SIZE=768
HANZO_SCREEN_QUALITY=60
Bump hanzo-tools-computer to v0.5.0
2026-01-11 20:07:08 -08:00
zeekay
dbd18eca93
feat(computer): add intelligent video slicing with activity detection
...
MediaTool v0.4.0 - Smart video compression for Claude interpretation:
NEW ACTIONS:
- analyze: Detect activity segments (movement, scene changes)
- slice: Extract frames ONLY at activity points
- compress_session: Full pipeline for computer use sessions
ACTIVITY DETECTION:
- Frame differencing (PIL + numpy) for movement detection
- FFmpeg scene change detection for major transitions
- Activity clustering into segments with scores
- Configurable sensitivity thresholds
COMPRESSION:
- 512px max dimension for session frames (vs 768px default)
- 60% JPEG quality for aggressive compression
- Target 30 frames per 60-second session
- ~15KB per frame, ~450KB total for typical session
NEW ENV VARS:
HANZO_MEDIA_ACTIVITY_THRESHOLD=0.02
HANZO_MEDIA_SCENE_THRESHOLD=0.3
HANZO_MEDIA_SESSION_MAX_DURATION=60
HANZO_MEDIA_SESSION_TARGET_FRAMES=30
HANZO_MEDIA_SESSION_QUALITY=60
Usage:
media(action="compress_session", path="recording.mp4")
# Returns compressed keyframes + activity analysis
# Perfect for Claude to interpret computer use sessions
Added numpy>=1.26.0 dependency for frame differencing.
2026-01-11 19:52:05 -08:00
zeekay
e940ca5f1a
feat(computer): add MediaTool with configurable limits (100 images, 32MB)
...
- Add MediaTool for native image/video support with configurable limits
- MediaLimits dataclass configurable via HANZO_MEDIA_* env vars
- Actions: load, load_batch, optimize, resize, extract_frames, info, limits, status
- Hard caps enforced: 100 images, 32MB payload, 4096px max resolution
- Default optimal targets: 768px, 85% JPEG quality
- Fixed requires-python to >=3.12 (was >=3.11)
- Bump hanzo-tools-computer to v0.3.0
Environment variables:
HANZO_MEDIA_MAX_IMAGES=100 # Max images per batch
HANZO_MEDIA_MAX_PAYLOAD_MB=32 # Max total payload in MB
HANZO_MEDIA_MAX_RESOLUTION=1568 # Max image dimension
HANZO_MEDIA_OPTIMAL_SIZE=768 # Target size for optimization
HANZO_MEDIA_JPEG_QUALITY=85 # JPEG quality (1-100)
2026-01-11 19:30:45 -08:00
zeekay
a9769ebb28
refactor: merge hanzo-tools-core into hanzo-tools
...
- hanzo-tools now contains core infrastructure (BaseTool, ToolRegistry, etc.)
- hanzo-tools-core becomes a thin backwards-compat wrapper
- All tool packages now depend on hanzo-tools>=0.3.0
- Reduces package count and simplifies dependency tree
2025-12-26 16:53:58 -08:00
zeekay
44e505abf2
feat(hanzo-tools-computer): v0.2.0 - comprehensive Mac automation
...
- Add window management: get_active_window, list_windows, focus_window
- Add screen management: get_screens, screen_size, current_screen
- Add region abstractions: define_region, region_screenshot, region_locate
- Add image utilities: locate_all, wait_for_image, wait_while_image
- Add pixel operations: pixel, pixel_matches with tolerance
- Add timing controls: set_pause, set_failsafe, countdown
- Add input helpers: write (with clear), key_down/key_up, move_relative
- Add batch operations: run multiple actions in one call
- Performance: thread pool executor, cached screen info, faster polling
- All operations non-blocking with async-first design
2025-12-26 06:45:07 -08:00
zeekay
7ff34ba5bf
feat(hanzo-tools): v0.10.17 - modular tool packages + computer control
...
- Add hanzo-tools-computer package for pyautogui Mac automation
- Fix hanzo-tools-agent imports to use new package structure
- Add get_read_only_*_tools() helpers to filesystem/jupyter
- Remove BatchTool (replaced by dag - one tool per capability)
- Remove hanzo-persona dependency (not published yet)
- Simplify pyproject.toml for local development
Packages ready for PyPI:
- hanzo-tools-core
- hanzo-tools-filesystem
- hanzo-tools-shell
- hanzo-tools-browser
- hanzo-tools-memory
- hanzo-tools-todo
- hanzo-tools-reasoning
- hanzo-tools-lsp
- hanzo-tools-refactor
- hanzo-tools-database
- hanzo-tools-agent
- hanzo-tools-jupyter
- hanzo-tools-editor
- hanzo-tools-computer (NEW)
2025-12-26 06:37:28 -08:00