ifURI

about.ifuri.com

ifURI,
then flow.

One local-first runtime that turns every command, service, container and app into an addressable URI — then composes them into flows across MCP tools, A2A agents, local LLMs and LAN devices.

ifuri://urirun://mcp://agent://llm://browser://shell://error://

ifURI vs urirun

Two names, one idea.

urirun://

urirun — the engine

The open runtime + SDK. Declare a URI, compile a registry, dispatch a route behind a policy gate. A library for any language, with no UI of its own.

ifuri://

ifURI — the product

The local-first app and ecosystem built on urirun: desktop app, LAN mesh, connector hub, voice and chat — the batteries-included experience.

In short: urirun is the runtime you embed; ifURI is what you run, install and use.

The problem

Every integration is a one-off.

Shell scripts, HTTP calls, Docker commands, MCP servers, agents and device APIs each speak a different language. Glue code rots, nothing is reusable, and nothing is auditable. You can't address a capability — you can only re-implement calling it.

The idea

Name it once. Run it anywhere.

Declare an action one time as a stable address — scheme://target/resource/operation — and call it from a shell, backend, frontend, flow or agent. urirun validates the payload against a schema, gates it with policy, and dispatches it.

flow:
  do:
    - urirun://local/registry/query/health
    - mcp://filesystem/list: { path: ./project }
    - llm://local/qwen/analyze: { input: file://project-summary }
    - ifuri://office-node.lan/services/browser/open: { url: https://ifuri.com }

One runtime

Flows, MCP, A2A, LLM and LAN — one contract.

urirun://

URI runtime

Scan artifacts, compile a reviewable registry, run routes with policy + audit.

mcp:// · agent://

MCP & A2A

The same registry projects to MCP tools and A2A agent cards for free.

ifuri://

LAN mesh

Discover nodes, advertise services, route a flow step to a peer.

error://

Addressable errors

Failures get a stable code, a category and a docs link — searchable, fixable, ticketable.

host ask · flow://

Closed-loop AI control

Drive a NAT'd node from natural language: the LLM plans a YAML flow over the node's live routes, runs it, and self-repairs from the node's own errors.

Connectors

Capabilities as installable packages — in any language.

A connector declares URI routes once and exports a registry. The runtime is a contract, not a language: a connector's executable can be written in anything, and the urirun SDK ships for multiple languages so it can be a library inside your project.

PythonJavaScriptGoPHP

Generate connectors from a command, a service, or an artifact like a Docker image — the same urirun.bindings.v2 contract every time. Browse the public hub at connect.ifuri.com.

One contract, any language

The same connector — Python, JS, PHP.

A connector just emits a urirun.bindings.v2 document. The SDK ships per language, so urirun is a library inside your project. Each snippet below produces the identical contract — urirun validate accepts all of them.

python

c = urirun.connector(
  "hash", scheme="hash")

@c.command("sha256/command/file")
def f(path: str):
  return ["sha256sum", "{path}"]

javascript

connector("hash",{scheme:"hash"})
  .command("sha256/command/file",{
    input:{required:["path"]},
    argv:["sha256sum","{path}"],
  })

php

(new Urirun\Connector("hash","hash"))
  ->command("sha256/command/file",
    ["required"=>["path"]],
    ["sha256sum","{path}"]);

Local-first & auditable

It runs on your laptop, one command.

curl -fsSL https://get.ifuri.com/node.sh | bash -s -- --name laptop --connectors http-check,time-tools

Every call carries an envelope: URI, payload, decision, status, time and source. Nothing runs by accident — execution is default-deny behind an explicit policy gate.

The ecosystem

Sites, runtime, connectors, demos.

ifuri.com

App + runtime, downloads.

docs.ifuri.com

Runtime, connectors, error reference.

connect.ifuri.com

Connector hub + catalog.

get.ifuri.com

Node / host installers.

roadmap.ifuri.com

Plan + live ticket status.

live.ifuri.com

Live streams & webinars.

examples

From a JSON binding to a 4-computer noVNC flow.