v2.0.0
Pre-release🚨 Breaking Changes & Deprecations
Deprecated Positional space/project/workflow
Arguments
Always use flags instead for clarity and consistency.
trickest get "Playground/My Project/My Workflow"
becomes
trickest get --space "Playground" --project "My Project" --workflow "My Workflow"
execute
Command's YAML Config
machines
is a Simple Integer
The CLI will automatically infer the machine type based on the fleet you're using to run the workflow.
machines:
default: 10
is simplified to
machines: 10
Script Inputs Follow the Same Dot Notation as Tool Inputs
custom-script-1:
file:
- my_file.txt
becomes
custom-script-1.file: file.txt
or
custom-script-1.file:
- file1.txt
- file2.txt
Deprecated Single-Tool Workflow Creation
Workflows now need to be created directly on the platform using the visual editor. Add all the necessary nodes and configurations there before executing them via the CLI.
--create-project
Replaced with --create-missing
The trickest execute
command's --create-project
flag has been removed. Use --create-missing
instead—it will automatically create both the space and project if they don’t already exist.
✨ Major Features
📝 Automatically Generated Workflow Help
If you're using a workflow for the first time, run the trickest help
command to get an example command, along with details on inputs, outputs, recommended machine counts, and the author's notes.
If you're the workflow author, just add your tips and notes to the workflow's README
section—everything else, like inputs and outputs, is filled in automatically.
trickest help --url "https://trickest.io/editor/..."

🕵 Workflow Investigation
The new trickest investigate
command helps you track exactly what was happening in a workflow during a specific time range. It will show you which sub-job (or sub-job iterations in the case of distributed file-splitter
nodes) were active, how long they ran, and the IP addresses they used.
trickest investigate --url "https://trickest.io/editor/..." --from 13:00 --to 13:30

🔗 Input Aliases for Workflow Inputs
You no longer have to dig through workflows to remember node IDs and parameter names. Now, you can set input aliases right in the workflow editor and use them to easily reference your input nodes.
What used to look like this:
cat config.yaml
inputs:
enum-subdomains-1.domain: example.com
trickest execute --config config.yaml
Now, you can do with:
trickest execute --input "domain=example.com"
✅ Workflow Run Health Checks
📊 Task Group Analysis
The new --analyze-task-groups
flag of the trickest get
command calculates stats on distributed nodes. It includes the number of iterations created, their status breakdown (e.g. succeeded, running, stopped), the maximum and minimum durations of any iteration, the median duration, outliers from the median, and the median absolute deviation.
NODE STATUS DURATION OUTPUT
⛔ custom-script (custom-script-1) stopped 15m 50s no outputs
├── Task Group Info
│ ├── 3 tasks
│ │ ├── 2 succeeded (66.67%)
│ │ └── 1 stopped (33.33%)
│ └── Task Duration Stats
│ ├── Max: 15m 44s (task 3)
│ ├── Min: 6s (task 2)
│ ├── Median: 6s
│ │ └── Median Absolute Deviation: 1s
│ └── Outliers
│ └── Task 3: 15m 38s slower than median (duration: 15m 44s)
⏱️ Average Duration and Run Insights
The trickest get
command will show the average duration of the workflow to give you a rough idea of how long you should expect it to take, and shows how many sub-jobs ended up in each state (succeeded, running, failed, etc).
Name: My Workflow
Status: RUNNING
Machines: 25
Fleet: Managed fleet
Created: Wed, 11 Apr 2025 13:32:33 EET (2h 30m ago)
Started: Wed, 11 Apr 2025 13:32:34 EET (2h 29m ago)
Duration: 2h 29m
Average Duration: 2h 50m
Total Jobs: 10
Succeeded: 8/10 (80.00%)
Running: 2/10 (20.00%)
🦾 Enriched JSON Output
The JSON output of the trickest get
command now includes detailed information about sub-jobs (including task group analysis!). Automated health checks can use this to get the full context of a workflow run.
{
"run_insights": {
"total": 10,
"succeeded": 8,
"stopped": 2
},
"subjobs": [
{
"label": "custom-script",
"name": "custom-script-1",
"status": "stopped",
"task_group": true,
"task_count": 3,
"children": [
{
"name": "custom-script-1",
"status": "succeeded",
"duration": "0m 5s",
"ip_address": "1.2.3.4",
"task_index": 1
},
{
"name": "custom-script-1",
"status": "succeeded",
"duration": "0m 6s",
"ip_address": "5.6.7.8",
"task_index": 2
},
{
"name": "custom-script-1",
"status": "stopped",
"duration": "15m 43s",
"ip_address": "9.10.11.12",
"task_index": 3
}
],
"task_group_stats": {
"count": 3,
"status": {
"succeeded": 2,
"stopped": 1
},
"min_duration": {
"task_index": 2,
"duration": "0m 5s"
},
"max_duration": {
"task_index": 3,
"duration": "15m 43s"
},
"median": "0m 5s",
"median_absolute_deviation": "0m 1s",
"outliers": [
{
"task_index": 3,
"duration": "15m 43s"
}
]
}
}
]
}
🐛 Bug Fixes
- Fixed a bug where inputs referencing module nodes weren't being written to the workflow properly.
- Fixed a bug where the
trickest get
command's workflow tree view incorrectly displayed nodes that weren't executed due to a stopped earlier node aspending
instead ofstopped
.
🛠️ Improvements
Workflow Execution
- New
--input
flag lets you set inputs directly from the command, without needing a YAML config file. TRICKEST_USE_STATIC_IPS=true
environment variable enables static IP addresses globally.- The
--fleet
flag is now optional and defaults toManaged fleet
. - You can use input node IDs (e.g.
string-input-1
) or aliases to set workflow inputs.
YAML Config
- The
inputs
andoutputs
fields are now singular (input
andoutput
) to match the flags. Plural forms are still supported for backward compatibility. - The
input
field supports setting a single input or multiple inputs for the same node parameter. - The
output
field supports a single string value in addition to a list.
Private Integrations
trickest tools
andtrickest scripts
support both--name
and--id
flags, so you can update or delete a tool/script by either name or ID.
Project Workflows Listing
- When you list a project, it shows the workflows within the project, along with the project's details.
Error Handling
- Errors are handled gracefully and return a standardized exit code of
1
consistently. #116 - Errors are consistently logged to
stderr
. - More descriptive error messages throughout.
Misc
--version
flag displays the CLI version.- Improved Go package structure. If you're building integrations, navigation is smoother now. Documentation for using it as a library is on the way. Let us know your integration use cases so we can make sure they're covered!