DIRECTIVE
Execute OQL scripts on a registered remote machine. The oql-client agent is installed on any machine — it connects outbound to oql.ocalt.com, receives scripts, executes with an embedded OQL runtime, and returns results. No inbound ports. No firewall rules required.
oql-client binary and runtime implementation are in progress.Syntax
Agent management
Rules
| Rule | Detail |
|---|---|
| No nesting | Cannot call DIRECTIVE inside another DIRECTIVE block |
| Machine ID | Must match a registered, online agent |
| Filesystem | Paths inside the block resolve on the remote machine's filesystem |
| Credentials | The agent uses the same Ocalt credentials as the namespace that registered it |
| Tier limits | Free: 1 agent — Starter: 4 — Pro: 16 — Enterprise: 64 |
Agent setup
The oql-client binary is installed on the remote machine. Configure via the Ocalt dashboard — enter a machine ID, the local root directory, and your Ocalt credentials. The agent generates a config file and connects outbound to oql.ocalt.com automatically. No inbound port forwarding required.
Examples
EXEC / SPAWN / KILL — directive-only
Shell execution verbs are only valid inside a DIRECTIVE block. Calling them outside returns an error.
READ / WRITE — native paths inside DIRECTIVE
Inside a DIRECTIVE block, READ and WRITE resolve against the target machine's native filesystem. /root/ and /mounted/ are also reachable — data transfers over the WebSocket connection.
NEW VIDEO BRIDGE — must be outside DIRECTIVE
Bridge rooms are allocated on Ocalt servers. Always call NEW VIDEO BRIDGE or NEW AUDIO BRIDGE outside the DIRECTIVE block, then pass the join URL in.
Verb reference
| Verb | Description |
|---|---|
DIRECTIVE "machine-id" OPEN NEST ... CLOSE NEST SET ?result | Execute OQL block on the named remote agent. → result of the last EMIT in the block |
DIRECTIVE LIST SET ?agents | → array of {id, online, last_seen} objects for all registered agents |
DIRECTIVE STATUS "machine-id" SET ?status | → {id, online, last_seen, version} object or null if not registered |