Skip to main content

Python SDK for Pilot Protocol - the network stack for AI agents

Project description

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

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))

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 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

Links

License

AGPL-3.0-or-later. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pilotprotocol-1.12.3.tar.gz (15.4 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pilotprotocol-1.12.3-cp311-cp311-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl (15.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64manylinux: glibc 2.35+ x86-64

pilotprotocol-1.12.3-cp311-cp311-macosx_15_0_universal2.whl (14.2 MB view details)

Uploaded CPython 3.11macOS 15.0+ universal2 (ARM64, x86-64)

File details

Details for the file pilotprotocol-1.12.3.tar.gz.

File metadata

  • Download URL: pilotprotocol-1.12.3.tar.gz
  • Upload date:
  • Size: 15.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for pilotprotocol-1.12.3.tar.gz
Algorithm Hash digest
SHA256 9313477724b53b8307692e5f405ff64f6b17ffb75dfac6f0a1e766a830d63c0b
MD5 e3adcc69289515f286b5c08eed4dc176
BLAKE2b-256 6e68aed304466175fdaede95687eca3ded8ff64d1d4055a4837b20c644d745f4

See more details on using hashes here.

File details

Details for the file pilotprotocol-1.12.3-cp311-cp311-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for pilotprotocol-1.12.3-cp311-cp311-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 410b47fc7e507febe57519df2ae74435290e8849f57ac11f2cae2429788e639d
MD5 219ac839bd08529bf4a2af4345f9d73b
BLAKE2b-256 f819f5a5d8df238b6c73741a8db3ee03d51106bfde8d4de142627969a8a1c374

See more details on using hashes here.

File details

Details for the file pilotprotocol-1.12.3-cp311-cp311-macosx_15_0_universal2.whl.

File metadata

File hashes

Hashes for pilotprotocol-1.12.3-cp311-cp311-macosx_15_0_universal2.whl
Algorithm Hash digest
SHA256 18ccfe6269d15b7e18a55788c1750c19f6fa935746e61ac76ffe09aa15f3318f
MD5 b66cf60ced16c3b809ec8d45b90c4e42
BLAKE2b-256 f1dcabaa03682532f184b710884c318e980c8cd5f6b15949ffe271aba259da3d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page