← Files Liu CardsARCHIVED FILE

.codex-plugin/plugin.json

8.76 KB · Nov 3, 2026 · 19:09 UTC

↓ Download file

{
  "name": "liu-cards",
  "version": "1.0.2",
  "description": "Liu Cards is a flashcards app with spaced repetition. This plugin connects your assistant to your own Liu Cards deck, so you can build cards and study without leaving the conversation.\n\nWHAT YOU CAN DO\n\n- Turn a conversation into cards. Ask for flashcards on whatever you have just been discussing. Candidates are checked against your deck first, so you do not pile up duplicates.\n- Learn vocabulary properly. The server lays out a vocabulary card for you: the word with its pronunciation and part of speech on the front, and the meaning, an example sentence and its translation on the back. The word and the example are spoken aloud.\n- Review out loud. Ask to be quizzed, answer from memory, and every result is recorded. An FSRS scheduler decides when each card comes back, just before you would forget it.\n- See what you already know. Ask what you know about a subject and get back the related cards, each with a mastery label: new, learning, shaky or known.\n- Add pictures. Put a photo from the chat, or an image from the web, on either side of a card. A side with a picture needs no text, which suits \"who or what is this?\" cards.\n- Follow channels. Browse public collections of ready-made cards, save the ones you want into your own deck, or post to a channel you own.\n\nWHAT YOU NEED\n\nA Liu Cards account. You sign in and approve the connection on liucards.app, and you can disconnect it whenever you like. Cards you create are private to you unless you post them to a public channel.\n\nLiu Cards runs in any browser at liucards.app and as an app on iPhone and Android, so everything you make here is waiting for you wherever you study.",
  "author": {
    "name": "Code Suma"
  },
  "interface": {
    "capabilities": [],
    "category": "Education & Research",
    "defaultPrompt": [
      "Make Liu Cards flashcards for the new Dutch words in this conversation.",
      "Quiz me on the Liu Cards flashcards that are due today.",
      "What do I already know about Dutch food words in Liu Cards?"
    ],
    "developerName": "Code Suma",
    "displayName": "Liu Cards",
    "longDescription": "Liu Cards is a flashcards app with spaced repetition. This plugin connects your assistant to your own Liu Cards deck, so you can build cards and study without leaving the conversation.\n\nWHAT YOU CAN DO\n\n- Turn a conversation into cards. Ask for flashcards on whatever you have just been discussing. Candidates are checked against your deck first, so you do not pile up duplicates.\n- Learn vocabulary properly. The server lays out a vocabulary card for you: the word with its pronunciation and part of speech on the front, and the meaning, an example sentence and its translation on the back. The word and the example are spoken aloud.\n- Review out loud. Ask to be quizzed, answer from memory, and every result is recorded. An FSRS scheduler decides when each card comes back, just before you would forget it.\n- See what you already know. Ask what you know about a subject and get back the related cards, each with a mastery label: new, learning, shaky or known.\n- Add pictures. Put a photo from the chat, or an image from the web, on either side of a card. A side with a picture needs no text, which suits \"who or what is this?\" cards.\n- Follow channels. Browse public collections of ready-made cards, save the ones you want into your own deck, or post to a channel you own.\n\nWHAT YOU NEED\n\nA Liu Cards account. You sign in and approve the connection on liucards.app, and you can disconnect it whenever you like. Cards you create are private to you unless you post them to a public channel.\n\nLiu Cards runs in any browser at liucards.app and as an app on iPhone and Android, so everything you make here is waiting for you wherever you study.",
    "privacyPolicyURL": "https://liucards.app/privacy",
    "shortDescription": "Flashcards & spaced repetition",
    "supportURL": "https://liucards.app/support",
    "termsOfServiceURL": "https://liucards.app/terms",
    "websiteURL": "https://liucards.app",
    "logo": "./assets/icon.png",
    "composerIcon": "./assets/icon.png"
  },
  "extensions": {
    "com.openai": {
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "The user wants to know which Dutch words are already in their deck and how well they know each one, before deciding what to study.",
              "prompt": "What Dutch words am I learning in Liu Cards, and how well do I know them?",
              "tools_triggered": "get_knowledge",
              "expected_behavior": "The Dutch cards in the deck, such as de rekening, gezellig, lekker and de fiets, each with a mastery label: new, learning, shaky or known. Also the deck size and how many related cards carry each label. The numbers grow as cards are added and change as they are answered."
            },
            {
              "description": "The user asks to be quizzed. The assistant shows one card front, waits for an answer, reveals the back, and records the result so the card is rescheduled.",
              "prompt": "Quiz me on the Liu Cards flashcards that are due.",
              "tools_triggered": "get_cards_for_review, then submit_review once per answered card",
              "expected_behavior": "The cards due now, most overdue first, and how many are waiting in total. The assistant shows one front at a time and reveals the back after the answer. Each answer is saved and gives that card a new due date. If nothing is due, the assistant says so."
            },
            {
              "description": "The user asks for a flashcard for a word in the language they are learning. The server writes the layout and voices the word and the example sentence.",
              "prompt": "Add a Liu Cards vocabulary card for the Dutch word \"het raam\" (the window), with its pronunciation and an example sentence.",
              "tools_triggered": "create_vocabulary_card. On a repeat run the assistant may call check_cards first.",
              "expected_behavior": "One private card. Front: het raam, its pronunciation and part of speech. Back: the window, a Dutch example sentence and its English translation, with no labels. Audio on both sides. Run again, no copy is made, and the assistant says the card is already in the deck."
            },
            {
              "description": "Before creating cards, the user asks whether candidates are already in the deck, so they do not end up with duplicates.",
              "prompt": "Before I make any flashcards: are \"gezellig\" and \"de kaas\" already in my Liu Cards deck?",
              "tools_triggered": "check_cards",
              "expected_behavior": "One verdict per word. gezellig: in_deck, with the matching card and its mastery label. de kaas: new, with no matches. Nothing is created."
            },
            {
              "description": "The user looks for a card by a word it contains. The search runs in the database over the whole deck, so cards made long ago are found too.",
              "prompt": "Search my Liu Cards deck for the word \"fiets\".",
              "tools_triggered": "search_my_cards",
              "expected_behavior": "Every deck card with that text on the front or the back, newest first, each with its full front, back and mastery label. On the demo account that is one card: de fiets, the bicycle, with its example sentence and its translation."
            }
          ],
          "negative": [
            {
              "description": "A general question unrelated to studying. The assistant should answer from its own knowledge and leave the deck alone.",
              "prompt": "What is the weather in Amsterdam today?"
            },
            {
              "description": "The user asks about spaced repetition as a subject. Nothing in their deck needs reading or changing to answer it.",
              "prompt": "Explain how spaced repetition works and where the idea came from."
            },
            {
              "description": "The user wants a sentence translated and has not asked for a card. No card should be created and the deck should not be read.",
              "prompt": "Translate this sentence into Dutch: the window is open."
            }
          ]
        },
        "demo_recording_url": "https://kjwuyqdprfwdrxygmtmm.supabase.co/storage/v1/object/public/demo-media/chatgpt-plugin-demo-2026-09-20.mp4",
        "commerce": false
      },
      "publication": {
        "release_notes": "First release. Liu Cards now works from inside ChatGPT. Turn a conversation into flashcards, review the cards that are due with spaced repetition, add a picture or spoken pronunciation to a card, and follow public channels of ready-made decks. Your cards are the same ones the Liu Cards app shows on the web, iPhone and Android."
      }
    }
  },
  "apps": "./.app.json"
}

SHA-256: 9db4afcfd2b9726d8e1a4c2597ee8a97219cbd6ab2239ad1569f8b5ab74cb9dc