Skip to main content

Pilot Protocol — Python SDK

ci codecov License: AGPL-3.0

PyPI version Python versions

Python client for the Pilot Protocol overlay network. Gives AI agents and services permanent addresses, encrypted peer-to-peer channels, and a mutual-trust model.

The SDK calls into a pre-built libpilot shared library (.so / .dylib / .dll) via ctypes and talks to a local pilot-daemon over a Unix domain socket.

Install

pip install pilotprotocol

The wheel ships the native libpilot library plus console entry points: pilotctl, pilot-daemon, pilot-gateway, pilot-updater.

Supported platforms: Linux (x86_64, arm64), macOS (Intel, Apple Silicon). Windows is experimental.

Quick start

Make sure a daemon is running:

pilotctl daemon start --hostname my-agent

Then, from your code:

from pilotprotocol import Driver, PilotError

try:
    with Driver() as d:
        info = d.info()
        print(f"address={info['address']}")

        d.set_hostname("my-python-agent")

        peer = d.resolve_hostname("other-agent")
        with d.dial(f"{peer['address']}:1000") as conn:
            conn.write(b"hello")
            print(conn.read(4096))
except (PilotError, FileNotFoundError) as e:
    # Raised when libpilot isn't installed or no daemon is running.
    # Start one with: pilotctl daemon start --hostname my-agent
    print(f"pilot daemon unavailable: {e}")

API overview

Driver is the connection to the local daemon. Highlights:

  • Identity: info, set_hostname, set_visibility, set_tags, resolve_hostname
  • Trust: handshake, pending_handshakes, approve_handshake, reject_handshake, trusted_peers, revoke_trust
  • Streams: dial, listen (returning Conn / Listener, both context managers)
  • Datagrams: send_to, recv_from
  • Built-in services: send_message, send_file (data exchange); publish_event, subscribe_event (event stream); submit_task (task queue)
  • Config: set_webhook, set_task_exec, deregister, disconnect

All daemon-side errors are raised as PilotError.

from pilotprotocol import Driver, PilotError

try:
    with Driver() as d:
        d.resolve_hostname("unknown")
except (PilotError, FileNotFoundError) as e:
    print(f"error: {e}")

Native library lookup

The SDK searches for libpilot.{so,dylib,dll} in this order:

  1. PILOT_LIB_PATH environment variable (explicit path)
  2. The installed package directory (bundled wheel layout)
  3. ~/.pilot/bin/ (entry-point install location)
  4. <project_root>/bin/ (development layout)
  5. System library search path

Examples

See examples/ for runnable programs:

  • basic_usage.py — connection, identity, trust
  • data_exchange_demo.py — messages, files, JSON
  • event_stream_demo.py — pub/sub
  • task_submit_demo.py — task delegation
  • pydantic_ai_agent.py / pydantic_ai_multiagent.py — PydanticAI integration

Testing

python -m pytest tests/ -v

License

AGPL-3.0-or-later. See LICENSE.

Metadata

Release files for pilotprotocol 1.18.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pilotprotocol 1.18.0
File Size Uploaded
pilotprotocol-1.18.0.tar.gz 22.3 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for pilotprotocol 1.18.0
File
pilotprotocol-1.18.0-py3-none-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl Python 3 none Linux glibc 2.34+ x86-64, Linux glibc 2.35+ x86-64 Details
pilotprotocol-1.18.0-py3-none-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl Python 3 none Linux glibc 2.35+ ARM64, Linux glibc 2.34+ ARM64 Details
pilotprotocol-1.18.0-py3-none-macosx_11_0_x86_64.whl Python 3 none macOS 11.0+ x86-64 Details
pilotprotocol-1.18.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details

Total release size: 94.8 MB

Release files / pilotprotocol-1.18.0.tar.gz

Download URL pilotprotocol-1.18.0.tar.gz
Size 22.3 kB
Tags Source
SHA-256 checksum
How to use checksums
b2f910ee6771d3fa11c0c32e23909c6258c113b10f19e3b3e73af70144692a8b
BLAKE2b-256 checksum
How to use checksums
fd1d8979a22791a2074477e10ceff17bae679be8f064dd0a6495f897440108da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / pilotprotocol-1.18.0-py3-none-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl

Download URL pilotprotocol-1.18.0-py3-none-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Size 24.5 MB
Tags Linux glibc 2.34+ x86-64 Linux glibc 2.35+ x86-64 Python 3
SHA-256 checksum
How to use checksums
08c19477e96934097313c95cb6b018fc32e328c20f5efbff9353e2e82db4a319
BLAKE2b-256 checksum
How to use checksums
cb0a9261cb51009e1cf7024741f6ccd09583061d0445ae30ea2ad5b86420d37e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / pilotprotocol-1.18.0-py3-none-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl

Download URL pilotprotocol-1.18.0-py3-none-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Size 22.2 MB
Tags Linux glibc 2.34+ ARM64 Linux glibc 2.35+ ARM64 Python 3
SHA-256 checksum
How to use checksums
9cd13bf616d4491b594c6ab6994c53ebd34dd20f93fb8d9bb3311d695c705a4f
BLAKE2b-256 checksum
How to use checksums
a00c5b6d13d10e31b0f3eaca0a1c7e8bfa3176b42d66e07a5b64d8663041485b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / pilotprotocol-1.18.0-py3-none-macosx_11_0_x86_64.whl

Download URL pilotprotocol-1.18.0-py3-none-macosx_11_0_x86_64.whl
Size 25.2 MB
Tags Python 3 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
e825853f92628f8fb170afd4d3b09148c08c43c4fb593e900fc5a6af1b106ce4
BLAKE2b-256 checksum
How to use checksums
99575a42c59a6f4bf3c0bccd6920d6a882ca2bf872d0c45bb87dfb6107d69cc6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / pilotprotocol-1.18.0-py3-none-macosx_11_0_arm64.whl

Download URL pilotprotocol-1.18.0-py3-none-macosx_11_0_arm64.whl
Size 22.8 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7b9141b72664d5391f4d076d80bef23522e1f9f48077d7f8ff964962249b60b5
BLAKE2b-256 checksum
How to use checksums
78391619953abecd18418eecbc68f4b67ba3762617b2bab27383b6fc368b8b16
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release history Release notifications | RSS feed

This release

1.18.0 This release

5 release files

1.13.9

5 release files

1.13.8

5 release files

1.13.7

5 release files

1.13.6

3 release files

1.13.5

3 release files

1.13.4

3 release files

1.13.3

3 release files

1.13.2

3 release files

1.13.1

3 release files

1.13.0

3 release files

1.12.8

3 release files

1.12.7

3 release files

1.12.6

3 release files

1.12.5

3 release files

1.12.4

3 release files

1.12.3

3 release files

1.10.5

3 release files

1.10.4

3 release files

1.10.3

3 release files

1.10.2

3 release files

1.10.1

3 release files

1.10.0

3 release files

1.9.1

3 release files

1.7.2

3 release files

0.1.2

3 release files

0.1.1

3 release files

0.1.0

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page