Developers

Start with the code you have.

Nobody rewrites their stack to join the Paranet. A decorator turns an existing Python or TypeScript function into a skill; Paraflow orchestrates the work above it; a node runs it all, on your laptop or in your cloud.

Request developer access

The on-ramp

One decorator, and a function becomes a skill.

Wrap the code you already run. The decorator registers what it can do — a subject, an action and a typed contract — and any actor entitled to that skill can now request it. The wrapped code does not change.

  • Keep your language, your package managers and your repositories.
  • Actors declare what they can do, not where they live, so providers can be swapped, upgraded or scaled without rewiring anyone.
  • The same actor code runs against a simulation and against the real system.
@actor.actor
class Ticketing(BaseActor):

    @actor.skill(subject="ticketing", response=TaskStatus)
    def create_ticket(self, cell: int, conv: Conversation):
        # your existing code, unchanged
        ...

Paraflow · goal trees

A rule’s output is a plan, not execution.

Orchestration is written in Paraflow, a small declarative language with four ideas. Rules have no side effects, so the full plan exists — and can be inspected — before anything runs. Generative artificial intelligence (AI) can help build and validate a workflow up front; at runtime the compiled plan executes deterministically, and re-plans with substitute tasks when a step fails.

Goals

Name a desired outcome.

Rules

Break a goal into sub-goals. A forall over live data expands into parallel sub-goals before execution.

Tasks

The leaves that do the work, often by issuing a skill request to another actor.

Events

How the outside world, including incoming skill requests, starts new goals.

Editor view: a Python actor wrapping a work-tracking system with skill decorators, beside the Paraflow workflow that orchestrates it
Left: a Python actor wrapping a work-tracking system, each method a skill. Right: the Paraflow events, rules and tasks above it. From a prototype workcell.

Run a node

Local while you build. Anywhere when you ship.

A node is a self-contained deployment — broker, skill matcher, Paraflow interpreter, certificate manager and ledger. Run one locally in Docker while you develop, then deploy the same node to Kubernetes in your cloud, on-premise or at the edge.

  • Written in Rust with a small footprint, so it fits on edge hardware as well as in a cluster.
  • Resumes where it left off after a restart: state is persisted, not rebuilt.
  • No central server, no shared database. Each node owns its own actors and state, and federates only the skills you choose.
  • Every conversation in the ledger — who asked, who answered, what happened — for debugging and audit.
  • Works with what you already run. Message Queuing Telemetry Transport (MQTT), Robot Operating System 2 (ROS 2), Kafka or Redis stay in place; an actor sits in front of them.

Security

Negative trust, built into the platform.

You do not bolt security on afterwards. Identity, permissions and monitoring are properties of every actor and every request.

Read about trust & guardrails →

  • Certificates. Every actor carries one; identity is verified, not assumed.
  • Registered skills only. Nothing can be requested or performed unless it has been declared.
  • Skill-level access control. Permissions apply to each skill request, and skills can be segmented by network group.
  • Observers. Invisible to the actors they watch, they can flag, pause or remove a misbehaving actor.
  • Taint tracking in the language, so untrusted input is followed through a workflow.

From the archive

The 2025 alpha developer release.

Our first developer release, recorded in September 2025. The architecture is the same; some of the tooling shown has moved on since.

For the full architecture — actors, skill matching, conversations, nodes and federation — read the full technical walkthrough or What is the Paranet.

Alpha release · 2025

Otonoma Alpha Developer Release

The 2025 alpha release of the developer tools, recorded 25 September 2025.

Frequently asked questions

What is the Paranet, for a developer?
A network of actors — software, hardware, AI models and people — that declare skills and request them from each other. You expose existing code as skills with a decorator, orchestrate them with Paraflow goal trees, and run them on a node. Work is matched to a qualified actor at the moment it is needed rather than wired to a fixed address.
Do I have to learn a new language?
Only for the orchestration. The code that does the work stays in Python or TypeScript, with the packages you already use. Paraflow is small by design: goals, rules, tasks and events.
How is this different from calling an Application Programming Interface (API)?
An API call goes to an address. A skill request goes to the network, which matches it to a qualified actor, at that moment, weighing availability and load. Requests, responses and status updates are grouped into persistent conversations and recorded in the ledger, so long-running work survives failures and every step can be audited.
Where do nodes run?
Anywhere the work is. Docker for local development, Kubernetes for production, in a cloud, on-premise or at the edge. Each organization runs its own nodes and chooses exactly which skills to share with other networks.
How do I get started?
Request access with the form below. We are working with a small number of developer teams and will be in touch as we expand access.

Request developer access

Building for a business rather than a side project?

We will walk your team through a working prototype against a problem you recognize.