`rtk rewrite` runs the daily hook reminder and telemetry ping on the hook path, so shell hooks spend the reminder into /dev/null
Maintainers usually reply within 1 day
@viniciusdsandrade is already working on this.
Since Oct 17, 2026.
- #4619 by @viniciusdsandrade — open
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 74/100
Research direction
Start in run_cli, where the rtk hook <agent> path already skips hooks::hook_check::maybe_warn() and core::telemetry::maybe_ping() (commit 5d8102abf), and extend the same skip to the rewrite subcommand. The shell hooks in hooks/claude/rtk-rewrite.sh and hooks/cursor/rtk-rewrite.sh call it with 2>/dev/null. Done when the reproduction in the issue shows the reminder printed by the next rtk git status and .hook_warn_last left unwritten by rtk rewrite.
Written by the indexing model from the issue text.
Description
run_cli skips hooks::hook_check::maybe_warn() for rtk hook <agent> (develop 5d8102abf), and #4308 also skips core::telemetry::maybe_ping() there. rtk rewrite is the other hook entry point: hooks/claude/rtk-rewrite.sh, hooks/cursor/rtk-rewrite.sh, the Hermes plugin and the Pi extension all call it before every command. It still runs both checks.
The shell hooks call it as rtk rewrite "$CMD" 2>/dev/null. So when the reminder is due, it is printed into /dev/null and the once-a-day marker is spent. The rewritten command that runs right after stays silent for 23 hours, the same mechanism as #4036.
Reproduced on develop 16a20a2ea. The home is isolated and has a .claude directory with no hook registered. stdin is /dev/null, LC_ALL=C:
$ rtk rewrite "git status" 2>/dev/null # what the shell hook runs
rtk git status # .hook_warn_last now written
$ rtk git status # what the agent runs next
# no "[rtk] /!\ No hook installed" line
Without the rewrite first, rtk git status in the same kind of home prints the reminder.
Expected: rtk rewrite skips both checks, like rtk hook <agent>, and the reminder goes to the next command a person reads.
Related: #4297 (same for rtk hook), #4036 (meta commands spending the reminder), #4512 (the reminder is a false positive on non-Claude harnesses, which reach rtk through rtk rewrite).
- Dominant language
- Rust
- Stars
- 85k
- Forks
- 5.4k
- Avg merge
- 6d 22h
- Merged PRs (30d)
- 64
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from rtk-ai/rtk
-
fish wrap: a typed `rtk run --shell fish -c` behind a leading line continuation is wrapped againOpenbug hooks
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
docs(openclaw): "What's NOT rewritten" says |, && and ; commands are left alone; rtk rewrite rewrites themPossibly taken @lechakrawarthy claimed this 1 day ago. Openarea:docs documentation good first issue priority:low
Difficulty 1/5 Under an hour Newbie friendliness 80/100
Maintainers usually reply within 1 day
-
docs(hooks): agent lists in hooks/README.md miss Kilo Code, Kimi and DroidPossibly taken @wuzhongyanqiu claimed this 1 day ago. Openarea:docs documentation good first issue priority:low
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
Hook matcher rejects an upper-case RTK.EXE: "No hook installed" and rtk init -g adds a second hookPossibly taken @TechWizard9999 claimed this 1 day ago. Openarea:cli bug platform:windows priority:low
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
rtk pipe -f go-test drops benchmark resultsPossibly taken @TechWizard9999 claimed this 1 day ago. Openarea:cli bug priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 1/5 1-3 hours Newbie friendliness 70/100
OpenZeppelin/openzeppelin-relayer#967 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
src/runs.rs:1987: a missing --source-run-id now answers 400 "Source run ... does not exist", not 404Opennightly-audit
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
antithesishq/snouty#602 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
libnativeapi/nativeapi#21 ·