Getting started

From install to your first executed URI in four steps. The urirun CLI and the Python import namespace are both urirun.

1. Install

Directly from GitHub:

pip install "git+https://github.com/tellmesh/urirun.git@main#subdirectory=adapters/python"

Inside the IFURI app urirun is available out of the box — see the ifuri-app urirun-* commands.

2. Generate a registry

Scan a project and compile a runtime registry in one command. The scanner reads explicit binding files, Dockerfile labels, package scripts, Python entry points, Makefile targets and shell scripts.

urirun scan ./project \
  --out generated/bindings.v2.json \
  --registry-out generated/registry.json

3. Inspect routes

urirun validate generated/bindings.v2.json
urirun list generated/registry.json

4. Run a URI

Dry-run is the default for command-like routes (zero risk — it shows what would run):

urirun run 'cli://local/git/status' --registry generated/registry.json

Real execution needs 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. This is the safer path instead of hand-assembling shell commands (urisys): the URI address stays stable and the payload is schema-validated.