The CLI

om indicator is the command group for authoring Indicators on your machine: the templates, a workspace, a build, a local install, and the reads that prove a…

om indicator is the command group for authoring Indicators on your machine: the templates, a workspace, a build, a local install, and the reads that prove a value moves. om wrun is the same group under its older spelling (wrun is the runtime's internal name, the one you still meet in metric ids like wrun/@scope/name/output and in the package kind wrun-indicator), so every command on this page accepts either. The compile step needs bun on your PATH. kScript (legacy) scripts have no CLI authoring lane: they are written and published in the chart's editor.

Author

om indicator templates
om indicator create @you/my-sma ./my-sma --template sma-codefirst
om indicator build ./my-sma
om indicator validate ./my-sma
om indicator install ./my-sma --replace
om indicator list
om indicator show @you/my-sma
CommandWhat it does
om indicator templateslists the nine starting points: sma-codefirst, sma-box, sma, vp-buy-share-codefirst, polymarket-odds, conviction-score, event-asset-divergence, escalation-risk, hud-terminal
om indicator create <package> [dir]scaffolds a workspace (--template, --force); om indicator scaffold <dir> --name is the same verb with the name as a flag
om indicator build <dir>derives the sheet from your declarations, regenerates src/gen, runs bun install once and bun run build, checks the module against the contract, exports dist/package (--out, --wasm, --compile-command, --install, --replace, --no-install-deps)
om indicator install <dir>the build plus the local install under ~/.openmarket/packages, with a receipt naming the path and the undo
om indicator export <dir>the export step alone (--out, --force, --install)
om indicator validate <dir>validates a workspace or an exported package without building
om indicator list, om indicator show <id>installed packages and their outputs; one package or metric id
om indicator source search <provider> <query>, om indicator source set <name>find a Polymarket condition id; repoint a pinned odds input (refused on a derived sheet and on a bindable input)
om indicator upgrade <package> --version <x>moves saved alert locks onto an installed version
om indicator remove <package>uninstalls (--version for one version); warns when alerts still reference the package

A workspace scaffolded by an older release is lifted onto the current scaffold contract on its next build, once and non-destructively: your source and sheet are never touched, the SDK files and build scripts are refreshed, and the migration is reported in the build's warnings (Releases overview).

Read a value

om metric get --metric wrun/@you/my-sma/sma:period=20 --symbol BTCUSDT --exchange BINANCE_FUTURES
om metric series --metric wrun/@you/my-sma/sma --params period=20 --symbol BTCUSDT --exchange BINANCE_FUTURES --bars 60
om metric screen --metric wrun/@you/my-sma/sma:period=20 --exchange BINANCE_FUTURES --top-n 50 --by VOLUME_24H --filter gte:1
om chart indicator preview --type wrun/@you/my-sma/sma --bars 300

om metric get returns the newest value; om metric series one [barOpenSec, value] pair per bar (oldest first, newest the still-forming bar) with a sparkline in text mode; om metric screen ranks a universe on the output; om chart indicator preview draws the draft on your active chart workspace without publishing. A watch condition on the same id is an alert (Alerts).

Backtest a strategy package

om backtest run @you/my-strategy --asset BINANCE_FUTURES:BTCUSDT --window 90d

A package whose sheet declares strategy(...) replays its orders through the engine's own broker; om backtest <target> is the same one-shot (run is its explicit spelling) and om backtest spec the full-control form (Reading the Strategy Tester).

Publish and install

om publish ./my-sma --dry-run
om publish ./my-sma
om install @you/my-sma
om search sma --kind wrun-indicator
om packages
om open @you/my-sma

om publish sends an Indicator to the OpenMarket platform (chart.openmarket.xyz), where the release is a script beside your grants and versions, with the one source entry the manifest names beside the module; --script <id> lands it on a script you already own, and with --dry-run it prints exactly what would ship (files, size, sha256, the target) without uploading. om watch publish is the same command, and a watch pack takes the registry door instead. om install fetches a published package, verifies its tarball sha256 and writes a receipt; om packages is the ledger of everything installed, published and followed on this machine; om open opens a fresh chart with the package mounted at its exact published version (Publishing).

One command, another registry

om install @you/my-sma --registry production

--registry names the registry for one registry-lane command: an om install of any kind, and an om publish of a kind that publishes to the registry (a watch pack); an Indicator's publish goes to the platform door whatever --registry says. The values are production (registry.openmarket.xyz), staging (registry-staging.openmarket.xyz, the default until launch), or the origin OM_REGISTRY_URL names (a self-hosted registry or a rig); any other origin is refused before a request goes out, because your account key only ever travels to a registry this machine trusts. Nothing else changes: OM_REGISTRY_URL keeps setting the default for every other command, and the agent's package_publish and package_install take the same value as registry.

What's next

  • Quick start: the five steps with the template read line by line.
  • Alerts: a watch condition on an output.
  • Publishing: scopes, visibility, versions, deleting.