# RemindMe Full Agent Context Canonical docs: https://docs.getremindme.app/docs App: https://getremindme.app API: https://api.getremindme.app/v1 OpenAPI: https://docs.getremindme.app/openapi.json ## Docs Structure - `/docs`: docs hub and route index. - `/docs/quickstart`: 5-minute path covering account creation, first material, first review, API key creation, first API call, and CLI trial. - `/docs/getting-started`: first session and first review. - `/docs/spaced-repetition`: active recall, quality scores, intervals, memory risk. - `/docs/materials`: material types and creation model. - `/docs/reviews`: review sessions and 0-5 quality scoring. - `/docs/reminders`: dashboard, calendar, email, browser/device reminders. - `/docs/catch-up-mode`: handling overdue reviews. - `/docs/billing`: $7.99/month, $79.90/year, Stripe portal, invoices, cancellation, grace period, no mid-cycle plan changes. - `/docs/privacy`: stored data, Gemini-powered AI feature processing, Stripe, export/delete controls. - `/docs/security`: API key hashing, least privilege, revocation, secret handling. - `/docs/developer`: creating, rotating, and revoking API keys in Settings > Developer/API Access. - `/docs/api`: API quickstart. - `/docs/api/authentication`: bearer and X-RemindMe-API-Key auth. - `/docs/api/materials`: list and create material endpoints. - `/docs/api/reviews`: due reviews and submit review endpoints. - `/docs/api/snooze`: snooze endpoint. - `/docs/api/search`: search endpoint. - `/docs/api/errors`: error format and rate limits. - `/docs/cli`: CLI commands and credential handling. - `/docs/agents`: safe OpenClaw/Claude/Codex-style agent workflows. - `/docs/agents/mcp`: future MCP server guidance and current API/CLI path. - `/docs/examples`: copy-paste API examples. - `/docs/changelog`: public docs changes. ## What RemindMe Does RemindMe helps users remember what they study with spaced repetition. Users add materials such as notes, links, flashcards, chapters, and prompts. RemindMe schedules reviews using an SM-2 style algorithm, tracks progress, and reminds users when reviews are due. Common user workflow: 1. Create an account at https://getremindme.app. 2. Verify email. 3. Add material from the dashboard, Materials page, Chrome extension, CLI, or API. 4. Complete the first review immediately. New material is due now. 5. Submit a recall quality score from 0 to 5. 6. Follow reminders and calendar/due-review views. 5-minute docs quickstart: 1. Create an account at https://getremindme.app. 2. Add one focused material. 3. Complete the first review immediately. 4. Create an API key in Settings > Developer/API Access. 5. Call `GET /v1/me`. 6. Try `node cli/remindme.js whoami`, `due`, `search`, or `add`. Quality scores: 0 means total blackout, 1 means incorrect but familiar, 2 means difficult recall with major gaps, 3 means correct with effort or minor gaps, 4 means correct after some thought, and 5 means immediate confident recall. ## Billing Premium is billed with Stripe. - Monthly: $7.99/month. - Yearly: $79.90/year. - Billing portal: available from Settings > Subscription/Billing. - Invoices: available from the Stripe billing portal. - Cancellation: managed in Stripe and normally stops renewal at the end of the current billing period. - Failed payments: may enter a grace/retry period before access changes. - Mid-cycle plan changes between monthly and yearly are not currently supported. ## API Authentication And Key Management API keys are created in the web app under Settings > Developer/API Access. Production keys begin with `rmk_live_`. The raw key is shown once. RemindMe stores only key metadata and hashed key values, not raw keys. Send either header: ```http Authorization: Bearer X-RemindMe-API-Key: ``` Available scopes: - `materials:read` - `materials:write` - `reviews:read` - `reviews:write` - `snooze:write` - `profile:read` New keys default to read-oriented scopes when no write scope is selected. Write API requests are limited to 60 requests per minute per user/key bucket. API key creation is limited to 5 keys per hour. Rotation workflow: 1. Create a replacement key with the same or narrower scopes. 2. Update `REMINDME_API_KEY`, the CLI credential store, CI secret, or agent secret. 3. Test `GET /v1/me`. 4. Revoke the old key from Settings > Developer/API Access. Never paste keys publicly, commit keys, put keys in prompts, or leave keys in CI logs. Revoke lost, exposed, or committed keys immediately. ## API Endpoints ### GET /v1/me Returns account and API-key context. Requires any valid API key. Response fields include `id`, `email`, `firstName`, `lastName`, `plan`, `apiKeyId`, and `scopes`. ### GET /v1/materials Required scope: `materials:read`. Query params: `limit` positive integer max 100 default 20; `q` optional search text for title, content, and source URL. Returns `{ "materials": [...] }`. ### POST /v1/materials Required scope: `materials:write`. ```json { "title": "Read chapter 4", "content": "Photosynthesis notes", "sourceUrl": "https://example.com/chapter-4", "type": "simple" } ``` `title` is required and must be at most 240 characters. Supported `type` values are `simple`, `material`, `flashcard`, and `card`. ### GET /v1/reviews/due Required scope: `reviews:read` or `materials:read`. Returns materials where `nextReview` is null or due now. ### POST /v1/reviews/{materialId} Required scope: `reviews:write`. Body: `{ "quality": 4 }`, where `quality` is an integer from 0 to 5. Updates `ef`, `interval`, `repetitions`, `nextReview`, and `lastReviewed`. ### POST /v1/materials/{materialId}/snooze Required scope: `snooze:write`. ```json { "snoozeUntil": "2026-05-07T09:00:00.000Z", "reason": "agent-scheduled" } ``` or: ```json { "preset": "tomorrow" } ``` Supported presets: `1h`, `tomorrow`, `tonight`. ### GET /v1/search Required scope: `materials:read`. Query params: `q` required search text; `limit` max 100 default 20. ## Error Format All v1 errors return JSON: ```json { "error": { "code": "invalid_request", "message": "q is required.", "details": {} } } ``` Known error codes: `unauthorized`, `insufficient_scope`, `invalid_request`, `invalid_scope`, `rate_limited`, `not_found`. ## CLI The repository includes `cli/remindme.js`. ```bash REMINDME_API_KEY=rmk_live_... node cli/remindme.js whoami node cli/remindme.js login-api-key rmk_live_... node cli/remindme.js whoami node cli/remindme.js add "Read API docs" "Draft MCP tool plan" node cli/remindme.js due 10 node cli/remindme.js search docs ``` Current packaging status: the CLI is a local Node script in the repository, not a published npm global package. A future npm package may expose a global `remindme` command; until then, docs and agents should use `node cli/remindme.js`. Environment variables: - `REMINDME_API_KEY`: API key override. - `REMINDME_API_URL`: API URL override, default `https://api.getremindme.app/v1`. CLI security: - Prefer shell or secret-manager injected `REMINDME_API_KEY` for temporary sessions. - Use `login-api-key` only on machines the user controls. - Do not commit `~/.remindme/credentials.json` or paste `rmk_live_` keys into transcripts. - Use separate API keys for CLI, CI, and agents. ## Agent Guidance Agents should: - Ask the user to create keys in Settings > Developer/API Access. - Store keys in host secret stores or environment variables, not prompts or source files. - Use read-only scopes for search and due-review summaries. - Request write scopes only for explicit user-approved actions. - Confirm before creating materials, submitting reviews, or snoozing due items. - Surface API error codes directly enough for users to fix scopes, auth, or request shape. - Revoke keys immediately if exposed. Current integration path: public API or CLI. Future MCP support should wrap the public v1 API and map each MCP tool to the narrowest required RemindMe scope. ## Privacy And Security RemindMe stores account profile, study materials, review history, schedules, settings, notification preferences, API key metadata, and billing status. AI features may process submitted learning content with Gemini-powered services when the user invokes those features. Billing is handled by Stripe. Users can revoke API keys, export data, delete materials, and request account deletion. API Reference Page: https://docs.getremindme.app/docs/api/reference renders the OpenAPI endpoints for humans; /openapi.json remains the machine-readable spec.