Omnigraph
CLI

Open Studio

on a configured server target, prints the link it opened, and exits:

omnigraph studio opens OmniGraph Studio on a configured server target, prints the link it opened, and exits:

omnigraph studio --target staging
omnigraph studio --target staging --graph knowledge --json

The command reads the operator configuration and nothing else: it sends no request to the server, reads no credential and starts no process that serves a graph. Studio connects to the server itself and obtains the target's credential through the CLI when the target has one.

Targets

TargetResult
Server with a token or helper auth providerOpens Studio on that server
Server with auth: {provider: anonymous}Opens Studio on that server
Direct graph or root, or an inline pathRefuses with target_kind_unsupported
ManagedRefuses with target_kind_unsupported

Select the target with --target NAME or defaults.target. --graph ID asks Studio to open that graph; without it Studio opens the target's default_graph, or lets you choose one when the server lists its graphs. --profile and --as are refused: Studio acts as the actor its credential resolves to.

omnigraph-studio://open?target=NAME&binding=sha256:HEX&home=sha256:HEX[&graph=ID]
ParameterMeaning
targetThe registered target name
bindingA digest of what the target resolves to: its kind, endpoint, auth provider with its source (the store, an environment variable's name, a file's path or a helper's command), and transport. A token's value never enters it, so a rotated token keeps the binding; default_graph does not enter it either
homeA digest of the operator file the command read, at its canonical location: --operator-config FILE, else config.yaml under OMNIGRAPH_HOME or ~/.omnigraph
graphThe graph --graph named, only when given

Equivalent spellings of one endpoint or path give the same digest. A link carries no secret, never names a path or an executable, and opening one runs no write.

Studio resolves the target itself, through the CLI in its own operator home, and compares. omnigraph target inspect NAME --json reports the same home digest and, for a server target, the same binding digest. Studio refuses a link made in another operator home, for example under a one-off OMNIGRAPH_HOME, and a link whose binding no longer matches because the target changed since the link was made.

With --json the command prints the link and the facts it was built from:

{"protocol":1,"target":"staging","binding":"sha256:…","home":"sha256:…","link":"omnigraph-studio://open?target=staging&binding=sha256:…&home=sha256:…"}

protocol is protocols.studio in omnigraph version --json. It versions the link, this report, and the digests target inspect reports. Without --json the link is the only line on stdout.

Platforms

PlatformHow the link opens
macOSopen -b com.modernrelay.omnigraph-studio LINK: only the application with Studio's bundle identifier
Linux and other Unix desktopsThe program of the desktop entry xdg-mime query default x-scheme-handler/omnigraph-studio names, run directly with the link in place of %u
WindowsThe omnigraph-studio URL protocol, only when the registry holds one with an open command

On Linux the CLI finds the named desktop entry in $XDG_DATA_HOME/applications (default ~/.local/share/applications), then in each $XDG_DATA_DIRS/applications (default /usr/local/share:/usr/share); a - in its name may stand for a subdirectory. It runs the entry's Exec command itself, without a shell, replacing %u or %U with the link and dropping the other field codes. An entry that is hidden, runs in a terminal, takes no URL through %u or %U, or uses a form the CLI cannot run exactly as written is refused.

The CLI never hands the link to a generic opener such as xdg-open, which passes a link it cannot place to a web browser, for example when no display is set. When nothing opens the link, because Studio is not installed or no handler is registered for its scheme, the command still prints the link, says where to download Studio, and refuses with studio_unavailable. With --json that refusal carries link and install. Studio registers its scheme when installed on macOS; on Linux and Windows the command opens a link once Studio registers a handler there.

On this page