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

Demo

A minute with Recall, no voiceover. Every sound is the interface: a question typed key by key, a chime for each rung of depth, a low knock when a submission fails.

Sound on. Best with headphones.

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.