OpenCode is waiting on you. Your phone knows.

OpenCode's permission prompts on your lock screen. Allow or reject, and OpenCode carries on. Ask it to ping you when a long task is done.

Which OpenCode actions can Pushary send to my phone?

The shell commands, file reads, writes and edits, and web fetches OpenCode asks about. Pushary's plugin listens for OpenCode's permission.asked event and replies allow once or reject with your answer. Requests outside the working directory and multi-file edits stay in OpenCode's own prompt, and on OpenCode 2 so do MCP tool calls and web searches. If opencode.json already allows a tool, OpenCode never asks, so nothing reaches your phone for it.

Updated

Set up OpenCode notifications

bash
npx pushary@latest setup

Pick OpenCode when prompted. It writes a plugin to ~/.config/opencode/plugins and adds Pushary to opencode.json. OpenCode allows most actions without asking by default, so set the ones you want to approve to ask in opencode.json.

Hacker NewsFeatured on Hacker News
Claude Code, Codex, Cursor, Gemini CLI and more
iPhone, Android and Mac
Your code never leaves your machine

Every way to get OpenCode notifications

Three ways, from a local banner to a prompt you can answer from anywhere. They differ on one question that matters with OpenCode: does it tell you when a turn ends, or also when OpenCode is waiting on a permission?

How the options compare

1. A session.idle plugin with osascript

Free

The example in OpenCode's plugin docs

OpenCode's plugin docs show a plugin that runs osascript when a session goes idle, which puts a banner on a Mac when a turn ends. It is free and local. It does not reach your phone, and it tells you a turn ended, not that OpenCode is waiting on a permission. This example uses the V1 plugin format. OpenCode 2 has its own plugin format and never emits session.idle; a finished turn arrives as session.execution.succeeded (opencode issue #55358).

~/.config/opencode/plugins/notify.js
export const Notify = async ({ $ }) => ({
  event: async ({ event }) => {
    if (event.type === "session.idle") {
      await $`osascript -e 'display notification "Session completed!" with title "opencode"'`
    }
  },
})

2. A community notifier plugin

Free

For sounds, ntfy or chat alerts

Community plugins add sounds and one-way pushes. Check which hook a plugin uses for permission prompts. On OpenCode 1.x the permission.ask plugin hook has been declared but never called since v1.3.0, and it still is not (opencode issue #7006), so a plugin built on it loads cleanly and never fires. OpenCode 2 replaces it with a permission.evaluate hook. The permission.asked event fires on both.

3. Pushary: push plus approvals from your phone

$9.99/mo

For OpenCode in any terminal

One command writes a Pushary plugin that listens for permission.asked, so the shell commands, file reads, writes, edits and web fetches OpenCode asks about reach your phone with the request itself. Requests outside the working directory, shell commands in another directory and multi-file edits stay in OpenCode's own prompt, and on OpenCode 2 so do MCP tool calls, web searches and other actions. Allow or reject on the lock screen and the plugin replies to OpenCode for you. A finished turn is recorded, from session.idle on V1 and session.execution.succeeded on OpenCode 2, without a push. For a ping when a long task is done, ask OpenCode to send one through the Pushary MCP server. At your desk, the Pushary Mac app shows the same prompt in the notch.

terminal
npx pushary@latest setup

The OpenCode workflow without notifications

Once OpenCode is set to ask before shell commands or edits, each prompt sits in a terminal you are not looking at.

Without Pushary
Start a long OpenCode task
Switch to another window
OpenCode asks to run a command
Nobody sees the prompt
It waits until you come back
With Pushary
Start a long OpenCode task
Go do something else
OpenCode asks? Tap allow or reject
Ask it to ping you when the task is done
Nothing waits on you

Stop watching OpenCode spin. Start getting notified.

Connect OpenCode. Get notified when it is done.

Start your trial

$9.99/mo after a 3-day free trial. Cancel anytime.

OpenCode notification questions

How do I get a notification when OpenCode needs permission?

Run npx pushary@latest setup and pick OpenCode. The Pushary plugin listens for OpenCode's permission.asked event, sends the request to your phone, and replies allow once or reject with your answer. By default, if you do not tap within the window, OpenCode's own prompt takes over.

Why did my OpenCode plugin stop firing on permission prompts?

Most likely it registers the permission.ask hook. On OpenCode 1.x that hook has been declared in the plugin types but never called since v1.3.0, so the plugin loads and typechecks and never runs. OpenCode 2 replaces it with permission.evaluate. Subscribe to the permission.asked event instead, which is what Pushary's plugin does. On OpenCode 2, also check how the plugin hears that a turn finished: session.idle is not emitted there, and the finish arrives as session.execution.succeeded.

Why does OpenCode never ask me about some tools?

Out of the box OpenCode allows most actions, shell commands and edits included, without asking. It only asks about the actions your opencode.json sets to ask, so add ask rules for the tools you want to approve, and those prompts reach your phone. A tool set to allow never asks anybody, Pushary included.

Does OpenCode have a yolo or skip-permissions flag?

Yes, since V1 1.18 and in OpenCode 2. opencode --auto auto-approves every permission that is not explicitly denied, and --yolo and --dangerously-skip-permissions are hidden aliases for it. Before 1.18 only opencode run had it, under the name --dangerously-skip-permissions. A deny rule still blocks. Rules live in opencode.json or opencode.jsonc: OpenCode 2 uses a permissions list with actions such as shell, edit and read, where V1 uses a permission object with keys such as bash, edit and webfetch. Approving everything removes every prompt, so nothing reaches your phone either.

Does Pushary work with OpenCode 2?

Yes. The plugin Pushary writes supports OpenCode 2 and V1 from 1.18.29. After updating Pushary, run setup again to replace the installed plugin. On OpenCode 2 it answers shell commands in the active working directory, single-file reads, writes and edits, and web fetches. Access outside the directory, another shell working directory, multi-file edits, renames with two paths, and every other action, such as MCP tool calls, web searches and subagents, stay in OpenCode's own prompt, and a phone answer grants one request, not a session-wide permission.

Does your team run AI agents? With AI agent approvals for teams, each question goes to whoever’s agent asked, or to a lead you choose, and you see who said yes.

Building an AI product for other people? Let your users approve what your agent does, from their phone. See the Partner plan or the human-in-the-loop API.