feat: Support reminders, so actions can be done automatically in delayed manner. #1862

Closed
opened 2026-02-16 17:32:59 -05:00 by yindo · 7 comments
Owner

Originally created by @zelenkovsky on GitHub (Sep 27, 2025).

Originally assigned to: @thdxr on GitHub.

Reminders

A background scheduling system for opencode that allows agents to set up delayed or recurring reminders to re-execute actions. Conversation Example: https://opencode.ai/s/WweTtomr

Overview

The Reminders system provides three core functions:

reminderadd() - Schedule a future reminder
reminderlist() - View active reminders
reminderremove() - Cancel scheduled reminders

Use cases
Delayed file monitoring

"Wait for 5 min and check this file again for instructions"

Creates a one-time timer that triggers after 5 minutes and executes the action "Review and decide what to do with /workspace/last-login.log".
Regular website monitoring

"Check this website regularly and let me know when it has new information"

Sets up a recurring timer (default 1 minute interval) that fetches http://google.com?q=Helsinki-News and compares content for changes.
Email auto-reply

"Check my email every hour and reply that I'm busy"

Creates a recurring 1-hour timer that checks email and sends automated responses using whatever email tools are available.
List active reminders

"Show me what I'm waiting for"

Returns all active reminders with their timers and descriptions.
Cancel reminders

"Stop checking my email"

Identifies and removes matching reminders based on description.
Integration points
Reminder tools

Three tools that agents can discover and use autonomously:

reminderadd

Description: "Set up a reminder that will make me re-execute an action later. Use when user asks to 'remind me to...' or 'check X every Y time'. I'll actually perform the action when reminded, not just notify."
Parameters: interval_seconds, type (one-time/recurring), action_prompt, description
Critical: action_prompt must contain fully resolved information (absolute paths, specific names, concrete data) since context may change over time
Success: Returns confirmation like "Reminder set: I'll check your email in 1 hour" or "Reminder set: I'll monitor the log file every 5 minutes"
Error: When limit reached, returns "Can't set more reminders, too many reminders already active." along with list of current reminders, suggesting user choose which to remove first

reminderlist

Description: "List all active reminders in this session. Use when user asks 'what reminders do I have' or wants to see scheduled actions."
Returns: Array of active reminders with descriptions and next execution times

reminderremove

Description: "Cancel a scheduled reminder. Use when user asks to 'stop checking X' or 'cancel the reminder for Y'. Will attempt to match user's description to existing reminders."
Parameters: description_pattern - What the user wants to stop
Success: Returns confirmation like "Reminder cancelled: No longer checking your email every hour" or "Reminder removed: Stopped monitoring log file"
Error: Returns "No matching reminder found" if pattern doesn't match any active reminders

Storage integration

Reminders are persistently stored across application restarts and are restored when opencode starts up. Reminders are removed when:

Session is deleted
Reminder is explicitly cancelled
Reminder expires (one-time reminders after execution)

Session integration

Reminders are session-scoped: they exist only while their session exists. When a session is deleted, all reminders belonging to that session are automatically removed.

Originally created by @zelenkovsky on GitHub (Sep 27, 2025). Originally assigned to: @thdxr on GitHub. Reminders A background scheduling system for opencode that allows agents to set up delayed or recurring reminders to re-execute actions. Conversation Example: https://opencode.ai/s/WweTtomr Overview The Reminders system provides three core functions: reminderadd() - Schedule a future reminder reminderlist() - View active reminders reminderremove() - Cancel scheduled reminders Use cases Delayed file monitoring "Wait for 5 min and check this file again for instructions" Creates a one-time timer that triggers after 5 minutes and executes the action "Review and decide what to do with /workspace/last-login.log". Regular website monitoring "Check this website regularly and let me know when it has new information" Sets up a recurring timer (default 1 minute interval) that fetches [http://google.com?q=Helsinki-News](http://google.com/?q=Helsinki-News) and compares content for changes. Email auto-reply "Check my email every hour and reply that I'm busy" Creates a recurring 1-hour timer that checks email and sends automated responses using whatever email tools are available. List active reminders "Show me what I'm waiting for" Returns all active reminders with their timers and descriptions. Cancel reminders "Stop checking my email" Identifies and removes matching reminders based on description. Integration points Reminder tools Three tools that agents can discover and use autonomously: reminderadd Description: "Set up a reminder that will make me re-execute an action later. Use when user asks to 'remind me to...' or 'check X every Y time'. I'll actually perform the action when reminded, not just notify." Parameters: interval_seconds, type (one-time/recurring), action_prompt, description Critical: action_prompt must contain fully resolved information (absolute paths, specific names, concrete data) since context may change over time Success: Returns confirmation like "Reminder set: I'll check your email in 1 hour" or "Reminder set: I'll monitor the log file every 5 minutes" Error: When limit reached, returns "Can't set more reminders, too many reminders already active." along with list of current reminders, suggesting user choose which to remove first reminderlist Description: "List all active reminders in this session. Use when user asks 'what reminders do I have' or wants to see scheduled actions." Returns: Array of active reminders with descriptions and next execution times reminderremove Description: "Cancel a scheduled reminder. Use when user asks to 'stop checking X' or 'cancel the reminder for Y'. Will attempt to match user's description to existing reminders." Parameters: description_pattern - What the user wants to stop Success: Returns confirmation like "Reminder cancelled: No longer checking your email every hour" or "Reminder removed: Stopped monitoring log file" Error: Returns "No matching reminder found" if pattern doesn't match any active reminders Storage integration Reminders are persistently stored across application restarts and are restored when opencode starts up. Reminders are removed when: Session is deleted Reminder is explicitly cancelled Reminder expires (one-time reminders after execution) Session integration Reminders are session-scoped: they exist only while their session exists. When a session is deleted, all reminders belonging to that session are automatically removed.
yindo closed this issue 2026-02-16 17:32:59 -05:00
Author
Owner

@zelenkovsky commented on GitHub (Sep 27, 2025):

@thdxr, @rekram1-node, I'm working on this feature, could you please provide early feedback for the feature spec above.

@zelenkovsky commented on GitHub (Sep 27, 2025): @thdxr, @rekram1-node, I'm working on this feature, could you please provide early feedback for the feature spec above.
Author
Owner

@zelenkovsky commented on GitHub (Sep 27, 2025):

@thdxr, @rekram1-node Here is a pull request draft: https://github.com/sst/opencode/pull/2815

I'll continue, but I wanted to confirm that you consider this feature useful and will merge if/when I'm done. Feel free suggesting a better way to implement it.

I want to make OpenCode an environment, where people can run not only coding project, but any research.

@zelenkovsky commented on GitHub (Sep 27, 2025): @thdxr, @rekram1-node Here is a pull request draft: https://github.com/sst/opencode/pull/2815 I'll continue, but I wanted to confirm that you consider this feature useful and will merge if/when I'm done. Feel free suggesting a better way to implement it. I want to make OpenCode an environment, where people can run not only coding project, but any research.
Author
Owner

@rekram1-node commented on GitHub (Sep 27, 2025):

Hey @zelenkovsky maybe there was a conversation I wasn't a part of but generally the team requests that new features go through them before you open PRs.

Did you see the contributing guidelines? https://github.com/sst/opencode?tab=readme-ov-file#contributing

Features like this generally go through a proposal and review process internally, and the decision here is up to @thdxr not myself. So I won't try to speak for him but just wanted to give you forewarning that the PR may not be used

@rekram1-node commented on GitHub (Sep 27, 2025): Hey @zelenkovsky maybe there was a conversation I wasn't a part of but generally the team requests that new features go through them before you open PRs. Did you see the contributing guidelines? https://github.com/sst/opencode?tab=readme-ov-file#contributing Features like this generally go through a proposal and review process internally, and the decision here is up to @thdxr not myself. So I won't try to speak for him but just wanted to give you forewarning that the PR may not be used
Author
Owner

@zelenkovsky commented on GitHub (Sep 27, 2025):

I apologize, I was not aware of the contribution rules, and there was no previous conversation. In fact, this is the first time I have brought this idea to the public.

I'm a heavy opencode user, and I miss the ability to ask Agent to do some work later or regularly. I'm willing to contribute to the project and implement (or help implement) that feature. However, since opencode is under active development (I see almost daily releases), I'd like to avoid rebasing it consistently.

@thdxr, Please review the proposal above. I'll follow your guidance.

@zelenkovsky commented on GitHub (Sep 27, 2025): I apologize, I was not aware of the contribution rules, and there was no previous conversation. In fact, this is the first time I have brought this idea to the public. I'm a heavy opencode user, and I miss the ability to ask Agent to do some work later or regularly. I'm willing to contribute to the project and implement (or help implement) that feature. However, since opencode is under active development (I see almost daily releases), I'd like to avoid rebasing it consistently. @thdxr, Please review the proposal above. I'll follow your guidance.
Author
Owner

@zelenkovsky commented on GitHub (Sep 27, 2025):

PR is ready https://github.com/sst/opencode/pull/2815

@zelenkovsky commented on GitHub (Sep 27, 2025): PR is ready https://github.com/sst/opencode/pull/2815
Author
Owner

@rekram1-node commented on GitHub (Sep 27, 2025):

hey no problem just wanted to point that out!

@rekram1-node commented on GitHub (Sep 27, 2025): hey no problem just wanted to point that out!
Author
Owner

@R44VC0RP commented on GitHub (Jan 25, 2026):

Thanks for the detailed proposal @zelenkovsky!

Closing this for now as it needs to go through the feature RFC process before implementation. Per the contributing guidelines, features need pre-approval from maintainers before PRs are merged.

There are also some related discussions around async/background agent work (#5887, #5895, #7206) that may inform how this kind of scheduling functionality would fit into the broader architecture.

If there's renewed interest in this feature, feel free to reopen or start a discussion. Appreciate the effort you put into the spec and PR!

@R44VC0RP commented on GitHub (Jan 25, 2026): Thanks for the detailed proposal @zelenkovsky! Closing this for now as it needs to go through the feature RFC process before implementation. Per the [contributing guidelines](https://github.com/anomalyco/opencode?tab=readme-ov-file#contributing), features need pre-approval from maintainers before PRs are merged. There are also some related discussions around async/background agent work (#5887, #5895, #7206) that may inform how this kind of scheduling functionality would fit into the broader architecture. If there's renewed interest in this feature, feel free to reopen or start a discussion. Appreciate the effort you put into the spec and PR!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: anomalyco/opencode#1862