EmbodiFlowDocs
Open console
Get startedDataWorkflows and algorithmsTraining and deploymentDeveloper reference
  • Workflows and algorithms

Workflows

  • How workflows work
  • Build your own workflow
  • Runs and logs

Algorithms

  • Algorithm catalog
  • Write a custom algorithm

Algorithm developer guide

  • Your first algorithm
    • Standardize
    • Check
    • Transform
    • Enrich
    • Segment
    • Curate
    • Export
  • Image algorithms
  • Use your algorithm in a workflow
  • Interface reference
  • SDK reference
  • Command line
  • MCP tools
  • Troubleshooting

© 2026 EmbodiFlow

llms.txtOpenAPI JSON
  1. Workflows and algorithms
  2. Algorithm developer guide
  3. Command line

Command line

Write, test and save algorithms from your own terminal, and manage workflows as files.

The command line is for people who like their own editor, version control and scripts. Everything the browser editor does for algorithms, the CLI does locally with the same checks, so code that passes validate here passes when you save. It talks to the public API only; for installing it and signing in, see CLI. Every command accepts --json.

Beta. Custom algorithms and workflows are in the product and ready to try, but they haven't been through a full acceptance on real data yet. Expect some rough edges, and check results before you rely on them.

Write and test an algorithm

A typical loop: start from a working example, pull a real recording, test against it until you're happy, then save.

embodiflow algorithm init my-algo --category enrich
embodiflow recordings pull <recording-id> --project <team>/<project> --as recording --out ./rec
embodiflow algorithm validate my-algo
embodiflow algorithm test my-algo --input recording=./rec --window 30s
embodiflow algorithm save my-algo
CommandWhat it does
algorithm init <dir> --category <category>Writes a working main.py and its test_main.py from the category's default example. --example <id> starts from another example of the category and --list-examples prints them all. Add --level episode for a check or enrich that runs per episode, and --reads raw for a recording-level check that reads raw files. --lang image writes an image algorithm instead of a main.py. --name sets the algorithm name; the default is the directory name.
algorithm validate <dir>Checks main.py without running it, exactly as the save does. Problems carry the line and column. For an image algorithm it checks algorithm.yaml.
algorithm test <dir>In a folder with a test_main.py (as init and pull write it) and no --input, runs that test with pytest on this machine. It needs Python with pytest and the SDK, and says so when they're missing.
algorithm test <dir> --input <port=path>Runs the algorithm locally on pulled data and checks the outputs with the platform's rules. Repeat --input for each port. --params k=v overrides a parameter, --facts <file> supplies facts, --out <dir> keeps the run directory, --window 30s runs on the first seconds of the recording, and --episode <n> picks the episode for an episode-level algorithm.
algorithm pull <name>[@version] [dir]Downloads a saved version to keep editing it here: main.py, manifest.json (its frozen interface) and a test_main.py skeleton, so algorithm test and algorithm save work right away. An image algorithm has no source in the cloud, so only its algorithm.yaml and a note come down.
algorithm try <name>[@version]Tries a saved version, Python or image, built-in or your team's, in the cloud on real data: --recording <id>, --episode <recording-id>:<n> or --dataset-version <id>, cut with --window 30s or --episodes <n>. --param k=v sets a parameter. It's the console's test run with the same limits and privacy rules, and nothing is saved.
algorithm save <dir>Saves main.py as a new version. The version is proposed from the interface change; --version <semver> can raise it, never lower it. The source is checked locally before anything is sent.
algorithm push <dir> --archive <image.tar> --registry <host>Registers an image algorithm.
recordings pull <recording-id> --project <project> --out <dir>Downloads the latest ready result of a recording. --as recording (default) gives the canonical tree; --as raw gives the files as uploaded. A pull is always whole files, so --window is refused here: cut with algorithm test --window instead.
docs algorithms [category]Prints the categories, or one category with its ports and a starter. It works offline.
algorithm try hasn't yet been proven on a freshly installed deployment. algorithm test runs on your own machine and doesn't depend on it.

Workflows as files

Because every workflow is a YAML file, you can keep it in version control next to your algorithms and apply it from a script:

embodiflow workflow get <team>/<project> > workflow.yaml
embodiflow workflow validate -f workflow.yaml
embodiflow workflow apply -f workflow.yaml --project <team>/<project>
embodiflow workflow run <team>/<project> --recording <recording-id>
embodiflow workflow status <run-id>
CommandWhat it does
workflow get <project>Prints the project workflow as YAML.
workflow validate -f <file>Checks the file against the algorithms it uses, with the same rules as the editor. Exits 1 on problems.
workflow apply -f <file> --project <project>Validates the file and publishes it as the project workflow. --type is processing (default), curate or export.
workflow run <project>Runs the project workflow on one --recording <id> or one --version <id>. Pass --type for a curate or export workflow.
workflow status <run-id>Shows a run and the state of each step.

Wherever a command takes a project, you can pass the project UUID or team/project.

Next

  • MCP tools
  • Troubleshooting
Previous

SDK reference

Next

MCP tools