Hints from the problems
you already solved.

Recall is a LeetCode tutor that refuses to give you the answer. It reads your own submission history once, builds a skill map from it, and anchors every hint to a problem you personally solved.

Add to Chrome — free

Panel preview

Real screens from the Chrome side panel. Open any problem on leetcode.com and Recall shows the problems in your own history that share its shape, then hints against them. It never hands you the solution.

The Recall side panel beside Burst Balloons: two anchor problems from the student's history, then a hint conversation.

You have solved this shape before

Two problems from your own history, with the dates you solved them and how many attempts each took.

The Recall popup: open panel button, the code-sharing toggle, hint language, version and sync rows, and delete my data.

The popup

Paste a token once. Code sharing is a toggle, off by default. Delete everything in one click.

Recall
for LeetCode
Build your map

Recall reads your LeetCode history once (6 to 8 minutes for a large account) to find the problems you already solved that relate to the one you are on.

Recall reads your public profile, your submission list and judge output (your code only while the popup toggle is on), stores them in the developer's database, and uses Gemini or Anthropic under paid API terms to word hints. No LeetCode cookies or passwords leave the browser. "Delete my data" in the popup wipes everything instantly. Your token is a password.

▸ Details and known limitations
Sync once
v1.0.0·sync: neverReport an issue

Consent first

What is read, where it goes and what is never touched, before anything is synced.

Recall
G1313 · 84 solved
Syncing your history
running
Sweeping your submissionsabout 4 min left
G1313 · 84 solved · 412 submissions
Uploading pages to Recall…
PauseCancel

Keep the LeetCode tab open and visible. You can close this panel; the sync resumes where it stopped.

v1.0.0·sync: neverReport an issue

Sync once, resume any time

Read from your own logged-in tab, one request per second. The cursor is durable: close the tab and pick up later.

Recall
Burst Balloons · Hard
You have solved this shape before.
Longest Palindromic Substring — solved 6 Jun 2026, 1 attempt.
Minimum Cost to Merge Stones — solved 17 Jul 2026, 3 attempts.
Both are DP problems.
— submitted: Wrong Answer · wa edge empty —
Your failing test is the smallest one: a single balloon. When both neighbours fall outside the array, what value does your code multiply by, and is it the value the problem tells you to assume?
●●● pinpoint
Last run failed on wa edge empty. Going at that.
Where are you stuck? (Enter to send)
Send

Depth you earn

Submit and fail, and the tutor jumps straight to diagnosing your real failing test. Never the fix.

Features

Anchored to your history

Every hint cites a problem you actually solved, with the date and the attempt count. Not "think about dynamic programming".

Depth you earn

Four rungs, from the shape of the problem in plain words down to blanked pseudocode. You cannot skip to the bottom.

Never the answer

A deterministic guard strips code below rung 4, drops citations you were not offered, and makes every reply end with a question.

Honest numbers

Attempt counts, patterns and recurring mistakes are computed from your stored submissions by ordinary code. The model only words the sentence.

Failure-aware

Submit and fail, and Recall jumps straight to diagnosing that failing test case. You should not have to ask twice.

Your data, your call

Code sharing is off by default and works without it. One click deletes everything Recall holds about you.

How it works

01

Connect

Sign in to the Friction web app, copy your token, and paste it into the popup once.

02

Sync once

Recall reads your solved list and submission history from inside your own browser session, one request per second.

03

Open a problem

The side panel shows the problems in your history that share the underlying idea, and why each one is related.

04

Ask when stuck

The hint is written against your history, your latest failed test case, and the code in your editor.

The hint ladder

Rung 1

Nudge

The shape of the problem in everyday words, plus one leading question. No technique, algorithm or data-structure names at all.

Open from the start.
Rung 2

From your history

Names the pattern family and maps it onto one problem you solved, but only as far as the state. No transition, no recurrence.

Unlocks when you say what you are thinking.
Rung 3

Pinpoint

A diagnosis of your actual failing test: the class of case, or the place the reasoning breaks. Never the fix.

Unlocks after you have submitted something.
Rung 4

The shape

One short pseudocode skeleton, at most twelve lines, with the key lines left blank for you to fill in.

You have to ask for this one.

The rung is decided by a pure function of stored facts and never by your message. A failed submission in the last thirty minutes raises the floor to diagnostic depth on its own.

Your data

Off by default

Sharing your source code is off until you turn it on, and Recall works without it: hints still come, anchors just cannot point at your own past code. Turning it off again deletes every stored code row immediately.

One destination

Your LeetCode password and cookies never leave the browser. The extension talks to exactly one server, with your token. Hints are generated under paid API terms and your data is not used to train models.

Delete my data in the popup removes every record Recall holds about you, history, skill model and hint conversations, in one action. Full detail in the privacy policy.

Tech stack

Manifest V3

Chrome 116+ side panel, a service worker, and MAIN plus ISOLATED content-script worlds

Node.js + Express

A standalone backend of routes, services and pure domain code

MySQL

Eleven lc_ tables in one additive migration, sharing Friction's database

Gemini / Anthropic

Two interchangeable providers behind one factory, JSON-schema output, one retry

Deterministic guard

Fourteen ordered rules on every reply: no code, no unoffered anchors, one question

116 sub-patterns

A hand-checked map across 20 problem families, verified live against leetcode.com

Jest

25 suites and 708 tests over the domain, guard, providers and routes

Railway

Deployed apart from Friction, with a health check and a cold-start banner in the panel

Architecture

leetcode.com tab
Extension
Recall API
MySQL
Live verdict capture, code only with consent
Durable retry queue, one-minute alarm
Anchors → rung → model → guard → one hint

Questions

Does Recall give you the answer?

No. You never get working code below level 4, and level 4 is just a skeleton with the important lines left blank. If any code slips through early it is stripped out before you see it. You do the solving.

How is Recall different from other LeetCode hint extensions?

Other extensions only see what is on your screen right now. Recall also reads your past submissions, so it can name a problem you already solved and connect it to this one. That is the difference.

How is this different from asking ChatGPT?

ChatGPT does not know what you have solved before, and it will give you the whole answer if you push. Recall ties each hint to a problem from your own history, and the four levels are enforced in code.

Does Recall work during LeetCode contests?

No. Recall switches itself off on contest pages. That is on purpose: helping during a rated contest would make this a cheating tool, and it is not one.

Is Recall free?

Yes, free from the Chrome Web Store. There is a daily cap on hints, because each one costs money to generate behind the scenes.

What data does Recall read?

Your LeetCode username, your solved list, and whether each submission passed or failed. Sharing your code is off by default. Your password and cookies never leave your browser, and one click deletes everything.

Start from your own history

Install it, open any problem on leetcode.com and sync once. A large account takes a few minutes, and you can leave and come back.

Desktop Chrome 116 or newer. Recall is an independent project and is not affiliated with, endorsed by, or sponsored by LeetCode.