Free for life

Learn Español
without the effort...

Learn a new language where you already spend hours every day.The easiest and most enjoyable way there is.

I speak and I want to learn

Requires Claude Code and Node.js 18 or later. After installing, open a new conversation and type /sidenote:sidenote to choose a language.

$ claude plugin marketplace add YanivYosefi/sidenote-en $ claude plugin install sidenote@sidenote
Two lines, once. Runs on the subscription you already pay for.

Open source on GitHub ↗

Works in Claude Code app or terminal

How it works

  1. 1

    Paste two lines

  2. 2

    Pick a language and a level on the first run

  3. 3

    Carry on working as usual

Watch it happen

One ordinary conversation, start to finish. Nothing to install to see it.

  1. 1You type something
  2. 2Claude answers as usual
  3. 3One expression lands at the end
✳Claude Code

✳

What are you learning for?

Tick what fits.

Every one of these starts with one expression.Start →

Inside the conversation

No drilling boring flashcards

You learn from context, the way a conversation naturally works.

And any other language Claude knows.
✳Claude CodeEnglish → Español

I need to tell a customer her order is running late. Draft me something short.

✳Better to write before she asks. One line on the delay, a new date, and no long apology.
SIDENOTE
From the answer: “better to write before she asks” avisar con tiempo to let someone know in good time, while they can still plan. Le avisé con tiempo, antes de que preguntara.
✳Claude CodeEnglish → Français

I need to tell a customer her order is running late. Draft me something short.

✳Better to write before she asks. One line on the delay, a new date, and no long apology.
SIDENOTE
From the answer: “better to write before she asks” prévenir à l'avance to tell someone before they have to ask. Je l'ai prévenue à l'avance, avant qu'elle ne demande.
✳Claude CodeEnglish → Italiano

I need to tell a customer her order is running late. Draft me something short.

✳Better to write before she asks. One line on the delay, a new date, and no long apology.
SIDENOTE
From the answer: “better to write before she asks” avvisare per tempo to give word early enough for it to matter. L'ho avvisata per tempo, prima che lo chiedesse.
✳Claude CodeEnglish → Deutsch

I need to tell a customer her order is running late. Draft me something short.

✳Better to write before she asks. One line on the delay, a new date, and no long apology.
SIDENOTE
From the answer: “better to write before she asks” rechtzeitig Bescheid geben to give word early enough for it to still help. Ich habe ihr rechtzeitig Bescheid gegeben, bevor sie fragen musste.
✳Claude CodeEnglish → Português

I need to tell a customer her order is running late. Draft me something short.

✳Better to write before she asks. One line on the delay, a new date, and no long apology.
SIDENOTE
From the answer: “better to write before she asks” avisar com antecedência to say it ahead of time, not after the fact. Avisei-a com antecedência, antes que ela perguntasse.
✳Claude CodeEnglish → 日本語

I need to tell a customer her order is running late. Draft me something short.

✳Better to write before she asks. One line on the delay, a new date, and no long apology.
SIDENOTE
From the answer: “better to write before she asks” 前もって知らせる · maemotte shiraseru to tell someone ahead of time, before they ask. 彼女に聞かれる前に、前もって知らせておいた。

No account, no server

Your progress is stored on your machine

Sidenote has no external server or telemetry. Your profile and expressions retrieved for practice are shared with Claude as part of the conversation, under your Claude privacy settings.

~/.sidenote/state.json
{
  "target": "en",
  "level":  "B2",
  "learned": [
    { "expression": "to give someone a heads-up",
      "on": "2026-09-24" },
    { "expression": "to get it out of the way",
      "on": "2026-09-27" }
  ]
}

What you get

  • A new expression with each answerTied to what you just did
  • Remembers what you learnedNever teaches the same one twice
  • Any languageSpanish, French, Japanese and more
  • At your levelFrom A2 to C1
  • FreeOn the Claude plan you already have
  • Stays with youOne file, no account
Sidenote Browser extensions Flashcard apps
Where the words come fromThe answer you just readRandom words on whatever page you openedA list somebody else wrote
What you have to openNothing. It is already inside Claude CodeA browser, with the extension onThe app, every day
Where your progress livesOne file on your disk: ~/.sidenote/state.jsonTheir server, behind an accountTheir server, behind an account
What it costsNothing. It runs on the Claude subscription you already pay forFree, then a subscriptionA few dollars a month

You don't have to trust us. You can check.

An automated check verifies that the local server uses no network APIs, external dependencies or hooks.

  • One fileAbout 500 lines you can read
  • Zero dependenciesNo one else's libraries
  • No networkThe code never contacts a server
Privacy check CodeQL security scan

Or ask Claude to check it for you:

Read https://github.com/YanivYosefi/sidenote-en/blob/main/server/index.mjs and tell me whether it sends anything off my computer.

Fair questions

Does it slow me down?

No. The answer you asked for stays complete and comes first. The expression follows it, in one line.

Do I need an account?

None. No signup, no email, no personal URL. Install and start.

What does it cost?

Nothing. The plugin runs on the Claude subscription you already have.

Where is my progress stored?

In one file on your own machine, at ~/.sidenote/state.json. Sidenote has no external server or telemetry. Your profile and expressions retrieved for practice are shared with Claude as part of the conversation, under your Claude privacy settings.

Which languages?

Any language Claude knows. Spanish, French, Italian, German, Portuguese, Japanese, Hebrew, Arabic, Russian and more.

How do I remove it completely?

claude plugin uninstall sidenote, then delete the folder. That is all.

I stopped for a month. What happens?

Nothing is lost. The file stays where it is and the expressions wait. They do not pile up into a debt of two hundred reviews waiting for you on the day you come back. You pick up where you left off.

How do I get new expressions and improvements?

Turn on automatic updates: in Claude Code, type /plugin, open Marketplaces, pick sidenote and choose Enable auto-update. Or now and then: claude plugin update sidenote@sidenote.

Does this site measure anything?

Yes, the minimum. A plain counter adds one each time the page opens or the install command is copied. A number only, and no cookie. The plugin on your computer is a separate thing. Progress is stored locally; tool results are shared with Claude in the conversation.

Learn fast, without the effort

Two lines. Once.

$ claude plugin marketplace add YanivYosefi/sidenote-en $ claude plugin install sidenote@sidenote
Requires Claude Code. Works on macOS, Linux and Windows.