Pig Docs
Pig is an API to launch and automate Windows apps. Plug this SDK into your AI Agent apps to give them a computer!
Warning: This API and associated infrastructure are currently in alpha and will likely undergo changes.
Getting Started
Step 1: Install the Python SDK
pip install pig-python
Step 2: Start Piglet
The Piglet is a process that runs on your Windows machine to drive the automations.
Follow this guide to download it, and start it with the command:
# Start the Piglet server (exposes localhost:3000)
piglet
Step 3: Call It Locally
The SDK can be used from the same Windows machine to send automations to Piglet.
from pig import Client
client = Client()
# Select your local machine
machine = client.machines.local()
# Start a connection and send a workflow
with machine.connect() as conn:
conn.key("super") # Press Windows key
conn.type("hello world!") # Type text
Step 4: Call It Over The Internet (Using Pig)
Your Piglet can be controlled over the internet by subscribing it as a machine in Pig's API.
# Start Piglet pointing to Pig's control server
piglet --control-host piglet.pig.dev --pig-secret-key SK-YOUR_API_KEY
This will register your Piglet as a machine in Pig's API.
Now, from any computer, you can send automations to your connected Piglet.
Use the pig CLI to see your connected machines:
# List available machines
pig ls
ID state Created
------------------------- ------- ----------------
M-6HNGAXR-NT0B3VA-P33Q0R2 RUNNING 2025-02-10 23:31
And send an automation to it by specifying the machine ID.
from pig import Client
client = Client()
# Select your remote machine
machine = client.machines.get("M-6HNGAXR-NT0B3VA-P33Q0R2")
# Start a connection and send a workflow
with machine.connect() as conn:
conn.key("super") # Press Windows key
conn.type("hello world!") # Type text
API Reference
Machine Management
# Get your local machine
machine = client.machines.local()
# Get a remote machine by ID
machine = client.machines.get("M-ABCD123")
Connection APIs
# All operations should use the context manager pattern
with machine.connect() as conn:
# Keyboard
conn.type("Hello World") # Type text
conn.key("super") # Press Windows key
conn.key("ctrl+c ctrl+v") # Key combinations
# Mouse
conn.mouse_move(x=100, y=100) # Move cursor
conn.left_click() # Click at current position
conn.left_click(x=100, y=100) # Move and click
conn.right_click(x=100, y=100) # Right click
conn.double_click(x=100, y=100) # Double click
conn.left_click_drag(x=200, y=200) # Click and drag
# Screen
image = conn.screenshot() # Take screenshot
x, y = conn.cursor_position() # Get cursor position
w, h = conn.dimensions() # Get machine dimensions
# Control
conn.yield_control() # Give control to human
conn.await_control() # Wait for control back
CLI Reference
# List all machines
pig ls
# Example output:
ID state Created
------------------------- ------- ----------------
M-6HNGAXR-NT0B3VA-P33Q0R2 RUNNING 2025-02-10 23:31
Metadata
Release files for pig-python 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| pig_python-0.1.2.tar.gz | 15.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pig_python-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.5 kB
Release files / pig_python-0.1.2.tar.gz
| Download URL | pig_python-0.1.2.tar.gz |
|---|---|
| Size | 15.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
18e6d587b949ba6e2589e2eb3347045c8b5fc290ee7e7a8109acc3480109f1d6
|
|
BLAKE2b-256 checksum How to use checksums |
41012fef5fb4916589c003f61bbeb3cad02537906f18d6c337c174af7b45d278
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.1
|
Release files / pig_python-0.1.2-py3-none-any.whl
| Download URL | pig_python-0.1.2-py3-none-any.whl |
|---|---|
| Size | 16.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3b4b78472130fc7e06f54989648a980960d175e8cbb1080d0af3c9b0d05312ba
|
|
BLAKE2b-256 checksum How to use checksums |
80c5962d4fbbb36322970a4b6aecc30b595f0f7641c66ad67f860e832d0d173c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.1
|
Security for pig-python 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.