agentrem
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@agentremshow me my high priority reminders"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
๐ agentrem
Structured reminders for AI agents. Persistent, searchable, works across sessions.
Instant Start
npx agentrem add "Deploy to prod" --due tomorrow --priority 2
npx agentrem check
npx agentrem listRelated MCP server: Forgetful
For AI Agents
Copy this into your CLAUDE.md / AGENTS.md (or run agentrem setup to generate it):
## Reminders
You have access to `agentrem` CLI for persistent reminders across sessions.
### On every session start, run:
agentrem check --type time,session --budget 800
### When the user says "remind me", "don't forget", "follow up", or "next time":
agentrem add "<content>" --due "<when>" --priority <1-5> --tags "<tags>"
### Key commands:
- `agentrem add` โ create a reminder
- `agentrem check` โ see what's triggered/due
- `agentrem check --watch` โ block until next reminder fires
- `agentrem list` โ list all active reminders
- `agentrem search <query>` โ full-text search
- `agentrem complete <id>` โ mark done
- `agentrem snooze <id> --for 2h` โ snooze
- `agentrem --help` โ full referenceMCP Server
For Claude Desktop and any MCP client โ add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"agentrem": {
"command": "agentrem-mcp",
"args": []
}
}
}No global install? Use npx:
{
"mcpServers": {
"agentrem": {
"command": "npx",
"args": ["-y", "agentrem", "mcp"]
}
}
}Run agentrem setup --mcp to print this config. MCP tools: add_reminder ยท check_reminders ยท list_reminders ยท search_reminders ยท complete_reminder ยท snooze_reminder ยท edit_reminder ยท delete_reminder ยท get_stats ยท get_history ยท undo_change ยท garbage_collect ยท export_reminders ยท import_reminders
All Commands
Command | Key Flags | Example |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| โ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| โ |
|
| โ |
|
--json is available on check, list, search, stats, history, doctor โ use it for structured output in your agent.
Trigger Types
Type | Fires when... | Key flags |
| Due datetime is reached |
|
| Message text matches |
|
| Shell command output matches |
|
| Every session start check | โ |
| Every heartbeat check | โ |
| Explicit | โ |
Priority Levels
Level | Label | Behavior |
1 | ๐ด Critical | Always surfaced |
2 | ๐ก High | Surfaced within 60% budget |
3 | ๐ต Normal | Surfaced within 85% budget |
4 | โช Low | Counted but not surfaced |
5 | ๐ค Someday | Skipped entirely |
Natural Language Dates
--due, --until, and --decay all accept natural language:
--due "now" # Immediately
--due "today" # Today at 23:59
--due "tomorrow" # Tomorrow at 09:00
--due "in 5 minutes"
--due "in 2 hours"
--due "in 3 days"
--due "in 1 week"
--due "+5m" # Short relative
--due "+2h"
--due "+3d"
--due "+1w"
--due "2026-04-01T09:00:00" # ISO datetime
--due "2026-04-01" # ISO datecheck --watch: Blocking Mode
agentrem check --watch blocks until the next due reminder fires. Useful for scripting, pipelines, or pausing an agent until something needs attention.
# Wait indefinitely for next reminder
agentrem check --watch
# Exit 1 if nothing fires within 5 minutes
agentrem check --watch --timeout 300
# Get the full reminder as JSON when it fires
agentrem check --watch --json
# Filter by trigger type and agent
agentrem check --watch --type time,heartbeat --agent jarvis --timeout 60Exit codes: 0 = reminder found (or SIGINT/SIGTERM), 1 = timeout elapsed with no reminder.
Note:
--watchdoes not update fire counts. Use a regularagentrem checkafter to actually mark reminders as fired.
Poll-then-act pattern:
if agentrem check --watch --timeout 120 --json > /tmp/due.json; then
echo "Reminder fired:"
cat /tmp/due.json
agentrem check # mark as fired
fiwatch --on-fire: Hooks
โ ๏ธ Security: The
--on-firecommand runs with your user's permissions. Only use trusted commands. Reminder data is passed via environment variables (never shell-interpolated) to prevent injection.
Execute a shell command whenever a reminder fires:
agentrem watch --on-fire "curl -X POST https://hooks.example.com/reminder"Reminder data is passed as environment variables (no shell injection โ data never interpolated into the command):
Variable | Description |
| Reminder ID |
| Reminder text |
| Priority (1-5) |
| Comma-separated tags |
| Context string |
| Due datetime |
| Number of times fired |
Fire-and-forget โ failures are logged to
~/.agentrem/logs/on-fire.log, never crash the watcherSequential โ multiple reminders process one at a time
Timeout: 5 seconds default, configurable with
--on-fire-timeout <ms>
Built-in presets โ skip the shell command entirely:
agentrem watch --on-fire-preset openclaw # auto-delivers to your OpenClaw agentOr craft your own:
agentrem watch --on-fire 'curl -X POST https://hooks.example.com/reminder -d "text=$AGENTREM_CONTENT"'Background Watcher
agentrem watch polls for due reminders and fires native OS notifications.
agentrem watch # Poll every 30s (foreground)
agentrem watch --interval 60 # Custom interval
agentrem watch --once # Single check and exit
agentrem watch --agent jarvis # Watch for a specific agent
agentrem watch --verbose # Show poll log
# Install as OS service (auto-start on boot)
agentrem watch --install
agentrem watch --install --interval 60
agentrem watch --status
agentrem watch --uninstallService files: macOS โ ~/Library/LaunchAgents/com.agentrem.watch.plist ยท Linux โ ~/.config/systemd/user/agentrem-watch.service ยท Logs โ ~/.agentrem/logs/watch.log
Native Notifications ๐
On macOS, agentrem ships a bundled Swift app (Agentrem.app) that runs as a singleton process โ notifications appear under "agentrem" with a bell icon.
Priority | Sound |
P1 ๐ด Critical | Hero |
P2 ๐ก High | Ping |
P3 ๐ต Normal | Pop |
Notification behavior:
Click body โ notification re-appears (won't dismiss until you act on it)
Complete โ โ marks reminder complete and dismisses (the only way to complete a fired reminder)
Multiple reminders โ single process handles all via IPC
Fallback chain:
Agentrem.appโterminal-notifierโosascriptโconsole
To rebuild the Swift app: npm run build:notify
Programmatic API
Use agentrem directly from JavaScript/TypeScript โ no CLI subprocess needed.
npm install agentremimport { add, check, list, complete, snooze, search, stats } from 'agentrem';
import type { Reminder } from 'agentrem';
// Add a reminder
const rem = await add('Review PR #42', { due: 'tomorrow', priority: 2, tags: 'pr,review' });
// Check for triggered reminders (session start pattern)
const { included, totalTriggered } = await check({ type: 'time,session', budget: 800 });
for (const r of included) {
console.log(`[P${r.priority}] ${r.content}`);
}
// List active reminders
const reminders = await list({ limit: 20 });
// Complete a reminder
const done = await complete(rem.id, 'Reviewed and merged');
// Snooze a reminder
const snoozed = await snooze(rem.id, { for: '2h' });
// Full-text search
const results = await search('deploy staging');
// Get statistics
const s = await stats();
console.log(`${s.totalActive} active, ${s.overdue} overdue`);All API functions are async and return full Reminder objects. The database is auto-initialized on first call (no manual init needed).
See llms-full.txt for complete type signatures and all options.
Why agentrem?
# vs flat files / memory.md
agentrem check --json # structured output your agent can parse; memory.md can't do thatPersistent across sessions โ SQLite-backed, survives restarts, not just in-context notes
Priority-aware + token budgets โ
check --budget 800fits within any context window without overflowTriggerable โ time, keyword, condition, session, heartbeat triggers; not just static lists
Blocking watch mode โ
check --watchlets agents pause until something needs attentionAgent-native โ
--jsoneverywhere,--agentnamespacing, MCP server for chat clients
Install
npm install -g agentremThe database auto-initializes on first use. Run agentrem setup to get your CLAUDE.md snippet, or agentrem setup --mcp for Claude Desktop.
MIT License
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/fraction12/agentrem'
If you have feedback or need assistance with the MCP directory API, please join our Discord server