Skip to content

Releases: askui/python-sdk

v0.22.8

09 Dec 20:26
c1a4fb3

Choose a tag to compare

What's Changed

Full Changelog: v0.22.7...v0.22.8

v0.22.7

04 Dec 09:45
41583f7

Choose a tag to compare

What's Changed

🚀 Features

  • OpenTelemetry Tracing Docs
  • Introduce branching for conversations. Support rerunning and editing user messages.

🐛 Bug Fixes

  • Use computer-use-2025-11-24 beta flag for claude-opus-4-5-20251101

Full Changelog: v0.22.6...v0.22.7

v0.22.6

27 Nov 13:02
7bf0189

Choose a tag to compare

What's Changed

  • feat: enhance Agent Android tap tool to allow N taps in a row with optional delay by @mlikasam-askui in #199

🚀 Features

  • Enhanced Agent Tap Actions
    • The Android Vision Agent can now perform multiple consecutive taps on Android devices with a configurable delay between taps, enabling more complex instructions.
      • Supports commands like:
        agent.act("increase the temperature in the climate control by 20 degrees with 0 milliseconds delay between taps")
      • Handles multi-tap instructions precisely, useful for automated agent-driven tasks
      • Delay between taps can be specified in milliseconds

Full Changelog: v0.22.5...v0.22.6

v0.22.5

27 Nov 08:42
9babb58

Choose a tag to compare

What's Changed

🚀 Features

  • Allure Test Reporting Integration

    • AllureReporter: Seamlessly integrate Vision Agent test results into the Allure reporting framework.
      • Records each agent interaction as a structured Allure test step
      • Automatically attaches screenshots to improve debugging and test insights
      • Performs eager dependency checking — if Allure is not installed, an ImportError is raised during initialization
    from askui import VisionAgent
    from askui.reporting import AllureReporter
    
    with VisionAgent(reporter=[AllureReporter()]) as agent:
        agent.act("Click the login button")
        # Actions become Allure steps with screenshots in the report

    Requirements
    Install at least one of the following packages:

    • allure-python-commons
    • allure-pytest
    • allure-behave

    👉 Install with:

    pip install allure-python-commons

🛠️ Fixes

  • Android Multi-Screen Support
    • Improved handling of multiple displays on Android devices

Full Changelog: v0.22.4...v0.22.5

v0.22.4

24 Nov 10:51
b17eaf2

Choose a tag to compare

What's Changed

🚀 Features

  • Element Annotation:

    • annotate() method: Generate interactive HTML files that visualize detected UI elements on screenshots. The generated HTML allows users to:
      • View bounding boxes around all detected elements
      • Hover over elements to see their names and text values
      • Click on elements to copy their text values to the clipboard
    from askui import VisionAgent
    
    with VisionAgent() as agent:
        # Annotate current screen and save to default 'annotations' directory
        agent.annotate()
    
        # Or specify custom screenshot and output directory
        agent.annotate(screenshot="screenshot.png", annotation_dir="htmls")

    Also works with AndroidVisionAgent:

    from askui import AndroidVisionAgent
    
    with AndroidVisionAgent() as agent:
        agent.annotate()
    • locate_all_elements() method: Retrieve all detected elements programmatically as a list of DetectedElement objects:
    from askui import VisionAgent
    
    with VisionAgent() as agent:
        detected_elements = agent.locate_all_elements()
        print(f"Found {len(detected_elements)} elements: {detected_elements}")
    
        # Access element properties
        for element in detected_elements:
            print(f"Name: {element.name}, Text: {element.text}")
            print(f"Position: {element.center}, Size: {element.width}x{element.height}")
    • New Data Models:
      • DetectedElement: Represents a detected UI element with name, text, and bounding_box properties, plus convenience properties for center, width, and height
      • BoundingBox: Represents element coordinates with xmin, ymin, xmax, ymax, plus convenience properties for width, height, and center
  • Chat API Model Selection: Chat runs can now specify which model to use via the model parameter in the run creation request, allowing dynamic model selection per run instead of using only the configured default model.

📜 Documentation

  • AndroidVisionAgent class: Added comprehensive docstring with detailed parameter descriptions and usage examples for the AndroidVisionAgent class (src/askui/android_agent.py:41-62).

Full Changelog: v0.22.3...v0.22.4

v0.22.3

20 Nov 08:45

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.22.2...v0.22.3

v0.22.2

11 Nov 09:49
3ee3a1c

Choose a tag to compare

What's Changed

Full Changelog: v0.22.1...v0.22.2

v0.22.1

03 Nov 14:00
b0240ab

Choose a tag to compare

What's Changed

  • fix: python 3.13.1 is now allowed again

Full Changelog: v0.22.0...v0.22.1

v0.22.0

03 Nov 11:26

Choose a tag to compare

What's Changed

🚀 Features

  • Offset and Absolute Positioning: Enhanced the click(), type(), and mouse_move() methods with more precise positioning capabilities:

    • Offset Parameter: Added offset parameter to fine-tune click and mouse positions relative to a target element
      # Click 10 pixels right and 5 pixels up from "Submit" button
      agent.click("Submit", offset=(10, -5))
      
      # Move mouse 5 pixels right and 10 pixels down from "Menu"
      agent.mouse_move("Menu", offset=(5, 10))
      
      # Type text in input field with offset
      agent.type("text", locator="Input field", offset=(5, 0))
    • Absolute Coordinates: Added support for Point tuples to specify exact screen coordinates
      # Click at absolute coordinates (100, 200)
      agent.click((100, 200))
      
      # Move cursor to absolute coordinates (300, 150)
      agent.mouse_move((300, 150))
      
      # Click at coordinates then type
      agent.type("username", locator=(200, 100))
    • Offset coordinates follow screen conventions: positive x moves right, negative x moves left, positive y moves down, negative y moves up
  • SQLite Database Migration: Migrated chat persistence layer from JSON files to SQLite database for improved performance, reliability, and scalability:

    • Automatic Migrations: Database migrations run automatically on startup by default (configurable via ASKUI__CHAT_API__DB__AUTO_MIGRATE)
    • Migrated Components:
      • Assistants configuration
      • Messages, runs, and threads
      • File storage metadata
      • MCP (Model Context Protocol) configurations
    • Migration Framework: Added Alembic for database schema versioning and migrations
    • Backwards Compatibility: Original JSON files are preserved during migration, allowing easy rollback by installing an older version
    • Migration Documentation: Comprehensive documentation added in docs/migrations.md covering:
      • Migration strategy and execution flow
      • Manual migration commands
      • Troubleshooting and best practices
      • Database configuration options
    • Migration Commands:
      # Run all pending migrations
      pdm run alembic upgrade head
      
      # Show current migration status
      pdm run alembic current
      
      # Disable auto-migration for debugging
      export ASKUI__CHAT_API__DB__AUTO_MIGRATE=false

🐛 Bug Fixes

  • Python 3.13 Support: Updated maximum Python version requirement to 3.13 as version 3.14 is not yet supported

Full Changelog: v0.21.1...v0.22.0

v0.21.1

31 Oct 08:04

Choose a tag to compare

What's Changed

🚀 Features

  • Temperature Configuration: Added support for configuring the temperature parameter for agent responses
    • Temperature can now be set via MessageSettings.temperature (range: 0.0 to 1.0)
    • Allows fine-tuning of response randomness and creativity
    • Example usage:
      from askui import VisionAgent
      from askui.models.shared.settings import ActSettings, MessageSettings
      
      message_settings = MessageSettings(temperature=0.7)
      act_settings = ActSettings(messages=message_settings)
      with VisionAgent() as agent:
          agent.act("Tell me a joke", settings=act_settings)

🐛 Bug Fixes

  • Default Chat Model: Fixed the default chat model configuration
    • Changed from claude-sonnet-4-20250514 (Anthropic-hosted, which doesn't work out of the box) to askui/claude-haiku-4-5-20251001 (AskUI-hosted)
    • Provides faster and better responses by using Haiku instead of Sonnet 4
    • Ensures the default model works out of the box without additional configuration

Full Changelog: v0.21.0...v0.21.1