Skip to content

The /ony modes

The /ony mode controls how much of your agent’s work Ony.ai gates by phone. You set it inside your agent session with /ony <mode>, or from any terminal with ony <mode>. A change takes effect on the next tool call.

Mode What it does
off Ony.ai does nothing. Tool calls use your agent’s normal permissions; Ony.ai is fully out of the flow.
on At the keyboard. Ony.ai phones you only for high-risk actions; everything else is left to your agent’s own prompts.
away Remote control. Ony.ai phones you for every ask your agent would stop on. Multiple-choice questions become phone menus.
here Back at the keyboard. Returns you to high-risk-only calls. This is the same setting as on.
status Prints the current mode and checks connectivity. Does not change anything.

Set a mode from the agent or the terminal:

Terminal window
/ony away # inside Claude Code (or /ony:ony away with the marketplace plugin)
ony away # from any terminal in the project

Ony.ai emits no decision for any tool call. Your agent’s own permission configuration (bypass, accept-edits, allowlists, prompts) applies untouched. Installing Ony.ai’s hooks is a no-op for your workflow until you turn a mode on.

Ony.ai rings only for high-risk actions. On Claude Code this composes with inheritance: a high-risk action rings only if Claude would have stopped to ask about it. Routine work, and anything you allowlisted, is governed entirely by your own Claude Code settings. Ony.ai adds exactly one behavior in this mode: a phone call for the high-risk asks.

Remote control for when you have left the keyboard. Ony.ai phones you for every ask the agent would stop on - the call replaces the terminal prompt nobody is there to answer. In this mode Ony.ai also turns an agent’s multiple-choice question into a phone menu: it reads each option, marks the recommended one, and delivers your keypad choice back as the answer. So you can let the agent ask questions normally and answer them from your phone.

Modes are project-scoped by default. The mode is stored in the project’s .ony/project.json, and every agent session working in that project shares it. Other projects are unaffected.

ony <mode> (with no flag) finds the project by walking up from your current directory to the nearest ancestor that looks like a wired project: one with a .ony/project.json file, a .git directory, or a .claude directory. Your home directory is never treated as a project root.

To set the machine-wide default instead - the mode used when you are not inside any project - add --global:

Terminal window
ony away --global # the default for this machine
ony on # this project only (the common case)

The project mode always wins over the global default for sessions inside that project.

Terminal window
ony status # current mode + connectivity
ony doctor # end-to-end check of the wiring, one line per check

If a mode command reports “Not enrolled,” run ony enroll (or ony init) first. See the CLI reference for the full command set.