| Ocalt Query Language
Pricing Dashboard ocalt.com v1.0

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.

[pending] — DIRECTIVE is designed and specified. The oql-client binary and runtime implementation are in progress.

Syntax

DIRECTIVE "my-home-server" OPEN NEST LIST "/root/data" SET ?files AFTER EMIT ?files CLOSE NEST SET ?result AFTER EMIT ?result

Agent management

(* List all registered online agents *) DIRECTIVE LIST SET ?agents AFTER EMIT ?agents (* Check agent status *) DIRECTIVE STATUS "my-home-server" SET ?status AFTER EMIT ?status(online)

Rules

RuleDetail
No nestingCannot call DIRECTIVE inside another DIRECTIVE block
Machine IDMust match a registered, online agent
FilesystemPaths inside the block resolve on the remote machine's filesystem
CredentialsThe agent uses the same Ocalt credentials as the namespace that registered it
Tier limitsFree: 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

(* Read a file from a home server *) DIRECTIVE "home-nas" OPEN NEST READ "/root/reports/latest.csv" SET ?data AFTER EMIT ?data CLOSE NEST SET ?csv (* Run a script on a remote Linux machine *) DIRECTIVE "build-server" OPEN NEST EXEC "git pull && cargo build --release" SET ?result AFTER EMIT ?result(stdout) CLOSE NEST SET ?output (* Collect files from multiple agents in parallel *) DIRECTIVE "server-a" OPEN NEST LIST "/root/logs" SET ?logs AFTER EMIT ?logs CLOSE NEST SET ?a AND DIRECTIVE "server-b" OPEN NEST LIST "/root/logs" SET ?logs AFTER EMIT ?logs CLOSE NEST SET ?b

EXEC / SPAWN / KILL — directive-only

Shell execution verbs are only valid inside a DIRECTIVE block. Calling them outside returns an error.

DIRECTIVE "my-server" OPEN NEST EXEC "apt-get update && apt-get install -y ffmpeg" SET ?r AFTER EMIT ?r(stdout) CLOSE NEST DIRECTIVE "my-server" OPEN NEST SPAWN "python3 /home/worker.py" SET ?pid AFTER DELAY "5s" AFTER KILL ?pid CLOSE NEST

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.

(* Read from target machine's native filesystem *) DIRECTIVE "my-server" OPEN NEST READ "C:/app/config.json" SET ?cfg CLOSE NEST AFTER EMIT ?cfg (* Write to target machine from OQL variable *) DIRECTIVE "my-server" OPEN NEST WRITE ?new_config INTO "C:/app/config.json" CLOSE NEST (* Read from target machine into OQL mounted storage *) DIRECTIVE "my-server" OPEN NEST READ "/var/log/app.log" SET ?log AFTER WRITE ?log INTO "/mounted/logs/app.log" CLOSE NEST

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.

(* Webcam feed from remote machine to visitor *) NEW VIDEO BRIDGE 2 PEERS SET ?room AFTER DIRECTIVE "home-server" OPEN NEST REDIRECT ?room(peers)(0)(join_url) CLOSE NEST AFTER REDIRECT ?room(peers)(1)(join_url)

Verb reference

VerbDescription
DIRECTIVE "machine-id" OPEN NEST ... CLOSE NEST SET ?resultExecute 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