Dany367 downloadsTurn Chinese notes into a learner-friendly comprehensible-input reading environment with dictionary-aware tokenization, exposure tracking, SRS, and optional AI-generated review stories.
| Desktop — reading view | Mobile — word lookup |
|---|---|
![]() |
![]() |
The same note rendered for reading. A runnable demo lives at resources/example.md.
Turn any Chinese note in Obsidian into a learner-friendly comprehensible-input reading environment. Dictionary-aware tokenization, exposure tracking, SRS, and optional OpenAI-compatible AI story generation. Works on desktop and mobile (no Node/Electron at runtime).
A quick visual walkthrough. The green numbers on each screenshot map to the lists
below; deeper explanations live in docs/.
A word's status drives its color and how much help is shown:
Left: the Formats menu (Bold, Italic, headings, quote, and nine highlight colors). Right: the red remove mode — tap a span to strip its formatting. Full details in Formatting & highlighting.
A sparse dictionary entry can be enriched by your configured AI provider.
Left → right, before and after tapping Enhance:
Tracked / known / partial counts and a comfort-HSK level; cumulative progress and per-HSK coverage over time; and Smart-story generation that weaves your due words into a level-appropriate story. See Spaced repetition and Story generation.
Learning a language should be enjoyable. Unfortunately, many learners experience the opposite: endless flashcards, grammar drills, vocabulary lists, and a constant feeling that progress is slow and difficult.
When I started learning Chinese, the biggest breakthrough was discovering Comprehensible Input.
The core idea is simple: instead of memorizing isolated words and grammar rules, you learn by consuming content that is just slightly above your current level. You acquire the language naturally through reading and listening, much like children learn their native language.
Tools such as DuChinese have shown how powerful this approach can be. Reading stories designed for your level is far more engaging than spending hours reviewing flashcards. For a long time, comprehensible input allowed me to progress while enjoying the process.
However, as your Chinese improves, a new problem appears.
At beginner and intermediate levels, common vocabulary appears frequently enough that repeated exposure naturally reinforces it. But as you advance, you start learning increasingly rare words. These words may only appear occasionally, making it difficult to retain them through reading alone. This is the point where many learners feel forced to return to flashcards and traditional spaced repetition systems.
The problem is that flashcards often break the flow and enjoyment of language learning. Instead of reading interesting content, you end up reviewing isolated vocabulary items again.
This plugin explores a different approach.
Instead of using flashcards, this plugin uses stories and meaningful content as the vehicle for spaced repetition.
With the help of AI, it becomes possible to generate or adapt content that naturally includes the vocabulary you need to review. Rather than seeing a word on a card, you encounter it inside a story, dialogue, article, or topic that interests you.
The goal is to combine the effectiveness of spaced repetition with the enjoyment of comprehensible input.
You can import Chinese texts that interest you, track your vocabulary knowledge, and receive content tailored to the words that need reinforcement. Learning becomes less about reviewing cards and more about reading Chinese every day.
Many Chinese reading tools provide pinyin and translations for every word. While helpful at first, this creates another problem: learners naturally rely on the easiest information available.
If English translations are always visible, your eyes drift toward English. If pinyin is always displayed, you start reading pinyin instead of recognizing characters.
As a result, character recognition develops more slowly than it should.
This plugin takes a different approach.
Words can be marked as:
Based on that knowledge, the plugin can selectively display characters, pinyin, or translations only where they are actually needed.
Words you already know remain visible as Chinese characters only, encouraging character recognition and reading fluency. Support is shown only for vocabulary that still requires assistance.
The result is a reading experience that provides help when necessary without constantly encouraging dependence on pinyin or translations.
Another important aspect of language learning is feedback.
Many learners have only a vague sense of their progress. They know they have studied for months or years, but they cannot easily quantify what they have learned.
By tracking vocabulary knowledge over time, this plugin provides measurable insights into your progress:
Seeing tangible progress can be highly motivating, especially during the long journey of learning Chinese. The goal is not only to make learning more effective, but also to help learners stay motivated by making their improvement visible.
The long-term vision of this project is simple:
Make Chinese learning feel more like reading and less like studying.
By combining comprehensible input, AI-generated content, vocabulary tracking, and story-based spaced repetition, this plugin aims to make language acquisition both effective and enjoyable—even beyond the intermediate stages where traditional comprehensible-input tools begin to struggle.
See NOTICE.md for license notes (CC-CEDICT, HSK).
Available in the official Obsidian community-plugin store: Settings → Community plugins → Browse → search Chinese Comprehensible Input → Install → Enable. To test the latest beta builds instead, install via BRAT. Full step-by-step guide (store, BRAT, or manual) in docs/install.md.
Detailed guides live in docs/. Each settings section also links to the relevant page from inside Obsidian. Highlights:
localhost from the phone points at the phone). See Ollama tips.npm install
npm run dev # watch build
npm run build # type-check + production bundle
npm test # vitest
npm run test:cov # coverage report + threshold enforcement
npm run check-release
GitHub Actions runs the same validation set on every PR and on pushes to main: build, tests, coverage, and the release guard. Actual BRAT publishing stays manual so the tagged release assets and notes are reviewed before going live.
Development policy:
fix/, feat/, release/.main through PRs after CI passes.See CONTRIBUTING.md for how to report bugs, suggest features, and open a PR (it's an issues-first project — please open an issue before a non-trivial PR).
To install the dev build into a vault:
npm run build.manifest.json, main.js, styles.css into <vault>/.obsidian/plugins/chinese-comprehensible-input/.A tiny seed dictionary is bundled for development. For real use, drop a CC-CEDICT shard at <vault>/.cci-dictionary.json (array of {simplified, traditional, pinyin, definitions, hsk?}). See NOTICE.md for license notes.
<vault>/.cci-dictionary.json.