Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/jamierumbelow-flashcards
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/flashcards
What's inside
- Skill name
flashcards- Description
- Flashcards → Mochi. Use when the user asks to add a flashcard, or when running the import to Mochi. Covers the callout format and the Mochi sync process.
- License
- MIT
- Instructions
- 177 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Files (1)
- SKILL.md
SKILL.md (first lines)
# Flashcards
Flashcards live in the Obsidian vault as callouts and get batch-imported into
Mochi. This skill covers both writing and importing them.
## Writing flashcards
Add flashcards to the `## Flashcards` section of the current daily note (or
whatever file the user specifies). Use this exact callout format:
```
> [!flashcard|Deck Name] - [ ]
> Question text
> ---
> Answer text
```
- **Deck name** goes after the pipe `|`. Ask the user which deck if you're
unsure. Common decks: Friends and Family, Geography, History, Science.
- `- [ ]` means not yet imported; `- [x]` means already synced to Mochi.
- Question and answer can span multiple lines — every line must start with `> `.
- `> ---` separates question from answer.
Do **not** use `question :: answer` syntax or any other format.
## Importing flashcards to Mochi
When the user asks to sync or import flashcards, run through these steps:
### 1. Get the Mochi API key
```bash
op read "op://Machine/secrets.zshrc/MOCHI_API_KEY"
```
If this fails, tell the user to check their 1Password setup and stop.
### 2. Find unmoved flashcards
Search all `.md` files under `~/workspace/vault/` for flashcard callouts where
the checkbox is `- [ ]`. Skip any marked `- [x]`.
Parse each callout:
- Deck name: text between `|` and `]`
- Question: lines between the header and `> ---`
- Answer: lines after `> ---` until the callout ends
Strip leading `> ` from content lines. Collect file paths and line numbers for
marking later.
### 3. Create cards in Mochi
Fetch existing decks:
```bash
curl -s -u "$MOCHI_API_KEY:" https://app.mochi.cards/api/decks/
```
For each flashcard:
1. **Match or create the deck** (case-insensitive). If the deck name is close
but not exact (e.g. "social" vs "Friends and Family"), ask the user. If
creating a new deck, confirm first:
```bash
curl -s -u "$MOCHI_API_KEY:" -X POST https://app.mochi.cards/api/decks/ \
-H "Content-Type: application/json" \
-d '{"name": "Deck Name"}'
```
2. **Create the card**:
```bash
curl -s -u "$MOCHI_API_KEY:" -X POST https://app.mochi.cards/api/cards/ \
-H "Content-Type: application/json" \
-d '{"content": "Question\n---\nAnswer", "deck-id": "deck_id_here"}'
```
Make API calls sequentially — Mochi enforces **one concurrent request per account**. Wait for each response before sending the next. Use 5-second gaps when doing bulk operations; use exponential backoff (starting at 5s) on 429.
### 3b. Cards with images
If a flashcard's question includes an Obsidian image embed (`![[filename.jpg]]`), the image must be uploaded as a Mochi attachment and the content reference updated. Do this **after** the card is created.
**Step 1 — Upload the attachment** (multipart form, one per card):
```bash
curl -s -u "$MOCHI_API_KEY:" \
-X POST "https://app.mochi.cards/api/cards/$CARD_ID/attachments/$SLUG" \
-F "file=@/path/to/image.jpg"
```
The `$SLUG` must match the regex `/[0-9a-zA-Z]{8,16}\.(jpg|jpeg|png)/` — generate a random 10-char alphanumeric string + extension. Example: `aB3kRt9mXq.jpg`.
**Step 2 — Update the card content** to reference the attachment:
```bash
curl -s -u "$MOCHI_API_KEY:" \
-X POST "https://app.mochi.cards/api/cards/$CARD_ID" \
-H "Content-Type: application/json" \
-d "{\"content\": \"\nQuestion text\n---\nAnswer\"}"
```
The `` syntax is how Mochi resolves card attachments in markdown. The update endpoint is `POST /api/cards/:id` (not PATCH or PUT — those return 404).
**Important gotchas discovered in practice:**
- The `attachments` key in the card create/update body is deprecated and returns 422 — always use the separate upload endpoint
- The rate limit error "Please wait for the previous request to finish" means a previous request is still processing server-side — wait 5+ seconds, not just until you receive a response
- If the upload succeeds but the content update fails, the attachment persists on the card — just re-run the content update step; no need to re-upload
- Slug filenames: 8–16 alphanumeric chars only (no hyphens or underscores), then the extension
**Python pattern for image cards:**
```python
import random, string, time, os, base64, urllib.request, json
def random_slug(ext, n=10):
chars = ''.join(random.choices(string.ascii_letters + string.digits, k=n))
return chars + ext
def upload_attachment(card_id, slug, file_path, api_key):From jamierumbelow/agentfiles, MIT.
More from jamierumbelow/agentfiles
- 0.565score
debuzz
jamierumbelow
Translate your previous response (or any pasted text) into plain, direct English by piping it through the local Antigravity CLI (agy), with audience modes…
SkillAFreshness: AClaude Code +9 - 0.524score
worklog
jamierumbelow
Append timestamped entries to Jamie's daily worklog in `~/workspace/vault/daily/`.
SkillBFreshness: BClaude Code +9 - 0.409score
ft
jamierumbelow
Search, browse, and manage X/Twitter bookmarks using the Field Theory CLI.
SkillDFreshness: DClaude Code +9 - 0.409score
cass
jamierumbelow
Search across all local coding agent history (Claude Code, Codex, Cursor, Gemini, Aider, and more) using cass.
SkillDFreshness: DClaude Code +9 - 0.409score
commit
jamierumbelow
Format git commit messages following project conventions.
SkillDFreshness: DClaude Code +9 - 0.406score
skill-review
jamierumbelow
Review and improve agentfiles (skills, commands, AGENTS.md, settings) using evidence from past sessions via cass.
SkillDFreshness: DClaude Code +9 - 0.406score
prose-review
jamierumbelow
Review a piece of writing against the vault STYLEGUIDE.
SkillDFreshness: DClaude Code +9 - 0.406score
research
jamierumbelow
Gather evidence, sources, data, and examples for a writing project.
SkillDFreshness: DClaude Code +9 - 0.406score
skill-gaps
jamierumbelow
Search recent sessions for recurring friction that suggests a skill is missing or an existing agentfile has a blind spot.
SkillDFreshness: DClaude Code +9 - 0.405score
vault
jamierumbelow
Guidelines for adding new pages and content to Jamie's Obsidian vault.
SkillDFreshness: DClaude Code +9 - 0.400score
readwise-cli
jamierumbelow
How to use the Readwise CLI — access highlights, documents, and your entire reading library from the command line
SkillDFreshness: DClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Mar 30, 2026 (7 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/jamierumbelow/agentfiles
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from jamierumbelow
- 0.565score
debuzz
jamierumbelow
Translate your previous response (or any pasted text) into plain, direct English by piping it through the local Antigravity CLI (agy), with audience modes…
SkillAFreshness: AClaude Code +9 - 0.524score
worklog
jamierumbelow
Append timestamped entries to Jamie's daily worklog in `~/workspace/vault/daily/`.
SkillBFreshness: BClaude Code +9 - 0.409score
ft
jamierumbelow
Search, browse, and manage X/Twitter bookmarks using the Field Theory CLI.
SkillDFreshness: DClaude Code +9 - 0.409score
cass
jamierumbelow
Search across all local coding agent history (Claude Code, Codex, Cursor, Gemini, Aider, and more) using cass.
SkillDFreshness: DClaude Code +9 - 0.409score
commit
jamierumbelow
Format git commit messages following project conventions.
SkillDFreshness: DClaude Code +9 - 0.406score
skill-review
jamierumbelow
Review and improve agentfiles (skills, commands, AGENTS.md, settings) using evidence from past sessions via cass.
SkillDFreshness: DClaude Code +9
Cite this page
flashcards skill. Agent Mart. https://agentmart.dev/skills/jamierumbelow-flashcards (last updated 2026-10-24)