Skip to content

Licensing

This guide explains paiOS licensing in practical terms – what you can and cannot do.

pai-os/
├── LICENSE (AGPL-3.0 = default for everything)
├── NOTICE (Copyright & Trademarks)
│ ✅ FREE TO USE (Apache-2.0)
├── api/ ← All API definitions
│ └── grpc/
├── apps/ ← Your extensions go here
│ 🔒 MUST SHARE CHANGES (AGPL-3.0)
├── engine/ ← Runtime code
├── os/
├── scripts/
└── docs/

Yes! Extensions communicate with the paiOS runtime via gRPC over Unix Domain Sockets (IPC). This creates a clear process boundary, meaning:

  • ✅ Your extension code is not a “derivative work” of the AGPL runtime
  • ✅ You can license your extension however you want (proprietary, MIT, Apache, etc.)
  • ✅ No requirement to share your extension source code
flowchart TB
    subgraph ext["✅ Your Extension"]
        ext_label["Any license you want!<br/>Proprietary, MIT, Apache, closed..."]
    end
    
    ext -->|"gRPC over UDS<br/>(License Boundary)"| runtime
    
    subgraph runtime["🔒 paiOS Runtime"]
        runtime_label["AGPL-3.0"]
    end
    
    style ext fill:#1a4d1a,stroke:#4ade80,color:#fff
    style ext_label fill:#1a4d1a,stroke:#4ade80,color:#fff

This follows the same pattern as:

  • Linux kernel (GPL) + user applications (any license)
  • Docker engine (Apache) + plugins (any license)

The gRPC API definitions (api/grpc/) are licensed under Apache-2.0, which provides:

  • ✅ Free use in commercial products
  • ✅ Patent protection from contributors
  • ✅ No copyleft – use it however you want
Apache-2.0
// You can use this API in any project
service PaiService {
rpc Infer(InferRequest) returns (InferResponse);
}

If you modify the paiOS runtime itself (the engine/ code), the AGPL-3.0 requires you to:

  1. Share your changes if you distribute the modified runtime
  2. Share your changes if you offer the modified runtime as a network service

If you need high-performance data transfer (e.g., camera frames, audio):

✅ Allowed❌ Not Allowed
Sharing raw byte buffers (JPEG, PCM audio)Sharing complex paiOS data structures
gRPC handles pointing to shared buffersDirect memory access to runtime internals

Build Extensions

Create proprietary extensions using our Apache-2.0 licensed API. No licensing fees, no source code sharing required.

Commercial Licensing

Need a commercial license for runtime modifications or white-labeling? Contact us.


If you want to contribute to paiOS:

  • Contributions to the runtime require signing our CLA (Contributor License Agreement)
  • This grants aurintex the flexibility to ensure long-term sustainability
  • You retain copyright to your contributions

For the full technical rationale behind our licensing decisions: