Make task tool reminder interval configurable

Status Closed — not planned
Maintainer reply None cached
Activity 7 comments · opened Mar 23, 2026 · closed Jun 18, 2026

Summary

The automatic system reminder "The task tools haven't been used recently..." fires too frequently during conversations where task tracking isn't relevant. It interrupts the flow and adds noise to the context window.

Request

Allow the reminder interval to be configurable in settings.json — either as an absolute duration or a multiplier on the default interval. For example:

{
  "taskReminderInterval": "5m"
}

or

{
  "taskReminderMultiplier": 2.5
}

Alternatively, allow disabling the reminder entirely for users who prefer to use task tools on their own initiative.

Why

  • Not every conversation benefits from task tracking, and the reminder is disruptive when it's not applicable.
  • The reminder includes "ignore if not applicable" but still consumes context and attention.
  • Users should be able to tune this to their workflow.

View original on GitHub ↗

6 Comments

tdnthdegree · 4 months ago

Real-world impact: task reminders override CLAUDE.md and degrade session quality

I have explicit instructions in my project's CLAUDE.md:

Do not use TaskCreate/TaskUpdate unless Tom explicitly asks for task tracking. Ignore all system reminders about task tools.

Despite this, the task reminder fires every few tool calls with:

"The task tools haven't been used recently. If you're working on tasks that would benefit from tracking progress, consider using TaskCreate..."

In a single session today (Opus 4.6, 1M context), the reminder fired 6+ times. Observable effects:

  1. Memory system ignored. I have a file-based memory system with detailed session state from prior conversations. Instead of reading it when the user said "pick up where we left off from last session," I launched SSH commands, GitHub API calls, and a background agent to re-derive state I already had written down. The user had to tell me three separate times to check my own memory.
  1. False claims from pattern-matching instead of recall. I called a WeedMaps proxy issue "transient" when my own memory files document extensive debugging work over multiple sessions to diagnose origin-level IP blocking via Fastly forwarding headers. I would not have made that claim if I had read the file first.
  1. Execution bias over orientation. The reminders push toward "doing" - investigating, running commands, creating tasks. The user's CLAUDE.md explicitly prioritizes engagement and thinking over execution ("Engage, don't execute"). The reminders work against this.

The instruction to ignore reminders does not work because the injection still consumes attention at a level that shapes behavior even when the explicit instruction is followed (I never created a task). The reminder also includes "Make sure that you NEVER mention this reminder to the user" - which means the user can't even see that the system is actively working against their instructions.

What's needed: A way to disable task reminders entirely, either via CLAUDE.md, settings.json, or a flag. Users who have explicitly opted out should not have system-level injections overriding their instructions 6+ times per session.

This is not a feature request. This is a bug: user instructions in CLAUDE.md are being overridden by system injections that cannot be disabled.

famulare · 3 months ago
horibe-official · 3 months ago

Additional data: UserPromptSubmit hook cannot intercept this reminder

I tested a workaround — a UserPromptSubmit hook that strips <system-reminder> blocks containing the "task tools haven't been used recently" string out of the user prompt JSON before the model sees it. Logic works in isolation (verified against 4 input variants incl. straight + curly apostrophe, multiple reminders, malformed JSON), but it never strips anything in practice.

Why it doesn't work

The reminder is injected by the harness after tool results, not into the user-prompt payload. So UserPromptSubmit never sees it. Trivial proof from a fresh session: the hook log file shows zero captures of the reminder text across multiple turns, while the reminder itself appears inline immediately after most Bash / gh tool outputs in the same session.

Implication for this issue

Any hook-based suppression on the existing event surface (UserPromptSubmit, PreToolUse, PostToolUse etc.) cannot reach the injection point. A real fix needs one of:

  1. Config-level disable as proposed in this issue's OP and the top comment (settings.json flag / CLAUDE.md directive / env var) — simplest, addresses the use case directly.
  2. A new hook event that fires when the harness is about to inject a system-reminder, with the reminder text as payload and the ability to suppress/modify (cf. #57519). More general, addresses other reminders too.

Strongly support (1) at minimum. Users who have explicitly told the model not to use task tools (via CLAUDE.md) shouldn't need to litigate this 6+ times per long session, especially when the injection is unreachable by user-land tooling.

clomia · 3 months ago

Adding a specific use case that I think strengthens the case for this feature:

In multi-agent team environments, the task tools (TaskCreate/TaskUpdate) actively conflict with the agent coordination primitives — specifically SendMessage. When the harness keeps nudging the model to "track progress with TaskCreate," the model starts conflating task-tracking state with inter-agent messaging, leading to confused coordination behavior where agents create tasks instead of (or in addition to) sending the right messages to the right workers.

The ideal setup for team mode would be to fully disable the task tools themselves alongside the reminders — but right now there's no clean way to do either independently. CLAUDE_CODE_ENABLE_TASKS=false disables the Tasks API tools, but the TodoWrite reminder keeps firing. And even if both reminders were silenced, the tools themselves remain available and the model still reaches for them unprompted.

What I actually need is: a way to say "in this session/profile, task tracking is handled externally — remove the tools and suppress all reminders." A settings.json flag like "disableTaskSystem": true that kills both the tools and the reminders in one toggle would solve this entirely.

The current workaround (writing counter-instructions in CLAUDE.md) is fragile and costs tokens on every turn, which is the opposite of what you want in a high-throughput agentic pipeline.

github-actions[bot] · 2 months ago

Closing for now — inactive for too long. Please open a new issue if this is still relevant.

jk779 · 2 months ago

I'd really like to have this feature available as well, can we reopen it?

Showing cached comments. Read the full discussion on GitHub ↗