Skip to content
    ↑↓ select↵ openesc close
    English中文
    Adamkadaban
    opencode-poke

    OpenCode TUI plugin to interact with stuck subagents — abort, retry, or send instructions to frozen child sessions

    GitHub stars

    1

    Monthly installs

    37

    10 in 7 days

    Composite scoreSCORE

    28.6

    Multi-signal model

    Last commit

    2 months ago

    2026-06-10

    Install and configure

    opencode.json

    Writes to this project's opencode.json — applies to this repository only.

    opencode.json

    {
      "$schema": "https://opencode.ai/config.json",
      "plugin": ["opencode-poke@0.1.5"]
    }

    opencode loads npm dependencies through its embedded runtime on startup and caches them locally — no manual global install needed.

    npm version npm downloads license

    OpenCode TUI plugin to interact with stuck agents and subagents — abort, retry, or send instructions to frozen sessions.

    What it does

    • Auto-detects what's stuck — checks busy subagents first, then the main agent
    • Abort — kills a stuck session so the parent can retry
    • Abort + send message — kills it, then sends a follow-up message so it resumes with new instructions
    • Abort + poke parent — kills a stuck subagent and tells the parent to retry the task
    • Works on both agents and subagents — one command handles everything

    Why

    OpenCode subagents can freeze when an LLM provider silently drops an SSE connection or stops sending chunks. The main agent has ESC + "continue" as a workaround, but subagents have no equivalent — they just hang forever with no way to interact. This plugin gives you a way to unstick them.

    See anomalyco/opencode#13841 for the upstream issue.

    Install

    opencode plugin opencode-poke -g
    

    This installs the package globally and updates your tui.json automatically.

    Or manually:

    npm install -g opencode-poke
    

    Then add to your tui.json:

    {
      "$schema": "https://opencode.ai/tui.json",
      "plugin": ["opencode-poke"]
    }
    

    Usage

    Open the command palette and select "Poke", or bind a keyboard shortcut (see below).

    Add a keyboard shortcut

    Add to your tui.json:

    {
      "tui": {
        "keybinds": {
          "poke.global": {
            "poke.session": "ctrl+k"
          }
        }
      }
    }
    

    Replace ctrl+k with whatever key combo you prefer.

    Flow

    1. Press your keybinding or select "Poke" from the command palette
    2. If one session is stuck, you go straight to the action picker
    3. If multiple are stuck, you pick which one first
    4. Choose an action:
      • Abort — stop the session
      • Abort + send message — stop it, then send a message to resume with new context
      • Abort + poke parent — stop a subagent and tell the parent to retry (subagents only)

    Development

    bun install
    bun run typecheck
    bun run build
    

    Releasing

    Releases are automated via GitHub Actions. To cut a new release:

    npm version patch   # or minor / major
    git push --follow-tags
    

    The publish workflow builds, publishes to npm with provenance, and creates a GitHub Release with auto-generated notes.

    License

    MIT