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.

Release files for pilotprotocol 1.13.10

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.13.10
File Size Uploaded
pilotprotocol-1.13.10.tar.gz 22.3 kB Details

Built distributions (wheels)

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

Total release size: 95.1 MB

Release files / pilotprotocol-1.13.10.tar.gz

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

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

Download URL pilotprotocol-1.13.10-py3-none-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Size 24.6 MB
Tags Linux glibc 2.34+ x86-64 Linux glibc 2.35+ x86-64 Python 3
SHA-256 checksum
How to use checksums
d26208882b7f28c773d48308b501a451460a9184694d5853de856c263d292b27
BLAKE2b-256 checksum
How to use checksums
81f2909d5c7bd819896995b6ec66e4f2ccc54707df7956a9d94d178ff090f795
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

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

Download URL pilotprotocol-1.13.10-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
90fc1adf4e7da70eb71db5e83130ecf565886c8747b383fc9a8c1280759117b7
BLAKE2b-256 checksum
How to use checksums
be2a571f07be5554bac890fe9bf30b312cc6818436eca9ff10554640970fdc9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

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

Download URL pilotprotocol-1.13.10-py3-none-macosx_11_0_x86_64.whl
Size 25.3 MB
Tags Python 3 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
5f818e13f0353883c4aaf8582ecf0b99dcd65f41f0ed7a21838f9422ac9e4049
BLAKE2b-256 checksum
How to use checksums
b95e5e6473c3c06f4af8b0a352925978b1def6afa938dd13df44b2cc65d86461
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

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

Download URL pilotprotocol-1.13.10-py3-none-macosx_11_0_arm64.whl
Size 22.9 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a3868b6d393ea227773b411b8f18d7492f74d5e41fc2514955ce1f33071e74bb
BLAKE2b-256 checksum
How to use checksums
6ae3fa7aec5ffc2d186cc63f102f2f53b548b3d4bf8798ae3d4d9f745f1751af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release history Release notifications | RSS feed

This release

1.13.10 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