Skip to main content
Uses: CLI · Claude Code · Codex
Engini skills is Engini’s plugin marketplace for Claude Code and Codex, published at github.com/engini/skills. Its first plugin, workflow, builds Engini workflows; the plugin’s agent is called Flo. You describe a workflow (“when a deal closes in Salesforce, post to Slack”); the agent designs it, dry-runs it against your own Engini account, shows you a proposal, and creates it only after you approve - always turned off. You finish and turn it on in the Engini designer. The plugin works through the engini CLI, on your own login and your own API-key connection. It does nothing your key could not do by hand - which is also the honest limit of every safety measure on the Engini skills safety page. The current release is v0.5.0.
Engini skills has been tested on Claude Code only. The Codex install and the Codex-specific steps on this page are provisional: they have not yet been verified on a real Codex install.

Before you start

jq is not needed.

Install in Claude Code

Run these two commands in Claude Code:
The marketplace pins the plugin to the latest release, so an install never picks up unreleased changes. To stay on one reviewed release, add the marketplace pinned to its tag instead:
Replace vX.Y.Z with the release tag, for example v0.5.0. Claude Code does not update plugins on its own, and neither tool signs or verifies a plugin, so the pinned form is the one to use if you review what you install. Start a new session after installing - the skill is not found until you do.

Install in Codex

Not yet verified on a real Codex install - treat these steps as provisional.
Then install workflow from the /plugins browser and start a new session - the skill is not found until you do. Codex has no guard hook, so also save the Codex rules from Engini skills safety as ~/.codex/rules/flo.rules. Codex runs commands without network by default, which makes every engini call fail: see Codex sandbox.

Add the safety settings

A plugin cannot install your own permission settings for you. Copy them in yourself:
  • Claude Code: merge the permissions block from Engini skills safety into your user settings, and never run the agent with --dangerously-skip-permissions.
  • Codex: save the rules file as described above.

Check the install

This check must fail loudly if something is wrong. Claude Code. Run /plugin details workflow@engini. It must list Skills (1), Agents (1) and Hooks (1). Hooks (0) means the guard is not installed and nothing but your own settings asks you before the four things the agent does only on your explicit request (see Engini skills safety). Then prove the guard actually runs. Ask Claude to run this exact command. It is harmless either way: it makes a throwaway fake engini in a temp folder and puts it first on the path, so your real CLI and account are never touched.
  • Claude Code asks you to confirm the command, and the prompt text starts with FLO-HOOK-ASK - the guard is working. Answer No; answering Yes is harmless too (the fake CLI just prints FLO-CANARY-RAN).
  • It prints FLO-CANARY-RAN with no prompt - the guard did not run (no Python on the path, hooks disabled in your settings, the plugin disabled, or an older Claude Code), or your permission mode answered the prompt for you. Fix that before you rely on it.
  • A prompt or a permission-denied message that does not contain FLO-HOOK-ASK - that came from your own settings (the safety block), not from the guard, which did not run. Fix that too.
Never test the guard with a real never-verb against your real engini: if the guard is missing and you approve the prompt, that is a real delete on your account.

Connect Engini

Do this in your own terminal, outside Claude Code or Codex.
1

Log in

Interactive. Never engini login --api-key ...: arguments end up in your shell history and in the process list.
2

Connect the workflows app

Choose auth method 1 (x-api-key) and paste your workspace-scoped key. Any other auth method fails every builder call with 403 API_KEY_REQUIRED.
Do not use Claude Code’s ! prefix for these. The CLI hides the key you type only when its input is a terminal, and in Claude Code’s ! mode it is not (process.stdin.isTTY is false there), so a key typed that way would show. ! is fine for a check with no secret in it, such as ! engini whoami. Whether Codex’s shell gives the CLI a terminal is not verified - use your own terminal there too. The plugin’s guard refuses to let the agent run these commands, because they put a raw key in the agent’s hands. When the agent needs one done, it stops and gives you the command to run in your own terminal. It never asks you to paste a key into the chat and never puts a key in a command.

What the workflow plugin can build

From a plain-language request, the agent can build and edit these kinds of steps in a workflow:
  • Triggers and connector actions: the trigger that starts the workflow and the actions of Engini’s connectors.
  • If: a Yes branch and a No branch.
  • For Each: repeats steps for every item in a list.
  • Switch: one branch per case, plus a Default branch for everything else.
  • Do While: repeats steps while a condition holds.
  • Scope: groups steps together.
  • Failure paths: steps that run when a step fails, on any step. A Scope with a failure path works as try/catch for the whole group.
  • Variables: create a variable and set it later.
  • Delay and Stop.
  • AI Agent steps.
  • Sort & Filter: keep, filter and sort the records of a list.
  • Map Array: turn a list into a new list with the columns you choose.
  • Parse JSON / XML: read the fields of JSON or XML text so later steps can use them.
Two things stay in the Engini designer:
  • Query Array: add this step yourself in the designer.
  • Moving or deleting an existing failure path: The agent can add a failure path and edit the steps on one, but it will not move or delete one that already exists.
The Switch, Do While, Scope, failure path, Sort & Filter, Map Array and Parse JSON / XML steps need Engini’s November 2026 release (Engini release v2.161.2 or later), live in production since 2026-11-03.

First run

Ask for a workflow in plain words:
The agent then:
  1. Checks the CLI version, your login (account, workspace and environment) and your engini_workflows connection.
  2. Compiles a throwaway plan to confirm which workspace and environment your connection writes to.
  3. Searches the catalog, reads each step’s schema and dropdown options, and compiles the plan until it is clean.
  4. Stops and shows you a proposal table: every step, the target workspace and environment the compile echoed, the connection id and a fingerprint.
  5. Creates the workflow only when you approve that proposal in the conversation, quoting its fingerprint. The workflow is created turned off.
You finish in the Engini designer: connect any step the agent could not connect (it lists them), fill fields it left empty on purpose, and turn the workflow on.

What the agent will and won’t do

The agent will: design, dry-run, propose, and create or update workflows you approved - always turned off. The agent won’t (on its own): turn a workflow on or off, run it, rerun an execution or delete a workflow. It does one of these only when you explicitly ask for that action on that workflow, and you get a permission prompt each time. The agent never: creates or changes a connection, or handles your API key. When a step needs one, it stops and gives you the command to run in your own terminal. How each of these is enforced, and where the enforcement stops, is on Engini skills safety.

Moving from flo@engini-flo

Version 0.3.0 renamed the install: the marketplace is engini and the plugin is workflow (the agent is still Flo; its skill is now /workflow:build-engini-workflow). The repo has since moved to engini/skills; the old engini/flo-plugin and engini/workflow-plugin addresses redirect to it, so an existing install keeps working until you move. To move from flo@engini-flo: Claude Code
Codex: remove the old flo plugin and the engini-flo marketplace in /plugins, then add https://github.com/engini/skills.git --sparse .agents/plugins as shown under Install in Codex and install workflow from the browser. Start a new session afterwards.

Update and uninstall

  • Update: run /plugin marketplace update engini, then reinstall with /plugin install workflow@engini. In Codex, upgrade from /plugins. Neither tool updates the plugin on its own, so a fix to the never list or the guard reaches you only when you update.
  • Check the guard script: in v0.5.0, plugin/hooks/deny-never-verbs.py has the SHA-256 f929432678db710b2b71cb9e50e472c66e2831c8c979e984ea62cccf6c5ab553. Releases that change the guard give the new value.
  • Uninstall: run /plugin uninstall workflow@engini (Claude Code), or remove it in /plugins (Codex). Remove the safety settings from your configuration if you no longer want them.

Troubleshooting

The full list, including every error the agent can report from Engini, is in the plugin’s troubleshooting guide.