Natural-language reminder manager for Claude Code: a /reminder skill plus a SessionStart hook that shows a reminders banner at startup.
A small reminder manager for Claude Code, made of two parts that work together:
/reminder skill to add, list and close reminders in natural language,SessionStart hook that displays a reminder banner (overdue, due today, upcoming) every time a session opens.Reminders are stored in a plain JSON file (~/.claude/reminders.json). No external dependencies, just Bash and Python 3.
When a session starts, the hook displays a banner like this:
════════════════════════════════════════════════════════════════
🔔 REMINDERS DUE (1)
════════════════════════════════════════════════════════════════
▸ [TODAY · 2026-06-01] my-project
Check post-deployment metrics
📅 UPCOMING (2)
| Date | Project | Preview |
|------|---------|---------|
| 2026-06-10 | my-project | Re-run the analysis batch |
| 2026-06-20 | global | Renew the TLS certificate |
→ Full detail: /reminder list · Done: /reminder done <index>
════════════════════════════════════════════════════════════════
| Command | Effect |
|---|---|
/reminder:reminder or /reminder:reminder list | List active reminders sorted by date |
/reminder:reminder add <date> <message> | Add a reminder |
/reminder:reminder done <index> | Mark as done (kept in the file as history) |
/reminder:reminder history | List completed reminders |
When installed as a plugin, the skill is namespaced as reminder:reminder. If you install it as a standalone project skill instead (see manual install), it is simply /reminder.
Dates accept both absolute (2026-06-16, June 16, 06/16/2026) and relative (tomorrow, in 2 weeks, next Monday) forms. Claude converts them to YYYY-MM-DD before saving.
This repo is both a Claude Code plugin and a single-plugin marketplace. Installing the plugin registers the skill and the SessionStart hook automatically, with no manual settings.json editing.
/plugin marketplace add JeremieSamson/claude-code-reminder
/plugin install reminder@jsamson
git clone https://github.com/JeremieSamson/claude-code-reminder.git
cd claude-code-reminder
./install.sh
The script copies the skill into ~/.claude/skills/reminder/, the hook into ~/.claude/scripts/, then prints the snippet to paste into ~/.claude/settings.json.
Copy the skill:
mkdir -p ~/.claude/skills/reminder
cp skills/reminder/SKILL.md ~/.claude/skills/reminder/
Copy the hook:
mkdir -p ~/.claude/scripts
cp hooks/check-reminders.sh ~/.claude/scripts/
chmod +x ~/.claude/scripts/check-reminders.sh
Register the hook in ~/.claude/settings.json, under the hooks key:
{
"hooks": {
"SessionStart": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "/home/<user>/.claude/scripts/check-reminders.sh"
}
]
}
]
}
}
Adapt the absolute path to your $HOME.
reminders.json[
{
"date": "2026-06-16",
"project": "my-project",
"message": "Reminder description"
},
{
"date": "2026-06-01",
"project": "my-project",
"message": "A completed reminder",
"done": true,
"completed_at": "2026-06-02"
}
]
The project field is optional. Completed reminders are not deleted: done marks them with done: true and a completed_at date, and they are hidden from the banner and from list. See reminders.example.json.
For a message to be displayed in the terminal (not just injected into the model's context), a SessionStart hook must emit JSON with a systemMessage field. Plain stdout only becomes additionalContext, which is invisible to the user. That is exactly what check-reminders.sh does.
MIT, see LICENSE.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
npx claudepluginhub jeremiesamson/claude-code-reminder --plugin reminderTrack your AI carbon footprint and plant trees to compensate via Tree-Nation
Core skills library for Claude Code: TDD, debugging, collaboration patterns, and proven techniques
Harness-native ECC operator layer - 67 agents, 271 skills, 92 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses
Superpowers Plus core skills library for Claude Code: planning, execution routing, TDD, debugging, and collaboration workflows
Claude harness - A harness for solo developers (Vibecoders) to handle full-cycle contract development.
Intelligent prompt optimization: injects the right context at the right moment so Claude lands a better first output. Clarifies vague prompts with research-based questions, plus targeted nudges for approach selection, plan readability, workflow routing, background execution, subagent routing, output readability, user-decision questions, and plan-mode assessment
Plugin-safe Claude Code distribution of Antigravity Awesome Skills with 1,561 supported skills.