Skip to content

[FEATURE]: Non-blocking background timer / async ping #31335

Closed as duplicate

Description

@yash-desai-naik

Description

There's no way to schedule a background timer or async ping without blocking the entire chat. If I say "ping me in 30s", the whole conversation freezes until the timer fires — any messages I type in between get queued and only appear after the ping.

Use Case

Active dev workflow in terminal. I want to:

  • Start a deploy, get pinged when it's done, keep working in the meantime
  • Set reminders ("remind me to check logs in 2 min") while I continue debugging
  • Watch a log file for errors while I edit code

Claude Code has this natively. It's the one thing I keep reaching for that doesn't exist here.

Verification

  • I have searched for existing issues and found no related feature request

Solution

A non-blocking timer tool or /ping command that runs outside the main chat loop. The Task tool spawns subagents synchronously from the main thread — a lightweight Timer tool on a separate event loop would do it.

Activity

  1. github-actions commented on Jun 8, 2026

    @github-actions
    Contributor

    This issue doesn't fully meet our contributing guidelines.

    What needs to be fixed:

    • Feature requests must use the [FEATURE]: title prefix (e.g. [FEATURE]: Non-blocking background timer / async ping)
    • Feature requests must use the feature request template, which includes a verification checkbox confirming you have searched for existing issues
    • The issue content appears to be AI-generated. Long, AI-generated walls of text are not acceptable — please rewrite in your own words, concisely describing the problem and what you need

    Please edit this issue to address the above within 2 hours, or it will be automatically closed.


    This issue might be a duplicate of existing issues. Please check:

    If you believe this was flagged incorrectly, please let a maintainer know.

  2. yash-desai-naik commented on Jun 8, 2026

    @yash-desai-naik
    Author

    This label was auto-applied by github-actions. This is a genuine feature request, not a compliance issue. Could a maintainer please remove
    eeds:compliance\ and add \enhancement\ / \discussion\ instead? Thanks.

  3. changed the title [-]Non-blocking background timer / async ping[/-] [+][FEATURE]: Non-blocking background timer / async ping[/+] on Jun 8, 2026
  4. yash-desai-naik commented on Jun 8, 2026

    @yash-desai-naik
    Author

    Update: This IS achievable via plugins

    Turns out my original analysis was wrong about the architectural limitation. The plugin opencode-background-agents by kdcokenny works correctly — it fires a background task via delegate() that returns immediately, and the completion notification injects into the chat independently without blocking.

    Tested successfully

    1. Installed opencode-background-agents plugin
    2. Restarted opencode
    3. Used delegate(prompt: "wait 15 seconds then say ping!", agent: "general")
    4. Continued chatting freely — no queueing
    5. Ping arrived ~15s later as an independent message

    What is the actual gap then?

    Not architectural — it is agent awareness. The plugin exposes delegate() / delegation_read() / delegation_list() tools, but the agent won't use them unless prompted to. The user has to explicitly instruct the agent to call delegate().

    What would still help

    A native solution (instead of a plugin) could:

    • Make the task tool support a background: true flag natively
    • Give opencode itself built-in awareness of background delegation so it proactively uses the pattern
    • Avoid needing to install and configure a third-party plugin

    But the core async non-blocking ping use case is solved by the existing plugin ecosystem. Closing this as "works via plugins" might make sense, unless the request is specifically for a built-in first-class solution.

  5. rekram1-node commented on Jun 8, 2026

    @rekram1-node
    Collaborator

    AUTOMATED: closing as duplicate of: #5887

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions