ilearnassist交互式学习助理
简体中文
GitHubDownload

Self-hosted · Your data stays yours · MIT

A study companion that teaches, quizzes, and remembers what confused you

It is not just another chat box. It draws up a study plan, teaches it one item at a time, checks whether you actually understood with multiple-choice questions, keeps track of your questions and notes, and lays all of that out in panels you can see. Everything lives in a folder you choose and is uploaded nowhere — except to the model provider you configure yourself.

or run it from source

  • Runs locally
  • Data never leaves your folder
  • Bring your own key
  • MIT licensed
This demo shows the Chinese interface.

Why it is different

A chat box answers questions. It is not responsible for whether you learned anything.

The problem with studying alongside a general-purpose chatbot is not that its answers are bad. It is that it has no concept of a lesson: it does not know where you are, does not check whether you understood, and cannot hold on to a question that occurred to you halfway through.

A general chat boxilearnassist
Study planNone — you decide what to learn and in what orderA numbered, multi-level plan you can tick off and jump around in
PaceDumps the whole subject on you at onceUsually one item per turn; it waits for you to continue
Any checking?If you say you understood, it believes youSets multiple-choice questions, grades them, names your misconceptions — without revealing the answer
Your questionsSink into the message stream, unrecoverableNotes carry a quote of the original passage and link back to it
Where the data isOn someone else’s serverIn the folder you picked on first launch

Features

Install it, paste one key, start learning

None of the below needs extra configuration. Pick a data folder on first launch, create an admin account, paste one model provider key — and all of it is available.

The “Guided Learning” assistant (built in)

A tutor that knows how to take things in order: it finds out what you want to learn, produces a numbered plan, walks through it item by item once you confirm, and sets multiple-choice questions after each point. It teaches in whatever language you write in.

Seven study widgets

Plan, Quiz, Threads, Notes, Figures, Insights and Resources, in the right-hand panel. They are not decoration — every step of the lesson writes into them, and you can go back at any time.

Ask about anything

Highlight a passage, or click a diagram, table, note or resource, and ask about it. The assistant reads that object as it is now, not as it was when it was written.

Define your own assistants

A persona prompt, a set of allowed tools and a set of default widgets make an assistant. Each conversation copies the definition when it starts, so editing an assistant later never disturbs conversations already underway.

Library and @ mentions

Upload PDF / Word / Excel / PPT / plain text, or keep web pages. Type @ in the composer to pick one as context for the turn — or @ an entire workspace.

Document parsing, offline

PDF and Office files are extracted to text locally, with no network. Scanned documents can optionally go through a cloud parser (MinerU, LlamaParse and similar), but that is a choice, not a requirement.

Web search and fetch

Bing and DuckDuckGo work with no key; Tavily and SearXNG are also supported. The assistant can keep a page it found useful as a resource, ready to cite later.

File preview

Highlighted code, Markdown, Mermaid diagrams, tables, images and PDF all render inside the app — no switching to another program.

Also

  • Multiple accounts, three permission tiers
  • Desktop control panel
  • Open it on your phone by QR over LAN
  • Token usage and cost ledger
  • Chinese and English interface
  • Light and dark themes

Seven widgets

The teaching process is visible

Most AI study tools hide the process inside the message stream. Each widget here maps to one part of a lesson, and fills itself in as the lesson proceeds.

  1. Plan

    A multi-level to-do list with tickable progress. See at a glance how far you are, and jump to any section.

  2. Quiz

    When the assistant sets questions, the cards are answerable in place; it grades and explains. Questions you missed or skipped can be retried.

  3. Threads

    Every turn is filed into a study thread automatically, so you can review by topic.

  4. Notes

    Write a note on any passage — or on a diagram, table or resource. Notes carry a quote of the original and link back to its position.

  5. Figures

    Structure diagrams and flowcharts the assistant draws, plus the tables it produces, collected in one place.

  6. Insights

    One click asks the assistant to review the whole session and report what it observed about your learning: sticking points, confusions, strengths.

  7. Resources

    Every file and web page this conversation has drawn on, at a glance.

The built-in assistant

How “Guided Learning” runs a lesson

It is a public assistant — every account can see and use it — and it has all seven widgets enabled.

Its register is deep, practical and best-practice oriented, not an introductory overview. The language is yours to pick: write in Chinese and it teaches in Chinese, write in English and it teaches in English — switch mid-course and the plan, the list, the questions and the summary all follow. On first use of a technical term it gives the original alongside the translation, to avoid the ambiguity translation introduces.

  1. You name a subject (or it helps you pin one down).
  2. It searches the web to confirm the current state of things, then produces a plan: background → one worked example to build a vision of the whole → a list of core items.
  3. After each item it sets a group of multiple-choice questions, waits for your answers, then grades them and explains — without revealing the answer itself.
  4. Once you have answered, it asks whether to continue. You say yes; it moves to the next item.
  5. You can interrupt with a question at any point, or skip an item by its number; it returns to the main line afterwards.
  6. When everything is covered it summarises, including the item list and the areas the process revealed as needing more work.

Privacy and self-hosting

Your data stays yours — and you can check

Anyone can say “local-first”. Here are the specifics, each of which you can verify by opening the folder.

The data is in the folder you chose

You pick the location on first launch (the panel suggests ~/ilearnassist). Inside: db/sqlite/ilearnassist.sqlite (the database), users/<name>/workspaces/ (workspaces and conversation files), users/<name>/sources/ (uploaded material).

The only outbound requests are to the model provider you configured

No account system, no telemetry, no phone-home. Apart from the one provider whose key you entered, the app initiates nothing — web searches happen only when you ask for them.

LAN sharing is off by default

The server listens on 127.0.0.1 only. Reaching it from a phone by QR code requires you to switch on a toggle in the control panel; once on, devices on the same network can see your workspaces, conversations and key configuration. That is why it ships off.

Uninstalling does not delete your data

The program and the data live in two places. Removing the app leaves your data folder untouched; to erase everything, delete that folder yourself.

A snapshot is taken before every upgrade

When the database schema changes, the app copies it to <data folder>/backups/ before upgrading, keeping the last five — because an upgrade that “succeeds” with the wrong result has no other way back.

You choose the model provider

DeepSeek, Zhipu GLM, Qwen, Kimi, MiniMax, OpenAI and Google Gemini are built in, and any OpenAI-compatible service works too (Ollama, LM Studio, vLLM, your own gateway). Changing providers does not mean changing tools.

Demos

Every part of the app, recorded

All six recordings below are real sessions — nothing is cut. Click to play.

From download to usable: pick a data folder, create an admin, open the app. That is the whole setup.This demo shows the Chinese interface.
A provider appears in the picker only after you paste its key.This demo shows the Chinese interface.
The study plan grows item by item, and each item ends with multiple-choice questions.This demo shows the Chinese interface.
Wrong answers are named plainly; notes link back to the passage they came from.This demo shows the Chinese interface.
Uploaded material can be pulled in with @, and the assistant reads it.This demo shows the Chinese interface.
The Figures and Threads panels collect what the conversation drew and discussed.This demo shows the Chinese interface.

Getting started

Four screens from download to first lesson

The installer is the recommended path. If you would rather not use one, the from-source route is below.

Download the installer

Installers are hosted on GitHub Releases. Pick the build for your system and install it as usual.

Go to the download page

First, the honest part: the builds are not code-signed

This project has not bought a code-signing certificate, so your system will stop you once. Nothing is wrong — the system simply does not recognise the developer.

  • macOS: right-click the app → Open → click “Open” again. Once only.
  • Windows: in the SmartScreen prompt, click “More info” → “Run anyway”.

Because there is no certificate, there is also no one-click auto-update — on macOS that requires a paid signature. All three platforms work the same way instead (download the new installer and install over the old one; your data lives in the data folder, which is untouched). That is more honest than a button that only works on two platforms.

Run from source

Requires Node.js ≥ 20 and pnpm ≥ 9.

Terminal
git clone https://github.com/waychan23/ilearnassist.git
cd ilearnassist
pnpm install

# 配置:数据目录 + 模型 Key
cp .env.example .env
# 编辑 .env,至少填一个 DEEPSEEK_API_KEY(或其他服务商的 Key)

# 全新的数据目录里没有管理员,先创建一个
pnpm --filter @ilearnassist/server cli create-admin --username <你的用户名> --generate

pnpm dev

First launch walks you through six steps

  1. Start the app; the control panel appears.
  2. Choose a data folder (it suggests ~/ilearnassist). This is where your database, workspaces and uploads will live.
  3. Create a superadmin: pick a username and password. Forgotten ones can be reset from the control panel.
  4. The server starts automatically. Click “Open app” and sign in.
  5. Paste one model API key (Platform console → Model services). Until you do, the model list is empty.
  6. Create a workspace → start a conversation → pick the “Guided Learning” assistant, and tell it what you want to learn.

If your firewall asks on first launch, allow the app to communicate on the local machine (127.0.0.1). Nothing is exposed by default.

Model providers

Use the one you already pay for

These are seeded on first launch; afterwards the Platform console is authoritative. Domestic and international endpoints are separate entries — the URLs and keys are not interchangeable — so pick whichever suits your network and paste one key.

  • DeepSeekapi.deepseek.com/v1
  • Zhipu GLMopen.bigmodel.cn/api/paas/v4
  • Qwendashscope.aliyuncs.com/compatible-mode/v1
  • Kimiapi.moonshot.cn/v1
  • MiniMaxapi.minimaxi.com/v1
  • OpenAIapi.openai.com/v1
  • Google Geminigenerativelanguage.googleapis.com/v1beta/openai/

Only configured providers are shown. A provider with no key never appears in the model picker — better than offering a provider that does nothing when you click it.

Any OpenAI-compatible service can be added by hand in the console: Ollama, LM Studio, vLLM, your own gateway…

FAQ

Things you might be wondering

Where is my data?

In the data folder you chose on first launch (the panel suggests ~/ilearnassist). The control panel shows you the path and has a button to open it in your file manager. Copying that folder is a complete backup.

I forgot my password.

Use “Reset admin password” in the desktop control panel. It does not need the server to be running — a forgotten password tends to be discovered alongside other problems, so recovery must not depend on a service that may itself be broken.

Why is the model list empty?

No API key has been entered. Configure one under Platform console → Model services and it appears in the model picker immediately.

Can I use it from my phone?

Yes. The control panel has a LAN sharing toggle that shows a QR code; scan it from a phone on the same Wi-Fi. Think before you switch it on: it exposes your workspaces, conversations and key configuration to other devices on the network. It is off by default.

Will uninstalling delete my data?

No. The program and the data live in two places; removing the app leaves your data folder alone. To erase everything, delete that folder yourself.

See all questions · Report an issue