A terminal garden game for learning Chinese and Vim.
⌠ ᴗ ◞ ⸦∙▓
<∙▓ '∙' <∘@ ░
⁑░▒▓╱ ░▒▓ᗕ ░░▒▓◸ ░▒▓▓◜
⸔⸔ ╯╯ ~ ~≈~~≈≈~ ᨓ
Robin Sparrow Duck Goose
知更鸟 麻雀 鸭子 鹅
Grow plants, talk to birds, learn characters. Huayuan is a quiet little game where you tend a garden using Vim keybindings while picking up Chinese vocabulary along the way. Plants start as sprouts and grow into hanzi -- cross-pollinate them to discover hybrids with increasingly complex characters. Birds visit your garden and quiz you in Mandarin.
◦ → 芽 → ⚜ → ❀ → 花 seed to flower
◦ → 芽 → ↟ → ♣ → 木 seed to tree
花 × 木 → 果 hybridize for new species
果 × _ → 桃 → ... → 蘭 keep going
It's a niche thing -- if you're learning both Vim and Chinese, or just want a calm terminal game with some character recognition practice, this might be for you.
npm install -g huayuan
huayuanOr run without installing:
npx huayuanOr clone and run from source:
git clone https://github.com/cixzhang/huayuan.git
cd huayuan
npm install
npm startRequires Node.js 18+ and a terminal that supports Unicode and 256 colors.
Movement and actions use Vim keybindings:
| Key | Action |
|---|---|
h j k l |
Move cursor |
w b |
Jump right / left |
space |
Use current tool |
tab |
Cycle tools (plant / water / harvest) |
s |
Switch seed type |
v |
Enter visual mode (select region) |
t |
Talk to a nearby bird |
? |
Help |
:w |
Save |
:q |
Quit |
- Plant -- place a seed on soil
- Water -- water the ground (plants need water to grow)
- Harvest -- collect seeds from mature plants
Plants progress through stages: seed ◦ → sprout 芽 → growing → flowering → hanzi.
Each species ends as a Chinese character -- grass becomes 草, flowers become 花,
trees become 木.
Place two different mature plants next to each other and harvest to get hybrid seeds.
There are 4 tiers of hybrids, culminating in the orchid 蘭.
| Hybrid | Parents | Character |
|---|---|---|
| fang (fragrant) | grass + flower | 芳 |
| miao (seedling) | grass + tree | 苗 |
| guo (fruit) | flower + tree | 果 |
| cha (tea) | fang + any | 茶 |
| zhu (bamboo) | miao + any | 竹 |
| tao (peach) | guo + any | 桃 |
| ju (chrysanthemum) | cha + any | 菊 |
| mei (plum blossom) | tao + any | 梅 |
| lan (orchid) | ju + any | 蘭 |
Four bird species visit your garden. Walk next to one and press t to
start a conversation -- they'll quiz you in Chinese (HSK 3 level).
Answer correctly to earn seeds.
When starting a new game, choose from three maps:
- Beach -- ocean shore with a river delta and sandy beach
- Lake -- large central lake with an island
- River -- winding river with a forest (the classic)
Use :terraform soil, :terraform sand, or :terraform river to change
terrain. In visual mode, select a region first then terraform to change
the whole area.
Settings are available from the title screen (press 2):
- Sound -- toggle ambient sounds and bird chirps
- Weather FX -- toggle rain/wind particle effects
- Pinyin -- show or hide pinyin in dialog answers
If you set the ANTHROPIC_API_KEY environment variable, you can generate
custom bird dialog at different HSK levels and topics from the settings menu.
All user data is stored in your home directory:
~/.huayuan-save.json-- game save~/.huayuan-settings.json-- settings~/.huayuan-dialog.json-- generated dialog (if any)
ISC


