1Passwordに保存したパスワードやAPIキーを、コマンド実行や設定テンプレートで使うためのスキル。CLIの導入、認証、秘密情報の取得・受け渡しを案内します。
- 1Password CLIの導入と設定
- 保存済みAPIキーでコマンド実行
- 設定テンプレートへの秘密情報の埋め込み
覚えたい事実を質問と答えのカードにし、回答に応じた間隔で復習できます。YouTube動画からのクイズ作成や、分野別の整理、CSVの入出力にも対応します。
Spaced-repetition flashcards: create, review, quiz, export.
覚えたい事実を質問と答えのカードに変え、復習日を管理します。自由な文章で答えると、エージェントが正解・一部正解・不正解を判定し、正しい答えと次の復習時期を伝えます。判定に応じて復習間隔は1日、3日、7日に分かれ、3回連続で容易に答えられたカードは復習対象から外れます。分野別のコレクション管理、CSVの入出力、学習状況の確認にも対応します。
学んだ事実を保存し、後日思い出せるか確かめたいときに向いています。YouTube動画の文字起こしから5問のクイズを作り、視聴した内容を復習用カードとして残す用途にも使えます。カードはローカルの単一JSONファイルに保存されます。
対応環境はmacosとlinuxで、terminalとPython 3を使います。外部APIキーは不要です。YouTubeクイズにはyoutube-transcript-apiが必要で、英語の文字起こしがない動画や、文字起こしが無効な動画では取得に失敗する場合があります。
この紹介文は、公開されている SKILL.md をもとに AI(Claude Haiku)が作成しました。正確な仕様は下の原文を確認してください。
インストールする前に、エージェントに与えられる指示の中身を確認できます。
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, use terminal with a PM-prepared
Hermes checkout to prepare the declared youtube extra, then reactivate:
python -c "import pm; pm.sync_venv(['youtube'], explicit=True)"
source ./activate
python -c "import youtube_transcript_api; print(youtube_transcript_api.__file__)"
Follow the isolated development-home setup in
Package Management
before preparation. Retry youtube_quiz.py with that Python and the actual
skill directory returned by skill_view. For a remote or sandbox terminal,
prepare an independent helper environment on that host. Never pip-install into
Hermes's selected environment.
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; use the PM preparation and interpreter check above if missing.youtube.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:
scripts/run_tests.sh tests/skills/test_memento_cards.py tests/skills/test_youtube_quiz.py -q
Agent-level verification:
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
1Passwordに保存したパスワードやAPIキーを、コマンド実行や設定テンプレートで使うためのスキル。CLIの導入、認証、秘密情報の取得・受け渡しを案内します。
損益計算書・貸借対照表・キャッシュフロー計算書を数式で連動させるExcelモデルを作ります。実績と予測の入力、前提を変えた比較、財務三表の整合性確認を段階的に進めます。
Run PyTorch training across GPUs with minimal changes.
日本語の概要は準備中です。原文の説明を表示しています。
Set up Actual Computer (actual.inc) inference in Hermes.
日本語の概要は準備中です。原文の説明を表示しています。
技術が苦手で不満を抱きやすい利用者になりきってアプリを試し、操作の分かりにくさや離脱の原因を発見。実際の改善課題と個人的な不満を分け、修正案をまとめます。
2つのエージェントが別々に加えた変更のGit競合を、双方の差分と意図から中立的に解決。競合箇所ごとの判断理由を記録し、ビルドやテストで統合結果を確認します。