Skip to main content

Python library for syncing flashcards with Anki

Project description

RememberIt

PyPI version Python versions License

Python library for syncing flashcards with Anki. Designed to be easily used by LLM Agents.

Don't just solve.it.com also RememberIt!

Create beautiful styled cards with syntax highlighting, gradient themes, and more.

Installation

pip install rememberit

Quick Start

import rememberit

# Login with your AnkiWeb credentials (first time only)
rememberit.login("email@example.com", "password")

# Sync and get your decks
decks = rememberit.sync()

# Create styled flashcards
deck_data = {
    "name": "Python Basics",
    "cards": [
        # Styled card (default) - random gradient theme
        {"front": "What is Python?", "back": "A programming language"},

        # Code answer with syntax highlighting
        {
            "front": "Write a function to add two numbers",
            "back": "def add(a, b):\n    return a + b",
            "back_type": "code",
        },

        # Styled question + code answer
        {
            "front": "How do you create a list comprehension?",
            "front_type": "card",
            "front_theme": "blue",
            "back": "[x**2 for x in range(10)]",
            "back_type": "code",
            "back_lang": "python",
        },
    ]
}
rememberit.upsert_deck(deck_data)

Card Schema

{
    "front": str | callable,      # Question text (or pass a function!)
    "back": str | callable,       # Answer text (or pass a function!)
    "front_type": str,            # "card" (default) | "code" | "plain"
    "back_type": str,             # "card" (default) | "code" | "plain"
    "front_lang": str,            # For code type (default: "python")
    "back_lang": str,
    "front_theme": str,           # For card type (default: "random")
    "back_theme": str,
    "tags": str,                  # Space-separated tags
}

Card Types

Type Description
card (default) Styled card with gradient background
code Syntax-highlighted code block
plain Plain text, no formatting

Card Themes

random (default), gradient, dark, light, blue, purple, green, orange

Supported Languages

python, javascript, typescript, html, css, sql, bash, shell, json, yaml, rust, go, java, c, cpp, swift, kotlin, ruby, php, r, scala, haskell, lua, perl, markdown

Core API

Function Description
login(email, password) Authenticate and save sync key
logout() Clear saved credentials
sync() Sync with AnkiWeb, return decks
decks() Return cached decks
create_deck(name) Create a new deck
delete_deck(deck) Delete by name/id/object
rename_deck(deck, new_name) Rename a deck
upsert_deck(data) Add/update cards from dict/JSON

Formatting

Function Description
format_code(code, lang) Format code with syntax highlighting
format_question(text, theme) Format text as styled card
extract_source(func) Extract source from function
parse_card_field(html) Parse HTML back to plain text + metadata

Templates

Custom templates are stored in ~/.rememberit/templates/

Function Description
show_templates() Display all templates with previews
save_template(name, html) Save custom template
get_template(name) Get template by name
export_builtin(name) Export builtin to custom dir

Utilities

Function Description
llmtxt() Show quickstart guide
help() Show API reference
examples.code() Preview code formatting
examples.questions() Preview card themes

Export Deck as JSON

# Get deck in upsert-compatible format
deck = rememberit.decks()["My Deck"]
deck.to_dict()  # Returns clean format with types parsed out
deck.json()     # Returns as JSON string

# Get raw HTML (old behavior)
deck.to_dict(raw=True)

Pass Functions Directly

def fibonacci(n):
    if n <= 1:
        return n
    return fibonacci(n-1) + fibonacci(n-2)

deck_data = {
    "name": "Code Examples",
    "cards": [
        {
            "front": "Fibonacci function",
            "back": fibonacci,  # Source extracted automatically!
        }
    ]
}
rememberit.upsert_deck(deck_data)

License

Apache-2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rememberit-0.1.7.tar.gz (44.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rememberit-0.1.7-py3-none-any.whl (31.5 kB view details)

Uploaded Python 3

File details

Details for the file rememberit-0.1.7.tar.gz.

File metadata

  • Download URL: rememberit-0.1.7.tar.gz
  • Upload date:
  • Size: 44.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rememberit-0.1.7.tar.gz
Algorithm Hash digest
SHA256 dec71ddf693bd11eee301a85299a58b6af0a5ec0d0b675b9f6f90dd36c7b00f7
MD5 a92156198c316d7cd9900582f8b7b024
BLAKE2b-256 d012341e0a58054757d2380456698abc65aa44965af7865fc9974e9508ef6c54

See more details on using hashes here.

File details

Details for the file rememberit-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: rememberit-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 31.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rememberit-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 0414498c5a351e688e44a5e2bab5f11c0832d5171a8ac6d2f8541f732c761aca
MD5 2d42d2e11f72e0c6294504af51c22ab1
BLAKE2b-256 005dfa780aa370444dd1ec9b54955bd51caa0fcfcc3c1b0564b33a553dc15e5a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page