pig
Project description
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
# 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pig_python-0.1.0.tar.gz.
File metadata
- Download URL: pig_python-0.1.0.tar.gz
- Upload date:
- Size: 14.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86e355e682d2f9a19dbba8d83b5e43797854113a90112f6c0c80e934357f66e2
|
|
| MD5 |
66a9a4b77e26a2e7b511ebb12e0405ed
|
|
| BLAKE2b-256 |
dd1fa6b8f34c83b9c92026abf39bf3d591eefcf97ee6caec71a0df8635b5d7fc
|
File details
Details for the file pig_python-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pig_python-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb30dd447c1bb730cef5bdf5c8f583f56ddb3f03b829f749000a16a0a93494b7
|
|
| MD5 |
833123a99901ed5771285a2df0c9b9d9
|
|
| BLAKE2b-256 |
3a479333fac0f45043a7745e4d13e89df4c67829c821785e74415d16fa024c59
|