Ocalt Client

A cross-OS agent that registers a computer with your Ocalt account and gives it a name. From then on any Ocalt service can address it, via shell execution, tunnelling, peer-to-peer networks, self-hosted websites on your own hardware, file transfers, content serving, and streaming a local port to a web-accessible endpoint. No static IP address and no firewall limitations.

Download Read the docs

Windows · Linux · Android · free on every plan

What it does

One agent, the whole verb set.

Nothing is installed beyond the agent itself. It holds an outbound connection to Ocalt and does what your scripts ask of it.

Remote shell

EXEC runs a command and hands back stdout, stderr and the exit code. KILL stops one that is still running.

Files both ways

UPLOAD, DOWNLOAD, READ, WRITE, and LIST FROM to browse the machine's folders and drives.

Tunnels

Expose a local port at a public HTTPS URL. No static IP, no port forwarding, no router configuration.

Serve a file

SERVE puts one file behind a public URL with its extension intact, straight off the machine's disk.

Screen and input

SCREENSHOT, VIEW, SCREEN for display geometry, and mouse, keyboard and pointer control.

Self-hosted websites

Point the agent at a folder and a port and your own hardware serves the site — your disk, your machine, your bandwidth. .oql files still execute on Ocalt, so the same script runs identically here and on a subdomain.

Wake and status

WAKE sends a magic packet to another machine on the same network. STATUS reports online state and approximate location.

Transcode

Stream a camera or a file out as RTSP, with QUALITY and TIME controlling resolution and start point.

Check-in interval

POLL sets how often a machine looks for work — one second by default, up to sixty minutes for a metered or battery-powered link.

PEERS

Name two or more machines and get back a network value you can address as a whole.

TRANSFER

Move a file straight from one peer to another. Non-blocking — you get a status anchor and poll it.

SHARE

Expose one peer’s port on every other peer’s localhost. Nothing is published to the internet.

Machine to machine

Peers.

Group several of your machines into one network and they can reach each other directly — the bytes travel between them, not up through Ocalt and back down.

DIRECTIVE PEERS "laptop" AND "home-nas" AND "office-box" SET ?network AFTER DIRECTIVE NETWORK ?network TRANSFER FROM ?network(0)('id') & "://c:/downloads/build.zip" TO ?network(1)('id') & "://var/www/releases/build.zip" SET ?job AFTER DIRECTIVE NETWORK ?network SHARE ?network(1)('id') PORT 80 AS 8080 SET ?status (* every peer now reaches home-nas:80 at its own localhost:8080 *)
Setup

Three steps.

1

Install and run

One binary. It opens its own interface at localhost:12345.

2

Enter your identity and a machine alias

Your Ocalt identity and API key, plus whatever you want to call this machine. The alias is the name your scripts will use.

3

Address it from anywhere

Any OcaltQL script & service on your account can now reach it — from the console, a scheduled job, or a site you host.

DIRECTIVE "home-nas" EXEC "uptime" SET ?out AFTER EMIT ?out("stdout") AFTER DIRECTIVE "home-nas" TUNNEL PORT 3000 SET ?tunnel AFTER EMIT ?tunnel("url") AFTER DIRECTIVE "home-nas" LIST DRIVES SET ?drives AFTER EMIT ?drives
How it connects

Outbound only.

The agent dials out to Ocalt and holds the connection. Nothing listens on a public port, nothing needs forwarding, and no inbound firewall rule is required. A machine on a phone tether is as reachable as one in a rack.

Your account only

A machine is bound to the Ocalt account whose credentials it holds. No other account can address it.

4,096 machines

The same on every plan, including Free. Register as many as you have.

One second

Commands reach the machine within a second by default, adjustable per machine up to sixty minutes.


Already installed?

Downloading the client is half of it. The device still has to be registered to your account before anything can reach it, and that is the step that turns a program running on a machine into a machine you can use from anywhere.

Have the client running and the device online, then register it under the alias you gave it. The device answers for itself, so nothing is taken on trust.


Register a device