Quote native JSON for your shell
The same pattern needs backslash-escaped inner quotes in Windows PowerShell on this system. Both forms are shown at the creation beat.
armaraos trigger create <UUID> '{\"agent_spawned\":{\"name_pattern\":\"*\"}}' --prompt 'Course event: {{event}}' --max-fires 1
armaraos trigger create <UUID> '{"agent_spawned":{"name_pattern":"*"}}' --prompt 'Course event: {{event}}' --max-fires 1
Place the third automation mechanism
| Mechanism | It starts when |
|---|---|
| Cron | A clock reaches the schedule. |
| Webhook | A registered callback mechanism sends or receives HTTP according to its verified contract. |
| Trigger | An event occurs inside ArmaraOS. |
Inventory globally and by owner
armaraos trigger list
armaraos trigger list --agent-id <UUID>
This family has no JSON flag. The filtered form requires the owner UUID.
Choose the Track B fork
Later courses do not require creating this trigger. Continue only if inline JSON and internal event automation are useful to you.
Read the unlimited default
The default prompt uses {{event}}. A max of zero means unlimited. Your first trigger always gets a small explicit positive limit.
Create with shell-correct JSON
armaraos trigger create <UUID> '{\"agent_spawned\":{\"name_pattern\":\"*\"}}' --prompt 'Course event: {{{{event}}}}' --max-fires 1
armaraos trigger create <UUID> '{"agent_spawned":{"name_pattern":"*"}}' --prompt 'Course event: {{{{event}}}}' --max-fires 1
The JSON meaning is identical. The native argument quoting differs. A parse error may be your shell changing the string before ArmaraOS receives it.
Verify the bounded row
The course did not spawn another agent merely to make the trigger fire. Zero fires is the expected safe observation.
Delete the exact trigger
armaraos trigger delete <TRIGGER_ID>
armaraos trigger list
Check it / prove cleanup
Explain the bounded default.
armaraos trigger list
Confirm the course trigger is absent and explain why max fires 1 is safer than the default 0.
An unlimited trigger on a frequent internal event is an unbounded spending loop. Set a small max during first verification, then delete the exact trigger when finished.
Troubleshooting for this sitting
| What you see | Likely cause | What to do |
|---|---|---|
| JSON key must be a string | PowerShell removed inner quotes. | Use the escaped Windows form. |
| Lifecycle pattern is invalid | That example is rejected here. | Use the verified agent-spawned pattern. |
| Trigger is unlimited | Max was omitted or zero. | Delete and recreate with a small positive value. |
| Filter shows nothing | The owner UUID differs. | List globally and match the owner. |