> ## Documentation Index
> Fetch the complete documentation index at: https://docs.askui.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Local Development

> Deploy AgentOS on your own machine for desktop, mobile, or hardware-based automation.

You're building and testing agents on your own machine. In all local scenarios, you install AgentOS via `pip install askui-agent-os` and your Python SDK connects to the local AgentOS instance over gRPC.

## Desktop

Automate the desktop on your own Windows, macOS, or Linux machine. AgentOS runs in standalone mode alongside your agent code.

**When to use:** Day-to-day development, debugging, and interactive testing.

**Install:** `pip install askui-agent-os` → [Standalone](/06-agent-os/installation/standalone)

```mermaid theme={null}
graph LR
    A[Python SDK] -->|gRPC| B[AgentOS<br/>Standalone] --> C[Desktop<br/>Windows / macOS / Linux]
    subgraph Your Machine
        direction LR
        A
        B
        C
    end
```

Your agent code and AgentOS run in the same machine. The SDK sends commands via gRPC, and AgentOS translates them into OS-level actions — screenshots, keyboard input, mouse control.

## Mobile Device

Automate an Android or iOS device connected to your machine via USB.

**When to use:** Mobile app testing, device interaction during development.

**Install:** `pip install askui-agent-os` → [Standalone](/06-agent-os/installation/standalone)

```mermaid theme={null}
graph LR
    A[Python SDK] -->|gRPC| B[AgentOS<br/>Standalone]
    B -->|USB / ADB| D[Android Device]
    B -->|USB / IDB| E[iOS Device]
    subgraph Your Machine
        A
        B
    end
```

AgentOS acts as a bridge: it receives commands from the SDK via gRPC and forwards them to the connected device using ADB (Android) or IDB (iOS). The device stays connected via USB.

<Note>You only need one of ADB or IDB depending on your target device — both are shown for completeness.</Note>

<AccordionGroup>
  <Accordion title="Android: Setting up ADB">
    ADB (Android Debug Bridge) must be available on your PATH. ADB works with both physical devices and emulators. See Google's guide on [running apps on the Android Emulator](https://developer.android.com/studio/run/emulator) to get started with emulators.

    <Steps>
      <Step title="Download SDK Platform Tools">
        Download from [developer.android.com](https://developer.android.com/tools/releases/platform-tools) and unzip to a folder (e.g. `C:\platform-tools` or `~/platform-tools`).
      </Step>

      <Step title="Add to PATH">
        Add the unzipped folder to your **User** or **System PATH** environment variable.
      </Step>

      <Step title="Verify">
        Open a new terminal and run:

        ```bash theme={null}
        adb version
        ```

        You should see the ADB version output.
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="iOS: Setting up IDB (macOS only, experimental)">
    iOS automation requires macOS with Xcode and the Facebook IDB companion. IDB currently only works with **iOS Simulators**, not physical devices. This feature is **experimental**. See Apple's guide on [running your app in Simulator](https://developer.apple.com/documentation/xcode/running-your-app-in-simulator-or-on-a-device) to get started.

    <Steps>
      <Step title="Install Xcode with iOS Simulators">
        Install [Xcode](https://developer.apple.com/xcode/) from the App Store and configure iOS Simulators. Verify they are visible:

        ```bash theme={null}
        xcrun xctrace list devices
        ```
      </Step>

      <Step title="Install IDB companion">
        ```bash theme={null}
        brew tap facebook/fb
        brew install idb-companion
        ```
      </Step>

      <Step title="Verify">
        Open a new terminal and run:

        ```bash theme={null}
        idb_companion --list 1
        ```

        You should see your available simulators or devices listed.
      </Step>
    </Steps>
  </Accordion>
</AccordionGroup>

## KVM (External Hardware)

Control a target device through physical hardware connections — keyboard/mouse via USB or Bluetooth, screen capture via HDMI.

**When to use:** The target device can't have software installed on it (locked-down environments, embedded systems, kiosks).

**Install:** `pip install askui-agent-os` → [Standalone](/06-agent-os/installation/standalone)

```mermaid theme={null}
graph LR
    A[Python SDK] -->|gRPC| B[AgentOS<br/>Standalone]
    B -->|USB / Bluetooth<br/>Keyboard + Mouse| D[Target Device]
    D -->|HDMI Capture<br/>Screenshots| B
    subgraph Your Machine
        A
        B
    end
```

This is [Companion Mode](/06-agent-os/understanding/control-modes#companion-mode): AgentOS simulates keyboard and mouse input over USB or Bluetooth HID, and captures the target's screen via an HDMI-to-USB capture device. No software installation on the target is required.
