Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 0 additions & 64 deletions docs/01_setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,63 +23,6 @@ If you want a minimal installation without optional dependencies, please run
pip install askui
```

## AgentOS Installation

AgentOS is a device controller that allows agents to take screenshots, move the mouse, click, type on the keyboard, interact with the shell, and manage user session across any operating system. It's installed on a Desktop OS but can also control mobile devices and HMI devices when connected.

### Windows

- [Download AskUI Installer for AMD64](https://files.askui.com/releases/Installer/Latest/AskUI-Suite-Latest-User-Installer-Win-AMD64-Web.exe)
- [Download AskUI Installer for ARM64](https://files.askui.com/releases/Installer/Latest/AskUI-Suite-Latest-User-Installer-Win-ARM64-Web.exe)

**Installation Steps:**
1. Download the installer for your architecture
2. Run the executable
3. Follow the installation wizard
4. AgentOS will start automatically after installation

### Linux

**⚠️ Important:** AgentOS currently does not work on Wayland. Switch to XOrg to use it.

#### AMD64 (Intel/AMD Processors)

```bash
curl -L -o /tmp/AskUI-Suite-Latest-User-Installer-Linux-AMD64-Web.run https://files.askui.com/releases/Installer/Latest/AskUI-Suite-Latest-User-Installer-Linux-AMD64-Web.run
bash /tmp/AskUI-Suite-Latest-User-Installer-Linux-AMD64-Web.run
```

#### ARM64 (ARM Processors)

```bash
curl -L -o /tmp/AskUI-Suite-Latest-User-Installer-Linux-ARM64-Web.run https://files.askui.com/releases/Installer/Latest/AskUI-Suite-Latest-User-Installer-Linux-ARM64-Web.run
bash /tmp/AskUI-Suite-Latest-User-Installer-Linux-ARM64-Web.run
```

**Installation Steps:**
1. Download the installer script
2. Run the script with bash
3. Follow the prompts
4. AgentOS will start automatically after installation

### MacOS

**⚠️ Important:** AgentOS currently does not work on MacOS with Intel chips (x86_64/amd64 architecture). You need a Mac with Apple Silicon (M1, M2, M3, etc.).

#### ARM64 (Apple Silicon)

```bash
curl -L -o /tmp/AskUI-Suite-Latest-User-Installer-MacOS-ARM64-Web.run https://files.askui.com/releases/Installer/Latest/AskUI-Suite-Latest-User-Installer-MacOS-ARM64-Web.run
bash /tmp/AskUI-Suite-Latest-User-Installer-MacOS-ARM64-Web.run
```

**Installation Steps:**
1. Download the installer script
2. Run the script with bash
3. Follow the prompts
4. Grant necessary permissions when prompted (screen recording, accessibility)
5. AgentOS will start automatically after installation

## Authentication and Configuration

To use the AskUI VisionAgent, please sign up and configure your credentials.
Expand Down Expand Up @@ -125,13 +68,6 @@ set ASKUI_WORKSPACE_ID=<your-workspace-id-here>
set ASKUI_TOKEN=<your-token-here>
```

#### AskUI Shell
_Note: The AskUI Shell can be installed using the AskUI Suite_
```powershell
askui-shell
AskUI-SetSetting -WorkspaceId <your-workspace-id-here> -Token <your-token-here>
```

## Verifying Your Installation

```python
Expand Down
36 changes: 35 additions & 1 deletion pdm.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ authors = [
{name = "askui GmbH", email = "info@askui.com"},
]
dependencies = [
"askui-agent-os>=26.1.1",
"anthropic>=0.72.0",
"fastapi>=0.115.12",
"fastmcp>=2.3.0",
Expand Down
99 changes: 2 additions & 97 deletions src/askui/tools/askui/askui_controller_settings.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import pathlib
import sys
from functools import cached_property

from askui_agent_os import AgentOS
from pydantic import BaseModel, Field, field_validator
from pydantic_settings import BaseSettings, SettingsConfigDict

Expand Down Expand Up @@ -32,21 +32,6 @@ class AskUiControllerSettings(BaseSettings):
env_prefix="ASKUI_",
)

component_registry_file: pathlib.Path | None = None
installation_directory: pathlib.Path | None = Field(
None,
deprecated="ASKUI_INSTALLATION_DIRECTORY has been deprecated in favor of "
"ASKUI_COMPONENT_REGISTRY_FILE and ASKUI_CONTROLLER_PATH. You may be using an "
"outdated AskUI Suite. If you think so, reinstall to upgrade the AskUI Suite "
"(see https://docs.askui.com/01-tutorials/00-installation).",
)
controller_path_setting: pathlib.Path | None = Field(
None,
validation_alias="ASKUI_CONTROLLER_PATH",
description="Path to the AskUI Remote Device Controller executable. Takes "
"precedence over ASKUI_COMPONENT_REGISTRY_FILE and ASKUI_INSTALLATION_DIRECTORY"
".",
)
controller_args: str | None = Field(
default="--showOverlay false",
description=(
Expand Down Expand Up @@ -92,89 +77,9 @@ def validate_controller_args(cls, value: str) -> str:

return value

def _find_remote_device_controller_by_installation_directory(
self,
) -> pathlib.Path | None:
if self.installation_directory is None:
return None

return self._build_controller_path(self.installation_directory)

def _build_controller_path(
self, installation_directory: pathlib.Path
) -> pathlib.Path:
match sys.platform:
case "win32":
return (
installation_directory
/ "Binaries"
/ "resources"
/ "assets"
/ "binaries"
/ "AskuiRemoteDeviceController.exe"
)
case "darwin":
return (
installation_directory
/ "Binaries"
/ "askui-ui-controller.app"
/ "Contents"
/ "Resources"
/ "assets"
/ "binaries"
/ "AskuiRemoteDeviceController"
)
case "linux":
return (
installation_directory
/ "Binaries"
/ "resources"
/ "assets"
/ "binaries"
/ "AskuiRemoteDeviceController"
)
case _:
error_msg = (
f'Platform "{sys.platform}" not supported by '
"AskUI Remote Device Controller"
)
raise NotImplementedError(error_msg)

def _find_remote_device_controller_by_component_registry_file(
self,
) -> pathlib.Path | None:
if self.component_registry_file is None:
return None

component_registry = AskUiComponentRegistry.model_validate_json(
self.component_registry_file.read_text(encoding="utf-8")
)
return (
component_registry.installed_packages.remote_device_controller_uuid.executables.askui_remote_device_controller # noqa: E501
)

@cached_property
def controller_path(self) -> pathlib.Path:
result = (
self.controller_path_setting
or self._find_remote_device_controller_by_component_registry_file()
or self._find_remote_device_controller_by_installation_directory()
)
if result is None:
error_msg = (
"No AskUI Remote Device Controller found. Please set the "
"ASKUI_COMPONENT_REGISTRY_FILE, ASKUI_INSTALLATION_DIRECTORY, or "
"ASKUI_CONTROLLER_PATH environment variable."
)
raise ValueError(error_msg)

if not result.is_file():
error_msg = (
"AskUIRemoteDeviceController executable does not exist under "
f"`{result}`"
)
raise FileNotFoundError(error_msg)
return result
return AgentOS.controller_path()


__all__ = ["AskUiControllerSettings"]
Loading
Loading