Running Workflows

This page covers how to run workflows — locally via the CLI for development testing, self-hosted for production, or in Tensorify's managed cloud with no local setup needed.

Overview

WhatHowHandles
Developmenttensorify runner start + Test in the canvasTest signals from the editor
Production (CLI)tensorify runner start + Deploy in the UILive webhook / API calls
Production (Managed)Deploy in the UI with Managed modeLive traffic on Tensorify cloud

One runner process serves all workflows you assign to it. You do not start a separate CLI command per workflow.

Setup (CLI / Self-Hosted Only)

Using Managed mode? No local setup needed — deploy from the UI and Tensorify handles execution in the cloud. Skip to Deploying Workflows.

Install the CLI, then configure and start a runner for your environment:

Local machine (has a browser):

curl -fsSL https://cli.tensorify.io/install | sh
tensorify init
tensorify login
tensorify runner start

VPS / headless server (no browser):

curl -fsSL https://cli.tensorify.io/install | sh
tensorify init --name my-vps --api-key tfk_your_key_here
tensorify runner start

Get an API key from SettingsAPI Keys in the web app.

Leave runner start running in a terminal during development. On a VPS, use sudo tensorify runner install for systemd — see below.

Development: canvas testing

With the runner connected:

Canvas Editor
    │
    │  Click "Test" → "Run to Selected"
    ▼
Tensorify Servers (signal routing)
    │
    │  WebSocket (your runner)
    ▼
Your Machine (tensorify runner start)
    │
    │  Executes workflow locally
    ▼
Canvas Editor (outputs appear in node panels)
  1. Configure nodes on the canvas and click Test
  2. Select which node to run up to, then click Run to Selected
  3. Tensorify routes the signal to your runner
  4. The workflow runs locally — your Python environment, your file system, your secrets
  5. Node outputs appear in the editor so you can inspect each step

You do not restart the runner when you change node settings. Edit the canvas, click Test again, and the updated configuration is used immediately.

Canvas tests do not process real webhook requests. For live traffic, deploy the workflow from the UI with CLI or Auto execution mode.

Production: CLI execution

  1. Keep tensorify runner start running (or use sudo tensorify runner install on a server)
  2. In the canvas, click Deploy and choose CLI or Auto
  3. Confirm the runner appears as Connected on the Runners page

When a request hits your deployed endpoint, Tensorify's hooks service routes it to your runner via WebSocket. The workflow executes locally and the result is recorded on the Jobs page.

Keeping the runner alive

VPS / Linux server — install as a system service:

tensorify init --name production-vps --api-key tfk_your_key_here
sudo tensorify runner install

# Verify:
systemctl status tensorify-runner

runner install requires sudo on Linux because it writes a systemd unit file to /etc/systemd/system/. On macOS, it creates a user-level launchd plist without requiring sudo.

Process manager — wrap the foreground command:

pm2 start "tensorify runner start" --name tensorify-runner
pm2 save
pm2 startup

Docker — build your own runner image:

FROM python:3.11-slim
RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*
RUN curl -fsSL https://cli.tensorify.io/install | sh
ENV PATH="/root/.tensorify/bin:$PATH"
ENV TENSORIFY_API_KEY=""
CMD ["sh", "-c", "tensorify init --name docker-runner --api-key $TENSORIFY_API_KEY && tensorify runner start"]
docker build -t my-runner .
docker run -e TENSORIFY_API_KEY=tfk_your_key my-runner

Deploy individual workflows from the web UI after the container is running — the runner picks them up automatically.

Checking runner status

Go to the Runners page in the sidebar. You will see all active runners and their last heartbeat time. A runner must show as Connected before it can receive test or production executions.

Exporting a Workflow

export requires a Team or Enterprise plan. All plans can execute workflows via a connected runner.

tensorify export bundles the compiled Python so you can run it without the Tensorify CLI at all.

tensorify export <workflowId> --output ./my-workflow

The exported bundle contains:

  • main.py — the entry point
  • utils.py — shared classes and helpers
  • requirements.txt — all Python dependencies

Run it directly:

cd my-workflow
pip install -r requirements.txt
python main.py

This is useful for scenarios where you want to deploy to infrastructure that cannot maintain a persistent runner connection, or where you want to fork the code and modify it manually.

Next Steps

On this page