ifURI.com · app + URI runtime

Connect apps through URI.

ifURI is an app for working with flows, devices and services on the LAN. urirun is the new runtime that executes URIs as ready, validated routes instead of hand-assembled shell integrations.

ifuri://urirun://log://mcp://agent://llm://browser://shell://
HOST ifURI App desktop · flow editor · LAN view
  • Tasks
  • Devices
  • Voice UI
NODE urirun Runtime registry · schema · adapters
  • Bindings
  • Approvals
  • Logs

The app

Every endpoint — MCP tools, A2A agents and a local LLM — in one interface.

ifURI app screenshot: sidebar of MCP, A2A and LLM endpoints with a chat panel

Product

One local runtime for flows, services and LAN apps.

IFURI App

Use the app when you want to see flows, chats, devices, WebRTC channels and local endpoints in one interface.

urirun Runtime

Use the runtime when you want to turn functions, scripts, containers and services into unambiguous URI addresses with payload validation.

ifuri:// network

Discover other IFURI apps on the local network, publish capabilities and drive them from a workflow through one shared URI contract.

urirun://runtime/option/select

Two options: the IFURI app or the lightweight urirun runtime.

IFURI App

For the operator: GUI, voice UI, chat with endpoints, device view, flow workspace and a local HTTP API.

ifuri-app voice --auto-port
ifuri-app discover
ifuri-app urirun-info

urirun

For execution: scan project artifacts, generate bindings/registry and run the same URIs from the CLI, a backend or IFURI — locally or as an HTTP service.

pip install "git+https://github.com/tellmesh/urirun.git@main#subdirectory=adapters/python"
urirun scan ./project --registry-out generated/registry.json
ifuri-app urirun-call tool://local/report/render --registry generated/registry.json
ifuri-app urirun-serve --registry generated/registry.json   # /health /routes /run
The new path instead of shell urisys: older calls based on hand-written shell commands can be packaged as URI bindings in urirun, validated with JSON Schema and run through IFURI without changing the addresses in your flows. urirun documentation →  ·  Getting started  ·  Registry & bindings  ·  Transports  ·  MCP & A2A →

uri2flow workspace

Simple YAML, many runtimes.

ifURI treats a URI as a stable address for an action. One flow can touch MCP, an agent, an LLM, another app on the LAN and a local urirun registry.

flow:
  id: local-review-and-share
  group: dev-ops

do:
  - urirun://local/registry/query/health
  - mcp://filesystem/list:
      path: ./project
  - llm://local/qwen/analyze:
      input: file://project-summary
  - tool://local/report/command/render:
      format: html
  - ifuri://lenovo-node.lan/services/browser/open:
      url: https://ifuri.com

Host ↔ Node

Two apps, one call protocol.

1

Host starts

The app starts a local HTTP runtime and UDP discovery.

2

Node advertises

The other app publishes its service list and sharing scope.

3

Flow routes

A workflow can run a step locally or call ifuri://peer/....

4

Audit log

Every call has an envelope, payload, status, time and source.

Download

ifURI package

Download links are fetched automatically from GitHub Releases (if-uri/app).

Install with pip (wheel from the latest release):

python -m pip install …

CLI: ifuri-app app, ifuri-app voice, ifuri-app init --scan-lan