πŸ‡ͺπŸ‡Ί We're Launching Nyno Platform: Unlock all EU-AI features in 3-clicks online πŸ’»πŸ“±

Enjoy all EU-AI features like Text, Images & Speech from your own private workflow space.

Enjoy More Precise Sovereign AI Workflows & Automation.

Quick Install

podman run -it -p 9057:9057 flowagi/nyno

## Or Docker: docker run -it -p 9057:9057 flowagi/nyno

Simply click the button 'Run .Nyno File' or Try the Live GUI Minimal Version

Yaml
context:
  MISTRAL_API_KEY: ..
  SYSTEM_PROMPT: "Only return code."
  PROMPT: "cool short python example"
workflow:
  - step: ai-mistral-text
     args:
      - "${PROMPT}"

Nyno Workflow Example 1

From Slow, Restrictive AI workflows to Fast, Simple & Sovereign Automation.

Nyno is not just another AI workflow tool. Nyno is:


The #1 USP Question from a real person about Nyno:

"So, it goes as: 1. I import a language function. 2. Now I have a new component in my workflow. 3. Enjoy?"

Quick comparison with n8n (currently most popular AI Workflow GUI builder):

Core Values With n8n With Nyno
AI Features βœ… Agents & API Integrations βœ… AI, Precision & Data Sovereignty
Financial Freedom ❌ No. Not OSI open-source. Embedded licenses (potentially costing $25.000+) required for commercial use. βœ… Yes. Build and possibly fully own and sell your own automation systems, extensions and commercial services.
No Technical Vendor Lock-in ❌ Complicated specific SDK for extensions. βœ… Custom nodes simply use an exportable (py,rb,php,js) function.
Scalability & Execution Speed for Custom Code 🐌 Slow (β‰ˆ0.15s per node). Custom Python/NodeJS code nodes use a new process. ⚑ Fast (β‰ˆ0.002s per node). Custom code require custom nodes which are loaded when Nyno boots.
Developer Experience 🀯 Workflows are big messy JSON files. 😌 Workflows are clean human editable YAML scripts, like code.
Privacy & GDPR πŸ‡ΊπŸ‡Έ n8n workflows often rely on US-based AI & APIs. Each workflow may introduce additional GDPR compliance risks. πŸ‡ͺπŸ‡Ί Nyno uses European Mistral AI by default and includes built-in local Postgres database nodes to encourage sovereign data storage.

Nyno Workflow Example

Founder Note: "Unlike with n8n, you and your clients never have to request a commercial license to run Nyno workflows. This was the main reason I started building Nyno." – MJ

Nyno examples connecting multiple AI nodes


Nyno 6.2: Open-Source Workflow Engines for AI, Advanced Intelligence & Beyond. Extend with Python, PHP, JS and Ruby. Runs in the Browser.


🧠 Create New Workflow Steps in languages you love.

πŸ”— Connect everything with plain YAML text (.nyno).

Nyno is an open-source multi-language workflow engine and language that lets you build, extend, and connect automation in the languages you already know β€” Python, PHP, JavaScript, and Ruby.

Each programming language runs in its own high-performance worker engine. Command-steps can be called in short human-readable YAML Workflows (.nyno files).

nyno: 6.0
workflow:
  - step: ai-mistral-text
    args: ['My idea: ${PROMPT}']
    context: {SYSTEM_PROMPT: 'You''re a blog post writer. I will give you an idea, and you basically need to expand upon it, you can also correct me, but just give me the best possible article you can write about it to share my idea. Only output the new article, dont affirm.'}
  - step: ai-mistral-text
    args: ['my article: ${prev}']
    context: {SYSTEM_PROMPT: 'Make my article more heartfelt. Only output the new article, dont affirm.'}

Introducing "The Engine" that powers Nyno

To achieve most requests/per second we're using multi-process worker engines where feasible. Nyno will spawns 2 light-weight workers for each language in dev mode or 3 workers for every language and CPU core in prod mode. This means that if you have 4 CPU cores, it will spawn 12 ready-to-run workers to run workflow steps.

Python3 (multi-process workers engine) PHP8 + Swoole (multi-process workers engine) JavaScript + NodeJS (multi-process workers engine) Ruby (multi-process workers engine)
Python3 PHP8 + Swoole JavaScript + NodeJS Ruby Lang

Create New Steps or Use Extensions: Turn Scripts into High-Performing Text Commands

In Nyno, every Python, JavaScript, PHP and Ruby script becomes a reusable command that runs in its own high-performing worker engine. Just export a function (with args and context) and call it in any workflow using plain YAML text.

Example (JavaScript)

// extensions/hello/command.js
export function hello(args, context) {
  const name = args[0] || "World";
context['hello'] = `Hello, ${name}!`;
return 0;
}

Example in Workflow (YAML):

- step: hello
  args: 
  - "${name}"

Nyno logo

Install Nyno using Docker/Podman

Quick Install (option 1, recommended)

podman run -it -p 9057:9057 flowagi/nyno

## Or Docker: docker run -it -p 9057:9057 flowagi/nyno

Developer Mode (option 2, for custom builds)

1. Clone the Repo

git clone https://github.com/empowerd-cms/nyno
cd nyno

2. Build the Container

./build-container.sh "podman" # or use docker

3. Run the Container

Make sure you to build the container first.

./run-container-prod.sh "podman" # or use docker, GUI at http://localhost:9057

Install Nyno on Linux Host

For first time users: Docker/Podman install is recommended.

Note: Nyno is dependent on Best.js which needs to be installed to run Nyno. You will need to install quite a lot of dependencies. Docker/Podman install is recommended. However, for the experts, a bash scripts/check_host.sh script is included to check dependencies quickly.

# install Best.js
git clone https://github.com/empowerd-cms/best.js
cd best.js
npm install # or # bun install
npm link # for "bestjsserver" command
cd ../

# install Nyno
git clone https://github.com/empowerd-cms/nyno
cd nyno
npm install # or # bun install

# Optionally check system status/dependencies (Python, PHP Swoole, Ruby, Node,Postgres) 
bash scripts/check_host.sh

# Execute Nyno
bash run-dev.sh # runs Nyno in dev mode

Describe Image Here

More Examples and Documentation

Example Python extension:

# extensions/hello-py/command.py
def hello_py(args, context):
    name = args[0] if args else "World"
    context["hello-py"] = f"Hello, {name} from Python!"
    return 0

Example PHP extension:

<?php
// extensions/hello-php/command.php
function hello_php($args, &$context) { // & required to modify context
    $name = $args[0] ?? "World";
    $context["hello-php"] = "Hello, $name from PHP!";
    return 0;
}

Example using context to Pass Data Between Steps

export function some_extension(args, context) {
  const result = args[0] || "default value";

  // Save output in context for the next step
  context['MY_RESULT'] = result;

  return 0; // default path
}

Example Workflow output:

{
  "status": "ok",
  "execution": [
    {
      "node": 2,
      "input": {
        "args": [
          0
        ],
        "context": {}
      },
      "output": {
        "r": 0,
        "c": {
          "LAST_STEP": "nyno-echo",
          "prev": [
            0
          ]
        }
      }
    }
  ],
  "execution_time_seconds": 0.001
}

Frequently Asked Questions

Benefits of Nyno over n8n:

Common Nyno Questions:

For More Optional Plugins


The Nyno GUI is Proudly build with Best.JS - a faster Next.JS alternative.