Best for
- Save facts as flashcards for later review
- Review due cards with spaced repetition
- Generate a quiz from a YouTube video transcript
NousResearch/hermes-agent/optional-skills/productivity/memento-flashcards/SKILL.md
Spaced-repetition flashcards: create, review, quiz, export.
Decision brief
Spaced-repetition flashcards: create, review, quiz, export.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/NousResearch/hermes-agent --skill "optional-skills/productivity/memento-flashcards"Inspect the Agent Skill "memento-flashcards" from https://github.com/NousResearch/hermes-agent/blob/64a6f42cb38def7ad6524bdfe640a16997c88760/optional-skills/productivity/memento-flashcards/SKILL.md at commit 64a6f42cb38def7ad6524bdfe640a16997c88760. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Not every factual statement should become a flashcard. Use this three-tier check:
Verify the helper scripts directly:
Use this skill when the user wants to: - Save facts as flashcards for later review - Review due cards with spaced repetition - Generate a quiz from a YouTube video transcript - Import, export, inspect, or delete flashcard data
Review the “Quick Reference” section in the pinned source before continuing.
Cards are stored in a JSON file at:
Permission review
The documentation asks the agent to create, modify, or delete local files.
*Never edit this file directly.** Always use `memento_cards.py` subcommands. The script handles atomic writes (write to temp file, then rename) to prevent corruption.The documentation asks the agent to run terminal commands or scripts.
python3 ~/.hermes/skills/productivity/memento-flashcards/scripts/memento_cards.py add \The documentation asks the agent to run terminal commands or scripts.
python3 ~/.hermes/skills/productivity/memento-flashcards/scripts/memento_cards.py dueEvidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 92/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 235,927 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Memento gives you a local, file-based flashcard system with spaced-repetition scheduling. Users can chat with their flashcards by answering in free text and having the agent grade the response before scheduling the next review. Use it whenever the user wants to:
All card data lives in a single JSON file. No external API keys are required — you (the agent) generate flashcard content and quiz questions directly.
User-facing response style for Memento Flashcards:
Use this skill when the user wants to:
Do not use this skill for general Q&A, coding help, or non-memory tasks.
| User intent | Action |
|---|---|
| "Remember that X" / "save this as a flashcard" | Generate a Q/A card, call memento_cards.py add |
| Sends a fact without mentioning flashcards | Ask "Want me to save this as a Memento flashcard?" — only create if confirmed |
| "Create a flashcard" | Ask for Q, A, collection; call memento_cards.py add |
| "Review my cards" | Call memento_cards.py due, present cards one-by-one |
| "Quiz me on [YouTube URL]" | Call youtube_quiz.py fetch VIDEO_ID, generate 5 questions, call memento_cards.py add-quiz |
| "Export my cards" | Call memento_cards.py export --output PATH |
| "Import cards from CSV" | Call memento_cards.py import --file PATH --collection NAME |
| "Show my stats" | Call memento_cards.py stats |
| "Delete a card" | Call memento_cards.py delete --id ID |
| "Delete a collection" | Call memento_cards.py delete-collection --collection NAME |
Cards are stored in a JSON file at:
~/.hermes/skills/productivity/memento-flashcards/data/cards.json
Never edit this file directly. Always use memento_cards.py subcommands. The script handles atomic writes (write to temp file, then rename) to prevent corruption.
The file is created automatically on first use.
Not every factual statement should become a flashcard. Use this three-tier check:
When activation is confirmed (tier 1 directly, tier 2 after confirmation), generate a flashcard:
Step 1: Turn the statement into a Q/A pair. Use this format internally:
Turn the factual statement into a front-back pair.
Return exactly two lines:
Q: <question text>
A: <answer text>
Statement: "{statement}"
Rules:
Step 2: Call the script to store the card:
python3 ~/.hermes/skills/productivity/memento-flashcards/scripts/memento_cards.py add \
--question "What year did World War 2 end?" \
--answer "1945" \
--collection "History"
If the user doesn't specify a collection, use "General" as the default.
The script outputs JSON confirming the created card.
When the user explicitly asks to create a flashcard, ask them for:
"General")Then call memento_cards.py add as above.
When the user wants to review, fetch all due cards:
python3 ~/.hermes/skills/productivity/memento-flashcards/scripts/memento_cards.py due
This returns a JSON array of cards where next_review_at <= now. If a collection filter is needed:
python3 ~/.hermes/skills/productivity/memento-flashcards/scripts/memento_cards.py due --collection "History"
Review flow (free-text grading):
Here is an example of the EXACT interaction pattern you must follow. The user answers, you grade them, tell them the correct answer, then rate the card.
Example interaction:
Agent: What year did the Berlin Wall fall?
User: 1991
Agent: Not quite. The Berlin Wall fell in 1989. Next review is tomorrow. (agent calls: memento_cards.py rate --id ABC --rating hard --user-answer "1991")
Next question: Who was the first person to walk on the moon?
The rules:
python3 ~/.hermes/skills/productivity/memento-flashcards/scripts/memento_cards.py rate \
--id CARD_ID --rating easy --user-answer "what the user said"
Never skip step 3. The user must always see the correct answer and feedback before you move on.
If no cards are due, tell the user: "No cards due for review right now. Check back later!"
Retire override: At any point the user can say "retire this card" to permanently remove it from reviews. Use --rating retire for this.
The rating determines the next review interval:
| Rating | Interval | ease_streak | Status change |
|---|---|---|---|
| hard | +1 day | reset to 0 | stays learning |
| good | +3 days | reset to 0 | stays learning |
| easy | +7 days | +1 | if ease_streak >= 3 → retired |
| retire | permanent | reset to 0 | → retired |
When the user sends a YouTube URL and wants a quiz:
Step 1: Extract the video ID from the URL (e.g. dQw4w9WgXcQ from https://www.youtube.com/watch?v=dQw4w9WgXcQ).
Step 2: Fetch the transcript:
python3 ~/.hermes/skills/productivity/memento-flashcards/scripts/youtube_quiz.py fetch VIDEO_ID
This returns {"title": "...", "transcript": "..."} or an error.
If the script reports missing_dependency, tell the user to install it:
pip install youtube-transcript-api
Step 3: Generate 5 quiz questions from the transcript. Use these rules:
You are creating a 5-question quiz for a podcast episode.
Return ONLY a JSON array with exactly 5 objects.
Each object must contain keys 'question' and 'answer'.
Selection criteria:
- Prioritize important, surprising, or foundational facts.
- Skip filler, obvious details, and facts that require heavy context.
- Never return true/false questions.
- Never ask only for a date.
Question rules:
- Each question must test exactly one discrete fact.
- Use clear, unambiguous wording.
- Prefer What, Who, How many, Which.
- Avoid open-ended Describe or Explain prompts.
Answer rules:
- Each answer must be under 240 characters.
- Lead with the answer itself, not preamble.
- Add only minimal clarifying detail if needed.
Use the first 15,000 characters of the transcript as context. Generate the questions yourself (you are the LLM).
Step 4: Validate the output is valid JSON with exactly 5 items, each having non-empty question and answer strings. If validation fails, retry once.
Step 5: Store quiz cards:
python3 ~/.hermes/skills/productivity/memento-flashcards/scripts/memento_cards.py add-quiz \
--video-id "VIDEO_ID" \
--questions '[{"question":"...","answer":"..."},...]' \
--collection "Quiz - Episode Title"
The script deduplicates by video_id — if cards for that video already exist, it skips creation and reports the existing cards.
Step 6: Present questions one-by-one using the same free-text grading flow:
python3 ~/.hermes/skills/productivity/memento-flashcards/scripts/memento_cards.py rate \
--id CARD_ID --rating easy --user-answer "what the user said"
Export:
python3 ~/.hermes/skills/productivity/memento-flashcards/scripts/memento_cards.py export \
--output ~/flashcards.csv
Produces a 3-column CSV: question,answer,collection (no header row).
Import:
python3 ~/.hermes/skills/productivity/memento-flashcards/scripts/memento_cards.py import \
--file ~/flashcards.csv \
--collection "Imported"
Reads a CSV with columns: question, answer, and optionally collection (column 3). If the collection column is missing, uses the --collection argument.
python3 ~/.hermes/skills/productivity/memento-flashcards/scripts/memento_cards.py stats
Returns JSON with:
total: total card countlearning: cards in active rotationretired: mastered cardsdue_now: cards due for review right nowcollections: breakdown by collection namecards.json directly — always use the script subcommands to avoid corruptionyoutube_quiz.py needs youtube-transcript-api; if missing, tell the user to run pip install youtube-transcript-apiyoutube.com/watch?v=ID and youtu.be/ID URL formatsVerify the helper scripts directly:
python3 ~/.hermes/skills/productivity/memento-flashcards/scripts/memento_cards.py stats
python3 ~/.hermes/skills/productivity/memento-flashcards/scripts/memento_cards.py add --question "Capital of France?" --answer "Paris" --collection "General"
python3 ~/.hermes/skills/productivity/memento-flashcards/scripts/memento_cards.py due
If you are testing from the repo checkout, run:
pytest tests/skills/test_memento_cards.py tests/skills/test_youtube_quiz.py -q
Agent-level verification:
Frequently asked questions
Spaced-repetition flashcards: create, review, quiz, export.
The source record exposes this install command: npx skills add https://github.com/NousResearch/hermes-agent --skill "optional-skills/productivity/memento-flashcards". Inspect the command and pinned source before running it.
Static rules flagged write-files, exec-script in the source; the page lists the matching lines and excerpts.
Alternatives
JasonColapietro/suede-creator-skills
Suede-owned experimentation discipline for hypotheses, sample sizing, test duration, significance, and repeatable experiment programs. Use when comparing variants, deciding whether a result is reliable, or building an experiment backlog and cadence. NOT FOR: analytics instrumentation (use suede-analytics), post-click conversion diagnosis (use suede-site-alchemy), or writing the variant copy itself (use suede-copy).
narrative-io/narrative-skills-marketplace
Translate a fuzzy analytical question into a rigorous investigation plan. Interrogates the ask, grounds the plan in the available data dictionary, applies analytical best practices, and produces a structured brief of query specifications for a downstream query-writing skill. Plans, does not write SQL. Use when: "why did X drop", "is there a relationship between A and B", "who are our highest-value customers", "what's driving the change in Y", "investigate this trend", "design an analysis for", "
K-Dense-AI/scientific-agent-skills
Distributed computing for larger-than-RAM pandas/NumPy workflows. Use when you need to scale existing pandas/NumPy code beyond memory or across clusters. Best for parallel file processing, distributed ML, integration with existing pandas code. For out-of-core analytics on single machine use vaex; for in-memory speed use polars.
synthetic-sciences/openscience
Computational analysis of pharmacology wet-lab experiments. Western blot densitometry, xenograft tumor growth inhibition, pharmaceutical stability modeling (Arrhenius), radiolabeled antibody biodistribution, MIRD dosimetry, and adverse event grading. For drug databases use chembl-database or fda-database; for molecular docking use diffdock.