A task-driven automation framework built on AskUI Agent that reads tasks from the tasks/ folder, performs UI interactions, and generates per-task reports with screenshots in a timestamped workspace. Tasks are organized in a hierarchical folder structure with support for rules, setup, and teardown.
This project automates UI tasks defined in text-based files under the tasks/ directory. The AskUI Agent:
- Reads tasks from the Task Folder (
tasks/) — supports.txt,.md,.csv,.json, and.pdf - Supports hierarchical task organization with rules, setup, and teardown per folder
- Executes each task step-by-step via UI automation
- Writes a summary report per task (what was done, result, issues, conclusion)
- Saves screenshots of system interactions and includes them in reports
- Writes all outputs into a timestamped Agent Workspace directory
- Supports custom tools via the
helpers/module - Supports caching for repeated task runs
solution-delivery-template/
├── main.py # Entry point - hierarchical folder runner
├── system_prompt.py # System prompt builder (reads from prompts/)
├── requirements.txt # Python dependencies
├── ruff.toml # Linting/formatting configuration
├── .vscode/settings.json # Editor & AskUI Shell terminal profile
├── helpers/ # Custom tools and utilities
│ ├── __init__.py
│ ├── get_tools.py # Tool factory function
│ └── tools/
│ ├── __init__.py
│ └── greeting_tool.py # Example custom tool
├── prompts/ # Prompt parts for the system prompt (MD files)
│ ├── system_capabilities.md # Agent capabilities description
│ ├── device_information.md # Desktop device context
│ └── report_format.md # Report formatting guidelines
├── tasks/ # Task definitions (hierarchical)
│ └── demo/
│ ├── rules.md # Rules for this task group
│ ├── calculator.csv # CSV test case
│ ├── clock_demo.txt # Text task
│ ├── notepad_hello.md # Markdown task
│ └── webbrowser.json # JSON task
├── agent_workspace/ # Generated per run (timestamped)
├── .gitignore
└── README.md # This file
Tasks are organized in folders under tasks/. Each folder can contain:
| File | Purpose |
|---|---|
rules.(md|txt|csv|json|pdf) |
Context/rules injected as system prompt for all tasks in folder |
setup.(md|txt|csv|json|pdf) |
Executed before tasks in folder |
teardown.(md|txt|csv|json|pdf) |
Executed after all tasks in folder |
*.csv, *.md, *.txt, *.json, *.pdf |
Task files (executed in sorted order) |
| Subdirectories | Subgroups that inherit parent rules |
Rules cascade from parent to child folders, so subgroups inherit their parent's context.
A setup file runs before any tasks in the folder. Use it to prepare the environment:
## Setup Steps
1. Open the Settings application.
2. Navigate to the "Network" section.
3. Ensure WiFi is enabled before proceeding with tests.A teardown file runs after all tasks in the folder complete. Use it to clean up:
## Teardown Steps
1. Close the Settings application.
2. Return to the home screen.
3. Clear any temporary files created during testing.Before you begin, ensure you have:
- AskUI Shell installed on your system
- Python 3.12 or higher
- Access to the AskUI platform with valid credentials
If you haven't already, install AskUI Shell following the official installation guide.
Launch the AskUI Shell environment:
askui-shell-
Create an Access Token Follow the Access Token Guide.
-
Set Up Your Credentials Follow the Credentials Setup Guide.
Activate the virtual environment (run this each time you start a new terminal):
AskUI-EnablePythonEnvironment -name 'AskUI-POC' -CreateIfNotExistsInstall required packages (only needed the first time or when requirements.txt is updated):
pip install -r requirements.txtcp .env.template .env
# Edit .env file with your API keysKey paths are defined in main.py:
TASK_FOLDER(tasks/): Folder containing task files the agent reads and executes.AGENT_WORKSPACE(agent_workspace/YYYY-MM-DD_HH-MM-SS/): Where the agent can write reports and screenshots (timestamped per run).
You can customize the system prompt by editing the markdown files in prompts/:
system_capabilities.md— Agent capabilities and behavior rulesdevice_information.md— Information about the device being controlledreport_format.md— Report formatting guidelines
# Run all tasks from the default tasks/ folder
python main.py
# Run tasks from a specific subfolder
python main.py tasks/demo
# Run a single task file (with setup/teardown from its folder hierarchy)
python main.py tasks/demo/calculator.csv
# Custom caching options
python main.py tasks/demo --cache-strategy auto --cache-dir .askui_cacheEach run creates a new workspace directory:
agent_workspace/YYYY-MM-DD_HH-MM-SS/
├── <task_name>/
│ ├── <task_name>_report.md
│ └── <task_name>_screenshot.png
└── ... (HTML report artifacts from SimpleHtmlReporter)
- Create a new folder under
tasks/for your task group - Add a
rules.mdwith context and rules for the group - Optionally add
setupandteardownfiles - Add task files (CSV, Markdown, etc.) — they execute in sorted order
- Create new tool classes in
helpers/tools/ - Inherit from
askui.models.shared.tools.Tool - Register tools in
helpers/get_tools.py
See helpers/tools/greeting_tool.py for an example.
Tasks can be provided in several formats. The agent reads files from tasks/ and interprets them as tasks to execute.
Short step-by-step instructions, e.g. open an app, read and report information, include a screenshot.
Structured task with objective, steps, and deliverables.
Table format with test case ID, name, preconditions, step number, step description, and expected result — suitable for test-case style automation.
Example columns: Test case ID, Test case name, Precondition, Step number, Step description, Expected result
Structured task with id, name, description, precondition, steps (array of number, action, expectedResult), and optional deliverables.
PDF files are supported as task references. The agent will note the PDF path for processing.
The AskUI Agent comes with built-in computer tools for UI automation, including:
- Mouse control (move, click, press, drag)
- Keyboard input (typing, key presses)
- Taking screenshots
- Other desktop interaction capabilities
In addition, this project adds the following tools:
- ReadFromFileTool (base: Task Folder): Read task file contents
- ListFilesTool (Task Folder & Agent Workspace): List files in those directories
- WriteToFileTool (base: Agent Workspace): Write reports and other files
- ComputerSaveScreenshotTool (base: Agent Workspace): Capture and save screenshots to disk
- PrintToConsoleTool: Print messages to the console
- Window management tools: Virtual display, process/window listing, focus control
- Custom tools: Registered via
helpers/get_tools.py(e.g., GreetingTool)
Reporting is enhanced by SimpleHtmlReporter, which writes HTML reports into the agent workspace.
The project supports multiple Claude models:
claude-opus-4-6 claude-sonnet-4-6 (default) claude-haiku-4-5-20251001 claude-sonnet-4-5-20250929
This project is provided as an AskUI solution delivery template.