Getting started
Install with the one-line shell installer:
curl -fsSL https://ifuri.com/urirun/install.sh | sh
The installed CLI and Python import namespace are both urirun.
Manual GitHub install:
pip install "git+https://github.com/tellmesh/urirun.git@main#subdirectory=adapters/python"
Generate a registry
Scan a project and compile a runtime registry in one command:
urirun scan ./project \
--out generated/bindings.v2.json \
--registry-out generated/registry.json
The scanner can read explicit binding files, Dockerfile labels, package scripts, Python entry points, Makefile targets, and shell scripts.
Inspect routes
urirun validate generated/bindings.v2.json
urirun list generated/registry.json
Run a URI
Dry-run is the default for command-like routes:
urirun run 'cli://local/git/status' --registry generated/registry.json
For real execution, use a policy file and the --execute flag:
urirun run 'cli://local/git/status' \
--registry generated/registry.json \
--policy policy.json \
--allow 'cli://local/**' \
--execute
Keep shell templates behind an explicit policy with allowShellTemplates: true.
Connect to IFURI
The IFURI app can use the same registry as the capability source for flows and device views:
ifuri-app urirun-info
ifuri-app urirun-call 'cli://local/git/status' \
--registry generated/registry.json
On a LAN, each node should publish its route list and execute only URIs allowed by its local policy.