Legal

Open source in MOVO

Updated 15 October 2026 · built from MOVO app commit 36b9792e36e5

MOVO Kids includes games written by other people and shared under open-source licences. Each one runs on its own inside the app, in a sealed view built with no network access and no way to reach your account or anything else on your phone.

For every game we list who made it, its licence, the exact upstream version we started from and every change we made. Each download is the complete source of the game as it is inside the app: the original files, our changed copies, the small piece of code that connects it to MOVO, the tool that packs it, the licence texts, and the packed file itself, so you can study it, change it and rebuild it.

Your rights

You may use, study, change and share these games under the terms of their licences, linked with each game below. The licences come with no warranty. This page covers the games inside MOVO Kids. Each game is a separate program that talks to the rest of the app only through messages.

Each download rebuilds the file in the app exactly. Unpack it and run node kids-games/tools/pack.mjs with Node 22, with nothing to install; BUILD.md inside says what each part is. We check this for every download before we publish it.

Every build of a game we ship gets its own download, and a newer build never replaces an older one: earlier downloads stay listed under each game. We keep each one for as long as we distribute a MOVO app that contains that build, and for at least three years after. To ask for the source another way, write to legal@movochat.com.

Memory

GPL-3.0-onlyCopyleft

By KhaaL (LibreToybox) · Brain & Puzzles · ages 4–8

Upstream
https://github.com/KhaaL/LibreToybox memory/
Upstream commit
8aef0e098010c0a95b0bebe291386aa4f9b849e5
Notice
Memory, from LibreToybox by KhaaL. Licensed under the GNU General Public License, version 3 (the repository's LICENSE; package.json: GPL-3.0; no "or any later version" grant, so MOVO treats it as GPL-3.0-only). Modified by MOVO (movochat.com), 2026-10-14. MOVO's changes and adapter are GPL-3.0-only too.
Licence
In MOVO
Version 1.0.0; the file in the app is 59 KB, sha256 9254bc958df96afb21bb3a27f63ad01c17f172d381e31c9243e90f19c7c048bb

What MOVO changed

MOVO's changes to Memory

Upstream: https://github.com/KhaaL/LibreToybox at commit 8aef0e098010c0a95b0bebe291386aa4f9b849e5 (memory/). Licence: GPL-3.0-only. MOVO's changes and additions to this game are under the same licence. Complete source, including these changes: https://movochat.com/open-source#memory

2026-10-14, MOVO (movochat.com)

  • Removed the service-worker registration and the web-app manifest link: the game ships inside the MOVO app and works offline without them.
  • Removed the "Tutorial coming soon!" placeholder; its button is hidden by movo.css because MOVO's own screen shows How to play in the child's language.
  • adapter.js: the home buttons ask MOVO to leave the game (EXIT_REQUEST) instead of opening the LibreToybox home page; the win screen tells MOVO the game was won (GAME_OVER).
  • The page's words are shown in the child's language (MOVO's translations in game.json, applied by the MOVO shim).

Files

  • movo/memory/index.html: modified copy of the upstream file, marked "Modified by MOVO (movochat.com), 2026-10-14 - see MOVO-CHANGES.md".
  • adapter.js: added by MOVO (the bridge glue between the game and MOVO), under the game's licence.
  • movo.css: added by MOVO (layout for a phone held upright), under the game's licence.
  • upstream/: the upstream files, byte for byte, at the commit above. upstream.tree.json lists the git blob id of each one as the upstream repository's tree has it, to check them against that commit.

The bundle MOVO ships is built from these files by kids-games/tools/pack.mjs (MIT), which inlines them into one page with the MOVO bridge shim (kids-games/tools/shim/movo-bridge.js, MIT).

Files MOVO modified (1)

In the download, under kids-games/games/memory/:

  • movo/memory/index.html
Download complete source (.tar.gz)

111 KB · sha256 ccff03010ed350086d6fba07439080875abe540d0c02d2339c72af6058a45eb4

Built from MOVO app commit 36b9792e36e5 (15 October 2026).

Earlier downloads (1)

The source of builds of this game that earlier MOVO apps shipped, kept as published.

  • memory-1.0.0-ed6f6e0b039d-source.tar.gz
    Version 1.0.0 · the file in the app had sha256 ed6f6e0b039d… · built from app commit ca7d9ef9da67 (14 October 2026) · 110 KB
    sha256 649872fc178f941f36cae8e1eb317c3f349430f9f72a97ccd6ebe22b15c7c9ff

Spot It!

GPL-3.0-onlyCopyleft

By KhaaL (LibreToybox) · Brain & Puzzles · ages 4–8

Upstream
https://github.com/KhaaL/LibreToybox odd-one-out/
Upstream commit
8aef0e098010c0a95b0bebe291386aa4f9b849e5
Notice
Spot It! (odd-one-out), from LibreToybox by KhaaL. Licensed under the GNU General Public License, version 3 (the repository's LICENSE; package.json: GPL-3.0; no "or any later version" grant, so MOVO treats it as GPL-3.0-only). Modified by MOVO (movochat.com), 2026-10-14. MOVO's changes and adapter are GPL-3.0-only too.
Licence
In MOVO
Version 1.0.0; the file in the app is 66 KB, sha256 66c937d0dd9abedfe67951672f85f5cc359bfafe32d7c65b67e9ec236f233bda

What MOVO changed

MOVO's changes to Spot It!

Upstream: https://github.com/KhaaL/LibreToybox at commit 8aef0e098010c0a95b0bebe291386aa4f9b849e5 (odd-one-out/). Licence: GPL-3.0-only. MOVO's changes and additions to this game are under the same licence. Complete source, including these changes: https://movochat.com/open-source#odd-one-out

2026-10-14, MOVO (movochat.com)

  • Removed the service-worker registration and the web-app manifest link: the game ships inside the MOVO app and works offline without them.
  • Removed the "Tutorial coming soon!" placeholder; its button is hidden by movo.css because MOVO's own screen shows How to play in the child's language.
  • adapter.js: the home buttons ask MOVO to leave the game (EXIT_REQUEST) instead of opening the LibreToybox home page; the win screen tells MOVO the game was won (GAME_OVER).
  • The page's words are shown in the child's language (MOVO's translations in game.json, applied by the MOVO shim).
  • Kids emoji filter (MOVO's rule for children: no pork, alcohol, innuendo, religious symbols or weapons): removed 🐷 U+1F437, 🍑 U+1F351, 🍆 U+1F346 from GROUPS and SUBGROUPS. Every group still has at least 8 members.

Files

  • movo/odd-one-out/index.html: modified copy of the upstream file, marked "Modified by MOVO (movochat.com), 2026-10-14 - see MOVO-CHANGES.md".
  • adapter.js: added by MOVO (the bridge glue between the game and MOVO), under the game's licence.
  • movo.css: added by MOVO (layout for a phone held upright), under the game's licence.
  • upstream/: the upstream files, byte for byte, at the commit above. upstream.tree.json lists the git blob id of each one as the upstream repository's tree has it, to check them against that commit.

The bundle MOVO ships is built from these files by kids-games/tools/pack.mjs (MIT), which inlines them into one page with the MOVO bridge shim (kids-games/tools/shim/movo-bridge.js, MIT).

Files MOVO modified (1)

In the download, under kids-games/games/odd-one-out/:

  • movo/odd-one-out/index.html
Download complete source (.tar.gz)

120 KB · sha256 da9eb0a6388c9235fb89579ee9408eb39c2664f0ea3939cfca0fc519aaaa7239

Built from MOVO app commit 36b9792e36e5 (15 October 2026).

Earlier downloads (1)

The source of builds of this game that earlier MOVO apps shipped, kept as published.

  • odd-one-out-1.0.0-6f481130b81c-source.tar.gz
    Version 1.0.0 · the file in the app had sha256 6f481130b81c… · built from app commit ca7d9ef9da67 (14 October 2026) · 120 KB
    sha256 df9f8e9a1ef3e4149e39a8a270ab2dcc08eed102d9ddbb0ae4f6c6f447745722

What's Next?

GPL-3.0-onlyCopyleft

By KhaaL (LibreToybox) · Learning Adventures · ages 5–8

Upstream
https://github.com/KhaaL/LibreToybox guess-next-sequence/
Upstream commit
8aef0e098010c0a95b0bebe291386aa4f9b849e5
Notice
What's Next? (guess-next-sequence), from LibreToybox by KhaaL. Licensed under the GNU General Public License, version 3 (the repository's LICENSE; package.json: GPL-3.0; no "or any later version" grant, so MOVO treats it as GPL-3.0-only). Modified by MOVO (movochat.com), 2026-10-14. MOVO's changes and adapter are GPL-3.0-only too.
Licence
In MOVO
Version 1.0.0; the file in the app is 88 KB, sha256 dba0acafaeaef10dbf0bf433fc3a8b48ff37873182ce76c158fef35b6562ff83

What MOVO changed

MOVO's changes to What's Next?

Upstream: https://github.com/KhaaL/LibreToybox at commit 8aef0e098010c0a95b0bebe291386aa4f9b849e5 (guess-next-sequence/). Licence: GPL-3.0-only. MOVO's changes and additions to this game are under the same licence. Complete source, including these changes: https://movochat.com/open-source#whats-next

2026-10-14, MOVO (movochat.com)

  • Removed the service-worker registration and the web-app manifest link: the game ships inside the MOVO app and works offline without them.
  • Removed the "Tutorial coming soon!" placeholder; its button is hidden by movo.css because MOVO's own screen shows How to play in the child's language.
  • adapter.js: the home buttons ask MOVO to leave the game (EXIT_REQUEST) instead of opening the LibreToybox home page; the win screen tells MOVO the game was won (GAME_OVER).
  • The page's words are shown in the child's language (MOVO's translations in game.json, applied by the MOVO shim).

Files

  • movo/guess-next-sequence/index.html: modified copy of the upstream file, marked "Modified by MOVO (movochat.com), 2026-10-14 - see MOVO-CHANGES.md".
  • adapter.js: added by MOVO (the bridge glue between the game and MOVO), under the game's licence.
  • movo.css: added by MOVO (layout for a phone held upright), under the game's licence.
  • upstream/: the upstream files, byte for byte, at the commit above. upstream.tree.json lists the git blob id of each one as the upstream repository's tree has it, to check them against that commit.

The bundle MOVO ships is built from these files by kids-games/tools/pack.mjs (MIT), which inlines them into one page with the MOVO bridge shim (kids-games/tools/shim/movo-bridge.js, MIT).

Files MOVO modified (1)

In the download, under kids-games/games/whats-next/:

  • movo/guess-next-sequence/index.html
Download complete source (.tar.gz)

140 KB · sha256 e40fb7ddae41560b8c74c768704bf902872ab2f781bdbb774cf6dd6308ffd640

Built from MOVO app commit 36b9792e36e5 (15 October 2026).

Earlier downloads (1)

The source of builds of this game that earlier MOVO apps shipped, kept as published.

  • whats-next-1.0.0-c0e1ee0ee1b7-source.tar.gz
    Version 1.0.0 · the file in the app had sha256 c0e1ee0ee1b7… · built from app commit ca7d9ef9da67 (14 October 2026) · 139 KB
    sha256 94ac715d75c6163e208e28a935ee5af8e8d374c80ea372db62fc8b87fff2dd3a

Mini Sudoku

GPL-3.0-onlyCopyleft

By KhaaL (LibreToybox) · Brain & Puzzles · ages 6–12

Upstream
https://github.com/KhaaL/LibreToybox sudoku-for-minis/
Upstream commit
8aef0e098010c0a95b0bebe291386aa4f9b849e5
Notice
Mini Sudoku (sudoku-for-minis), from LibreToybox by KhaaL. Licensed under the GNU General Public License, version 3 (the repository's LICENSE; package.json: GPL-3.0; no "or any later version" grant, so MOVO treats it as GPL-3.0-only). Modified by MOVO (movochat.com), 2026-10-14. MOVO's changes and adapter are GPL-3.0-only too.
Licence
In MOVO
Version 1.0.0; the file in the app is 81 KB, sha256 d048c30c226d27ef6d87ea535794246188236fe414a172e9af362a5803469a37

What MOVO changed

MOVO's changes to Mini Sudoku

Upstream: https://github.com/KhaaL/LibreToybox at commit 8aef0e098010c0a95b0bebe291386aa4f9b849e5 (sudoku-for-minis/). Licence: GPL-3.0-only. MOVO's changes and additions to this game are under the same licence. Complete source, including these changes: https://movochat.com/open-source#mini-sudoku

2026-10-14, MOVO (movochat.com)

  • Removed the service-worker registration and the web-app manifest link: the game ships inside the MOVO app and works offline without them.
  • Removed the "Tutorial coming soon!" placeholder; its button is hidden by movo.css because MOVO's own screen shows How to play in the child's language.
  • adapter.js: the home buttons ask MOVO to leave the game (EXIT_REQUEST) instead of opening the LibreToybox home page; the win screen tells MOVO the game was won (GAME_OVER).
  • The page's words are shown in the child's language (MOVO's translations in game.json, applied by the MOVO shim).

Files

  • movo/sudoku-for-minis/index.html: modified copy of the upstream file, marked "Modified by MOVO (movochat.com), 2026-10-14 - see MOVO-CHANGES.md".
  • adapter.js: added by MOVO (the bridge glue between the game and MOVO), under the game's licence.
  • movo.css: added by MOVO (layout for a phone held upright), under the game's licence.
  • upstream/: the upstream files, byte for byte, at the commit above. upstream.tree.json lists the git blob id of each one as the upstream repository's tree has it, to check them against that commit.

The bundle MOVO ships is built from these files by kids-games/tools/pack.mjs (MIT), which inlines them into one page with the MOVO bridge shim (kids-games/tools/shim/movo-bridge.js, MIT).

Files MOVO modified (1)

In the download, under kids-games/games/mini-sudoku/:

  • movo/sudoku-for-minis/index.html
Download complete source (.tar.gz)

126 KB · sha256 d6441b05739306c206796d2fb02758d67b1de099fefe3967461f0e74b897ef47

Built from MOVO app commit 36b9792e36e5 (15 October 2026).

Earlier downloads (1)

The source of builds of this game that earlier MOVO apps shipped, kept as published.

  • mini-sudoku-1.0.0-98926a95b675-source.tar.gz
    Version 1.0.0 · the file in the app had sha256 98926a95b675… · built from app commit ca7d9ef9da67 (14 October 2026) · 126 KB
    sha256 1de5587bfde76916623a4a3f6ba75bf35ef6f67fa2978e69ae0bef6ebd5f7871

Fit It!

GPL-3.0-onlyCopyleft

By KhaaL (LibreToybox) · Brain & Puzzles · ages 4–8

Upstream
https://github.com/KhaaL/LibreToybox shape-fit/
Upstream commit
8aef0e098010c0a95b0bebe291386aa4f9b849e5
Notice
Fit It! (shape-fit), from LibreToybox by KhaaL. Licensed under the GNU General Public License, version 3 (the repository's LICENSE; package.json: GPL-3.0; no "or any later version" grant, so MOVO treats it as GPL-3.0-only). Modified by MOVO (movochat.com), 2026-10-14. MOVO's changes and adapter are GPL-3.0-only too.
Licence
In MOVO
Version 1.0.0; the file in the app is 83 KB, sha256 0cb52b68a138c5ceb28d954222471c568d0ea06e439a9c1eb7b06ec56beef8c9

What MOVO changed

MOVO's changes to Fit It!

Upstream: https://github.com/KhaaL/LibreToybox at commit 8aef0e098010c0a95b0bebe291386aa4f9b849e5 (shape-fit/). Licence: GPL-3.0-only. MOVO's changes and additions to this game are under the same licence. Complete source, including these changes: https://movochat.com/open-source#fit-it

2026-10-14, MOVO (movochat.com)

  • Removed the service-worker registration and the web-app manifest link: the game ships inside the MOVO app and works offline without them.
  • Removed the "Tutorial coming soon!" placeholder; its button is hidden by movo.css because MOVO's own screen shows How to play in the child's language.
  • adapter.js: the home buttons ask MOVO to leave the game (EXIT_REQUEST) instead of opening the LibreToybox home page; the win screen tells MOVO the game was won (GAME_OVER).
  • The page's words are shown in the child's language (MOVO's translations in game.json, applied by the MOVO shim).

Files

  • movo/shape-fit/index.html: modified copy of the upstream file, marked "Modified by MOVO (movochat.com), 2026-10-14 - see MOVO-CHANGES.md".
  • adapter.js: added by MOVO (the bridge glue between the game and MOVO), under the game's licence.
  • movo.css: added by MOVO (layout for a phone held upright), under the game's licence.
  • upstream/: the upstream files, byte for byte, at the commit above. upstream.tree.json lists the git blob id of each one as the upstream repository's tree has it, to check them against that commit.

The bundle MOVO ships is built from these files by kids-games/tools/pack.mjs (MIT), which inlines them into one page with the MOVO bridge shim (kids-games/tools/shim/movo-bridge.js, MIT).

Files MOVO modified (1)

In the download, under kids-games/games/fit-it/:

  • movo/shape-fit/index.html
Download complete source (.tar.gz)

131 KB · sha256 6d150f2064717b833de892739c56fc900de0c74fdb0fff4ceea60ad7e2ff8592

Built from MOVO app commit 36b9792e36e5 (15 October 2026).

Earlier downloads (1)

The source of builds of this game that earlier MOVO apps shipped, kept as published.

  • fit-it-1.0.0-395d6e3970ad-source.tar.gz
    Version 1.0.0 · the file in the app had sha256 395d6e3970ad… · built from app commit ca7d9ef9da67 (14 October 2026) · 130 KB
    sha256 8cc974d01504d1cb2ab48aca251350a38c3fd901ad3f248233ebe0b456614722

Math Fun

GPL-3.0-onlyCopyleft

By KhaaL (LibreToybox) · Learning Adventures · ages 6–8

Upstream
https://github.com/KhaaL/LibreToybox grocery-cashier/
Upstream commit
8aef0e098010c0a95b0bebe291386aa4f9b849e5
Notice
Math Fun (grocery-cashier, titled "Math fun"), from LibreToybox by KhaaL. Licensed under the GNU General Public License, version 3 (the repository's LICENSE; package.json: GPL-3.0; no "or any later version" grant, so MOVO treats it as GPL-3.0-only). Modified by MOVO (movochat.com), 2026-10-14. MOVO's changes and adapter are GPL-3.0-only too.
Licence
In MOVO
Version 1.0.0; the file in the app is 72 KB, sha256 7fe777c494a38326d29a5a02add9f31149130f00c098df95b37aa79536d6e1ce

What MOVO changed

MOVO's changes to Math Fun

Upstream: https://github.com/KhaaL/LibreToybox at commit 8aef0e098010c0a95b0bebe291386aa4f9b849e5 (grocery-cashier/). Licence: GPL-3.0-only. MOVO's changes and additions to this game are under the same licence. Complete source, including these changes: https://movochat.com/open-source#math-fun

2026-10-14, MOVO (movochat.com)

  • Removed the service-worker registration and the web-app manifest link: the game ships inside the MOVO app and works offline without them.
  • Removed the "Tutorial coming soon!" placeholder; its button is hidden by movo.css because MOVO's own screen shows How to play in the child's language.
  • adapter.js: the home buttons ask MOVO to leave the game (EXIT_REQUEST) instead of opening the LibreToybox home page; the win screen tells MOVO the game was won (GAME_OVER).
  • The page's words are shown in the child's language (MOVO's translations in game.json, applied by the MOVO shim).

Files

  • movo/grocery-cashier/index.html: modified copy of the upstream file, marked "Modified by MOVO (movochat.com), 2026-10-14 - see MOVO-CHANGES.md".
  • adapter.js: added by MOVO (the bridge glue between the game and MOVO), under the game's licence.
  • movo.css: added by MOVO (layout for a phone held upright), under the game's licence.
  • upstream/: the upstream files, byte for byte, at the commit above. upstream.tree.json lists the git blob id of each one as the upstream repository's tree has it, to check them against that commit.

The bundle MOVO ships is built from these files by kids-games/tools/pack.mjs (MIT), which inlines them into one page with the MOVO bridge shim (kids-games/tools/shim/movo-bridge.js, MIT).

Files MOVO modified (1)

In the download, under kids-games/games/math-fun/:

  • movo/grocery-cashier/index.html
Download complete source (.tar.gz)

123 KB · sha256 9baad78f3d19d15d272c751f19a179a340047160dda18ab81e2ba7e52c267bb0

Built from MOVO app commit 36b9792e36e5 (15 October 2026).

Earlier downloads (1)

The source of builds of this game that earlier MOVO apps shipped, kept as published.

  • math-fun-1.0.0-42b6d0e704ca-source.tar.gz
    Version 1.0.0 · the file in the app had sha256 42b6d0e704ca… · built from app commit ca7d9ef9da67 (14 October 2026) · 122 KB
    sha256 7257a446638b97699380212e5d2f346604b828ae499d512758cec801ca955852

Emoji Art

GPL-3.0-onlyCopyleft

By KhaaL (LibreToybox) · Creative & Building · ages 4–8

Upstream
https://github.com/KhaaL/LibreToybox emoji-paint/
Upstream commit
8aef0e098010c0a95b0bebe291386aa4f9b849e5
Notice
Emoji Art (emoji-paint), from LibreToybox by KhaaL. Licensed under the GNU General Public License, version 3 (the repository's LICENSE; package.json: GPL-3.0; no "or any later version" grant, so MOVO treats it as GPL-3.0-only). Modified by MOVO (movochat.com), 2026-10-14. MOVO's changes and adapter are GPL-3.0-only too.
Licence
In MOVO
Version 1.0.0; the file in the app is 104 KB, sha256 6b0585ee122c3e767ce7eb432c41198f8f3d48ac009868971002960577467118

What MOVO changed

MOVO's changes to Emoji Art

Upstream: https://github.com/KhaaL/LibreToybox at commit 8aef0e098010c0a95b0bebe291386aa4f9b849e5 (emoji-paint/). Licence: GPL-3.0-only. MOVO's changes and additions to this game are under the same licence. Complete source, including these changes: https://movochat.com/open-source#emoji-art

2026-10-14, MOVO (movochat.com)

  • Removed the service-worker registration and the web-app manifest link: the game ships inside the MOVO app and works offline without them.
  • Removed the "Tutorial coming soon!" placeholder; its button is hidden by movo.css because MOVO's own screen shows How to play in the child's language.
  • Removed sharing: the Share button, the share link written into the page address, navigator.share, the clipboard copy and the copy-this-link prompt. Nothing a child paints leaves the phone.
  • Removed the Save button and its PNG download.
  • A painting is no longer read from a share link in the page address (a child's game opens nothing it was sent).
  • There is no search box at this upstream commit, so none had to be removed.
  • adapter.js: the home button asks MOVO to leave the game (EXIT_REQUEST) instead of opening the LibreToybox home page.
  • The page's words are shown in the child's language (MOVO's translations in game.json, applied by the MOVO shim).
  • Kids emoji filter (MOVO's rule for children: no pork, alcohol, innuendo, religious symbols or weapons/scary things): removed 🐷 U+1F437, 🥓 U+1F953, 🍑 U+1F351, 💦 U+1F4A6, 🕉 U+1F549, 🔯 U+1F52F, 🕌 U+1F54C, 🏹 U+1F3F9, 👻 U+1F47B from the stamp picker (EMOJI_CATEGORIES) and from EMOJI_MASTER (share links are gone, so its order no longer matters).

Files

  • movo/emoji-paint/index.html: modified copy of the upstream file, marked "Modified by MOVO (movochat.com), 2026-10-14 - see MOVO-CHANGES.md".
  • adapter.js: added by MOVO (the bridge glue between the game and MOVO), under the game's licence.
  • movo.css: added by MOVO (layout for a phone held upright), under the game's licence.
  • upstream/: the upstream files, byte for byte, at the commit above. upstream.tree.json lists the git blob id of each one as the upstream repository's tree has it, to check them against that commit.

The bundle MOVO ships is built from these files by kids-games/tools/pack.mjs (MIT), which inlines them into one page with the MOVO bridge shim (kids-games/tools/shim/movo-bridge.js, MIT).

Files MOVO modified (1)

In the download, under kids-games/games/emoji-art/:

  • movo/emoji-paint/index.html
Download complete source (.tar.gz)

154 KB · sha256 eb2511f54168a85ed02c1abb372ac1a0458691691360a5d78d08f9882446d2da

Built from MOVO app commit 36b9792e36e5 (15 October 2026).

Earlier downloads (1)

The source of builds of this game that earlier MOVO apps shipped, kept as published.

  • emoji-art-1.0.0-f936836d4fd6-source.tar.gz
    Version 1.0.0 · the file in the app had sha256 f936836d4fd6… · built from app commit ca7d9ef9da67 (14 October 2026) · 154 KB
    sha256 c010a74cdfe2ed1162d29756de701eb4f677d764af749f00014852d9017d935e

Fold & Draw

GPL-3.0-onlyCopyleft

By KhaaL (LibreToybox) · Creative & Building · ages 6–12

Upstream
https://github.com/KhaaL/LibreToybox exquisite-corpse/
Upstream commit
8aef0e098010c0a95b0bebe291386aa4f9b849e5
Notice
Fold & Draw (exquisite-corpse), from LibreToybox by KhaaL. Licensed under the GNU General Public License, version 3 (the repository's LICENSE; package.json: GPL-3.0; no "or any later version" grant, so MOVO treats it as GPL-3.0-only). Modified by MOVO (movochat.com), 2026-10-14. MOVO's changes and adapter are GPL-3.0-only too.
Licence
In MOVO
Version 1.0.0; the file in the app is 70 KB, sha256 fd3b522d9ac5f5bc003fe48669805d9fd5d6e774936401037321565410b9bac5

What MOVO changed

MOVO's changes to Fold & Draw

Upstream: https://github.com/KhaaL/LibreToybox at commit 8aef0e098010c0a95b0bebe291386aa4f9b849e5 (exquisite-corpse/). Licence: GPL-3.0-only. MOVO's changes and additions to this game are under the same licence. Complete source, including these changes: https://movochat.com/open-source#fold-draw

2026-10-14, MOVO (movochat.com)

  • Removed the service-worker registration and the web-app manifest link: the game ships inside the MOVO app and works offline without them.
  • Removed the "Tutorial coming soon!" placeholder; its button is hidden by movo.css because MOVO's own screen shows How to play in the child's language.
  • Removed the download button and its PNG download (downloadPainting): the drawing stays on the screen and is never saved or sent anywhere.
  • adapter.js: the home buttons ask MOVO to leave the game (EXIT_REQUEST) instead of opening the LibreToybox home page; the finished creature tells MOVO the game was finished (GAME_OVER).
  • The page's words are shown in the child's language (MOVO's translations in game.json, applied by the MOVO shim).

Files

  • movo/exquisite-corpse/index.html: modified copy of the upstream file, marked "Modified by MOVO (movochat.com), 2026-10-14 - see MOVO-CHANGES.md".
  • adapter.js: added by MOVO (the bridge glue between the game and MOVO), under the game's licence.
  • movo.css: added by MOVO (layout for a phone held upright), under the game's licence.
  • upstream/: the upstream files, byte for byte, at the commit above. upstream.tree.json lists the git blob id of each one as the upstream repository's tree has it, to check them against that commit.

The bundle MOVO ships is built from these files by kids-games/tools/pack.mjs (MIT), which inlines them into one page with the MOVO bridge shim (kids-games/tools/shim/movo-bridge.js, MIT).

Files MOVO modified (1)

In the download, under kids-games/games/fold-draw/:

  • movo/exquisite-corpse/index.html
Download complete source (.tar.gz)

118 KB · sha256 23b9b89a6c1369857a197951a59301b0e3f372309def9942e76d96a6d219a2f4

Built from MOVO app commit 36b9792e36e5 (15 October 2026).

Earlier downloads (1)

The source of builds of this game that earlier MOVO apps shipped, kept as published.

  • fold-draw-1.0.0-c8103d0490d3-source.tar.gz
    Version 1.0.0 · the file in the app had sha256 c8103d0490d3… · built from app commit ca7d9ef9da67 (14 October 2026) · 117 KB
    sha256 69935bbaf0f34f09956ad698cd0b9b27c0c49a2551057db3f03c840c64db96c4

2048

MIT

By BodhiProtocol · Brain & Puzzles · ages 6–12

Upstream
https://github.com/BodhiProtocol/2048
Upstream commit
49c5cdc3c8dc93a29dea0ecd3947c18bdef661ca
Notice
2048 by BodhiProtocol. Copyright (c) 2026 BodhiProtocol. Released under the MIT License. 2048 was first created by Gabriele Cirulli; this version is BodhiProtocol's own code. Modified by MOVO (movochat.com), 2026-10-14.
Licence
In MOVO
Version 1.0.0; the file in the app is 40 KB, sha256 8681d0e72d95fd4e0d92bc0ebdbad7ce8042e2dd927eb462da9a46b6eb2f7701

What MOVO changed

MOVO's changes to 2048

Upstream: https://github.com/BodhiProtocol/2048 at commit 49c5cdc3c8dc93a29dea0ecd3947c18bdef661ca. Licence: MIT. The upstream notices are kept. Complete source, including these changes: https://movochat.com/open-source#2048

2026-10-14, MOVO (movochat.com)

  • Kids mode only: removed the Adult-mode button and the mode switch, so the game is always Kids mode (win at 256, Undo, no game over).
  • Removed the banner picture (its tagline and Kids/Adult badges were English art advertising the removed Adult mode), the "About 2048" panel and the footer with its link to github.com/BodhiProtocol.
  • Removed the web-app manifest link, the Open Graph tags and the service-worker registration: the game ships inside the MOVO app and works offline without them.
  • The hint is one plain sentence ("⬆️⬇️⬅️➡️ Swipe to merge tiles · Reach 256 to win!") so it can be shown in the child's language; it no longer mentions arrow keys.
  • adapter.js: tells MOVO the score as it changes (SCORE_UPDATE) and that the game was won when a 256 tile appears (GAME_OVER).
  • The page's words are shown in the child's language (MOVO's translations in game.json, applied by the MOVO shim).

Files

  • movo/index.html: modified copy of the upstream file, marked "Modified by MOVO (movochat.com), 2026-10-14 - see MOVO-CHANGES.md".
  • adapter.js: added by MOVO (the bridge glue between the game and MOVO), under the game's licence.
  • movo.css: added by MOVO (layout for a phone held upright), under the game's licence.
  • upstream/: the upstream files, byte for byte, at the commit above. upstream.tree.json lists the git blob id of each one as the upstream repository's tree has it, to check them against that commit.

The bundle MOVO ships is built from these files by kids-games/tools/pack.mjs (MIT), which inlines them into one page with the MOVO bridge shim (kids-games/tools/shim/movo-bridge.js, MIT).

Files MOVO modified (1)

In the download, under kids-games/games/2048/:

  • movo/index.html
Download complete source (.tar.gz)

79 KB · sha256 b078ee61890aa95aea56af6185f091b8164eef4971023ad348df3385b7c08d4b

Built from MOVO app commit ca7d9ef9da67 (14 October 2026).

Tic Tac Toe

MPL-2.0Copyleft

By Gerard Tyedmers · Brain & Puzzles · ages 4–8

Upstream
https://github.com/grrd01/TicTacToe
Upstream commit
81b71c424f2d7b8801a59840efd0b79181021992
Notice
grrd's Tic Tac Toe. Copyright (c) 2018 Gerard Tyedmers. This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0 (https://mozilla.org/MPL/2.0/). Modified by MOVO (movochat.com), 2026-10-14; the modified files stay under the MPL-2.0 and their source is published at movochat.com/open-source#tic-tac-toe.
Licence
In MOVO
Version 1.0.0; the file in the app is 86 KB, sha256 047db886cf7c6c17cc53d363bc0ee97abf9ba81d581be23050c7aeeaa3e12865

What MOVO changed

MOVO's changes to Tic Tac Toe

Upstream: https://github.com/grrd01/TicTacToe at commit 81b71c424f2d7b8801a59840efd0b79181021992. Licence: MPL-2.0. MOVO's changes and additions to this game are under the same licence. Complete source, including these changes: https://movochat.com/open-source#tic-tac-toe

2026-10-14, MOVO (movochat.com)

  • Added Spanish, Portuguese, Turkish, Russian, Arabic, Chinese (Simplified) and Hindi to the game's own language table (lLoc), and fixed the French typography and wording. The language is MOVO's (the child's app language), not the phone's.
  • The X and O pictures are named in full in the script (images/x.svg, images/o.svg) so MOVO's packer can put them inside the game; no file is ever fetched.
  • Removed the links to the author's other games, his e-mail address (mailto) and the "Have a look at my other games" line from the info box; the instructions, the examples and "Developed by Gérard Tyedmers" stay.
  • Removed the service-worker registration and the icon, manifest and home-screen links: the game ships inside the MOVO app and works offline without them.
  • The page title is the game's name, "Tic Tac Toe", shown in the child's language.
  • The end of a game is told to MOVO (GAME_OVER): against the computer a win is "won" and a loss "lost"; a draw, or any two-player game on one phone, is "finished".
  • The page's remaining words (picture descriptions, OK, the title art's name) are shown in the child's language by the MOVO shim.

Files

  • movo/index.html: modified copy of the upstream file, marked "Modified by MOVO (movochat.com), 2026-10-14 - see MOVO-CHANGES.md".
  • movo/scripts/app.js: modified copy of the upstream file, marked "Modified by MOVO (movochat.com), 2026-10-14 - see MOVO-CHANGES.md".
  • adapter.js: added by MOVO (the bridge glue between the game and MOVO), under the game's licence.
  • movo.css: added by MOVO (layout for a phone held upright), under the game's licence.
  • upstream/: the upstream files, byte for byte, at the commit above. upstream.tree.json lists the git blob id of each one as the upstream repository's tree has it, to check them against that commit.

The bundle MOVO ships is built from these files by kids-games/tools/pack.mjs (MIT), which inlines them into one page with the MOVO bridge shim (kids-games/tools/shim/movo-bridge.js, MIT).

Files MOVO modified (2)

In the download, under kids-games/games/tic-tac-toe/:

  • movo/index.html
  • movo/scripts/app.js
Images, sounds and fonts inside, with their licences (12)
  • images/x.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 219 B
  • images/o.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 180 B
  • images/2player.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 1.1 KB
  • images/easy.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 1.2 KB
  • images/medium.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 1.2 KB
  • images/hard.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 1.2 KB
  • images/info.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 369 B
  • images/ok.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 244 B
  • images/ttt1.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 945 B
  • images/ttt2.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 933 B
  • images/ttt3.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 820 B
  • images/ttt4.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 936 B
Download complete source (.tar.gz)

107 KB · sha256 ffa4630090991e841d4624db3660e0a5b4c44eda02901799fca88da18d82963a

Built from MOVO app commit ca7d9ef9da67 (14 October 2026).

4 in a Row

MPL-2.0Copyleft

By Gerard Tyedmers · Brain & Puzzles · ages 6–12

Upstream
https://github.com/grrd01/4inaRow
Upstream commit
2ce2bb1ff4356bb8fa2ef6dc041e3ee8dfa0c229
Notice
grrd's 4 in a Row. Copyright (c) 2012 Gerard Tyedmers. This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0 (https://mozilla.org/MPL/2.0/). Includes l10n.js, Copyright (c) 2011-2013 Fabien Cazenave, Mozilla (MIT). Modified by MOVO (movochat.com), 2026-10-14; the modified files stay under their licences and their source is published at movochat.com/open-source#four-in-a-row.
Licence
In MOVO
Version 1.0.0; the file in the app is 186 KB, sha256 be72d62e2a88f2cc777d8457d10417443968126950bdf29ac1640584fb23982c

What MOVO changed

MOVO's changes to 4 in a Row

Upstream: https://github.com/grrd01/4inaRow at commit 2ce2bb1ff4356bb8fa2ef6dc041e3ee8dfa0c229. Licence: MPL-2.0. MOVO's changes and additions to this game are under the same licence. Complete source, including these changes: https://movochat.com/open-source#four-in-a-row

2026-10-14, MOVO (movochat.com)

  • Removed online play: the remote socket.io script (grrd.duckdns.org), the Online button, the waiting and opponent-left boxes, the online statistics row and online_click(). A child's game talks to no one.
  • Removed the settings box with the own-photo picker (file input, FileReader, exif.js and its two alert() calls), the name field and the country flags (flags32.css/png, the country list and its search field). The child's name never enters the game: the players are "Player" and "Computer", or "Player 1" and "Player 2".
  • Removed the info box's links (node.js, socket.io, the author's other games and his e-mail address); "Developed by Gérard Tyedmers." and the instructions stay.
  • Removed the title pictures (English lettering) from the screens and boxes: MOVO's own bar shows the game's name in the child's language.
  • Replaced the click and ding sounds (click.mp3/ding.mp3, origin not stated) with two Web Audio tones drawn by Scripts/movo-sounds.js (added by MOVO, MPL-2.0).
  • Replaced the XHR-loaded .properties translations with one dictionary embedded in the page (Locales/movo-l10n.json, read by l10n.js as its inline JSON form): English as upstream, and MOVO's own wording for Spanish, French, Portuguese, Turkish, Russian, Arabic, Chinese (Simplified) and Hindi. The language is MOVO's (the child's app language), not the phone's.
  • "N games played." is written in English in the script and shown in the child's language by the MOVO shim, with each language's plural forms.
  • Removed the service-worker registration and the icon, manifest, alternate-language and canonical links (and the lines that rewrote them): the game ships inside the MOVO app and works offline without them.
  • The end of a game is told to MOVO (GAME_OVER): against the computer a win is "won" and a loss "lost"; a draw, or any two-player game on one phone, is "finished".
  • The keyboard handler checks that a box still exists before reading it (the removed boxes).

Files

  • movo/index.html: modified copy of the upstream file, marked "Modified by MOVO (movochat.com), 2026-10-14 - see MOVO-CHANGES.md".
  • movo/Scripts/4inaRow.js: modified copy of the upstream file, marked "Modified by MOVO (movochat.com), 2026-10-14 - see MOVO-CHANGES.md".
  • movo/Scripts/4inaRow.css: modified copy of the upstream file, marked "Modified by MOVO (movochat.com), 2026-10-14 - see MOVO-CHANGES.md".
  • movo/Scripts/l10n.js: modified copy of the upstream file, marked "Modified by MOVO (movochat.com), 2026-10-14 - see MOVO-CHANGES.md".
  • movo/Scripts/movo-sounds.js: added by MOVO.
  • movo/Locales/movo-l10n.json: added by MOVO.
  • adapter.js: added by MOVO (the bridge glue between the game and MOVO), under the game's licence.
  • upstream/: the upstream files, byte for byte, at the commit above. upstream.tree.json lists the git blob id of each one as the upstream repository's tree has it, to check them against that commit.

The bundle MOVO ships is built from these files by kids-games/tools/pack.mjs (MIT), which inlines them into one page with the MOVO bridge shim (kids-games/tools/shim/movo-bridge.js, MIT).

Files MOVO modified (6)

In the download, under kids-games/games/four-in-a-row/:

  • movo/Locales/movo-l10n.json
  • movo/Scripts/4inaRow.css
  • movo/Scripts/4inaRow.js
  • movo/Scripts/l10n.js
  • movo/Scripts/movo-sounds.js
  • movo/index.html
Images, sounds and fonts inside, with their licences (19)
  • Images/info.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 361 B
  • Images/stats.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 337 B
  • Images/2player.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 1.1 KB
  • Images/easy.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 1.2 KB
  • Images/medium.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 1.2 KB
  • Images/hard.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 1.2 KB
  • Images/41.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 788 B
  • Images/42.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 788 B
  • Images/43.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 788 B
  • Images/44.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 788 B
  • Images/ok.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 377 B
  • Images/x.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 377 B
  • Images/back.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 366 B
  • Images/player.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 537 B
  • Images/computer.svgMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 662 B
  • Images/red_on.pngMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 1.9 KB
  • Images/red_off.pngMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 1.2 KB
  • Images/blue_on.pngMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 1.8 KB
  • Images/blue_off.pngMPL-2.0 (Gerard Tyedmers' own art, part of the game) · 1.2 KB
Download complete source (.tar.gz)

188 KB · sha256 c608a029da8fde990181366131d9034e8b8cd83c9b15e7b85de10fef69fd1498

Built from MOVO app commit ca7d9ef9da67 (14 October 2026).

Hextris

GPL-3.0-or-laterCopyleft

By Logan Engstrom, the Hextris contributors and the Attogram Project · Fun & Arcade · ages 9–12

Upstream
https://github.com/attogram/hextris-lite
Upstream commit
a55bf9f3c6137e51a9ef919b7cd5e2dd565ef6b7
Notice
Hextris Lite 2.1.2 by the Attogram Project, forked from Hextris (Copyright (C) 2018 Logan Engstrom; with Garrett Finucane, Noah Moroze and Michael Yang). Free software under the GNU General Public License, version 3 or (at your option) any later version. Includes jQuery 1.9.1 and Hammer.js 1.1.2 (MIT), Keypress 1.0.8 (Apache-2.0) and the Exo 2 font, Copyright (c) 2013 Natanael Gama, with Reserved Font Name Exo (SIL Open Font License 1.1). Modified by MOVO (movochat.com), 2026-10-14; MOVO's changes and adapter are GPL-3.0-or-later too.
Licence
In MOVO
Version 1.0.0; the file in the app is 511 KB, sha256 2b6f02f8e746bc743daf8e325eae871a575e9c75b12a49d6aedf597faaf26b5d

What MOVO changed

MOVO's changes to Hextris

Upstream: https://github.com/attogram/hextris-lite at commit a55bf9f3c6137e51a9ef919b7cd5e2dd565ef6b7. Licence: GPL-3.0-or-later. MOVO's changes and additions to this game are under the same licence. Complete source, including these changes: https://movochat.com/open-source#hextris

2026-10-14, MOVO (movochat.com)

  • Ships only the Exo 2 font (SIL OFL 1.1; its licence is added as style/fonts/OFL.txt). Lovelo, Quattrocento Sans, Roboto, Font Awesome, the favicon and the Open Graph pictures are not shipped; the two play-triangle glyphs that came from Font Awesome are the Unicode triangle (U+25B6) instead.
  • Removed js.cookie.js and the one cookie the game wrote ("visited"), and sweet-alert.min.js, which the game never used.
  • The help screen's links (the game's GitHub page, the Attogram Project, Logan Engstrom and Garrett Finucane) are plain words now, and its text is whole sentences so it can be shown in the child's language; the credits and the GNU GPL v3-or-later notice stay. It always explains the touch controls (the game runs on a phone).
  • The words the game draws on its canvas ("Play!" and the first-game hints) go through the MOVO shim's translation (renderText).
  • adapter.js: MOVO's pause and resume use the game's own pause; the game in progress is saved through MOVO when paused so the child can continue it later; the score is told to MOVO as it changes, and the game's end with its score (GAME_OVER).
  • The page's words are shown in the child's language (MOVO's translations in game.json, applied by the MOVO shim).
  • The game in progress is saved as plain data (JSON) and read back without eval (exportSaveState, init and the movo* functions beside exportSaveState): the hexagon, its blocks, the falling blocks and the wave generator are made again with the game's own constructors and the saved values are copied onto them; the wave generator's current pattern is saved by name. Upstream wrote the objects' functions into the save as source text (JSONfn) and read them back with eval, which MOVO's page does not allow, so a saved game could not be continued; such a save also grew past MOVO's 32 KB limit once a few blocks had landed. JSONfn (js/jsonfn.min.js) is no longer shipped.
  • The end of a game no longer reads the save it never used (upstream's animLoop parsed it with eval right after the game ended, which threw on every frame in MOVO's page).

Files

  • movo/index.html: modified copy of the upstream file, marked "Modified by MOVO (movochat.com), 2026-10-14 - see MOVO-CHANGES.md".
  • movo/js/hextris-lite.js: modified copy of the upstream file, marked "Modified by MOVO (movochat.com), 2026-10-14 - see MOVO-CHANGES.md".
  • movo/style/fonts/OFL.txt: added by MOVO.
  • adapter.js: added by MOVO (the bridge glue between the game and MOVO), under the game's licence.
  • upstream/: the upstream files, byte for byte, at the commit above. upstream.tree.json lists the git blob id of each one as the upstream repository's tree has it, to check them against that commit.

The bundle MOVO ships is built from these files by kids-games/tools/pack.mjs (MIT), which inlines them into one page with the MOVO bridge shim (kids-games/tools/shim/movo-bridge.js, MIT).

Files MOVO modified (3)

In the download, under kids-games/games/hextris/:

  • movo/index.html
  • movo/js/hextris-lite.js
  • movo/style/fonts/OFL.txt
Images, sounds and fonts inside, with their licences (8)
  • style/fonts/Exo2-ExtraLight.otfOFL-1.1 (Exo 2, Copyright (c) 2013 Natanael Gama, Reserved Font Name Exo) · 63 KB
  • style/fonts/Exo2-Regular.otfOFL-1.1 (Exo 2, Copyright (c) 2013 Natanael Gama, Reserved Font Name Exo) · 64 KB
  • style/fonts/Exo2-SemiBold.otfOFL-1.1 (Exo 2, Copyright (c) 2013 Natanael Gama, Reserved Font Name Exo) · 67 KB
  • images/btn_back.svgGPL-3.0-or-later (part of Hextris) · 1.2 KB
  • images/btn_help.svgGPL-3.0-or-later (part of Hextris) · 3.1 KB
  • images/btn_pause.svgGPL-3.0-or-later (part of Hextris) · 1.2 KB
  • images/btn_restart.svgGPL-3.0-or-later (part of Hextris) · 1.5 KB
  • images/btn_resume.svgGPL-3.0-or-later (part of Hextris) · 1.1 KB
Download complete source (.tar.gz)

496 KB · sha256 e65fc438772ca6d8036b9bb59bd36085f1df5f9d65806fec09c4f77a36455fc6

Built from MOVO app commit ca7d9ef9da67 (14 October 2026).

Snake

Apache-2.0

By Neil Fraser (Beaver Games) · Fun & Arcade · ages 6–12

Upstream
https://github.com/NeilFraser/beaver-games snake/
Upstream commit
e56069765e774ea957ae70378251c846fd67726b
Notice
Snake, from Beaver Games by Neil Fraser. Copyright 2020 Neil Fraser. Licensed under the Apache License, Version 2.0. Modified by MOVO (movochat.com), 2026-10-14: the changed files say so in their headers, and the list of changes is in MOVO-CHANGES.md with the source at movochat.com/open-source#snake.
Licence
In MOVO
Version 1.0.0; the file in the app is 64 KB, sha256 26ad9bb7b1fb0a7c99fee4d29046451d3952157488253d595560f3c60a61ca78

What MOVO changed

MOVO's changes to Snake

Upstream: https://github.com/NeilFraser/beaver-games at commit e56069765e774ea957ae70378251c846fd67726b (snake/). Licence: Apache-2.0. The upstream notices are kept. Complete source, including these changes: https://movochat.com/open-source#snake

2026-10-14, MOVO (movochat.com)

  • A board for a phone held upright: 20 columns by 24 rows (upstream: 30 by 20), scaled to the screen by adapter.js; the page has a viewport.
  • An on-screen arrow pad (four 64-point buttons, added by adapter.js) and swipes on the board send the same arrow keys the game reads (snake.js keydown), so the game is played by touch.
  • One player only: the 2-player choice, its keys line and its keyboard hints are removed (two players shared one keyboard).
  • The difficulty is kept in the game's storage (saved through MOVO, per child) instead of a cookie, and is applied without reloading the page (common/utils.js); the "Can't set cookie" alert() is gone.
  • The "You win!" alert() (a board with no room left for food) tells MOVO the game was won instead (GAME_OVER).
  • Removed the "Beaver Games" heading and its link to the games' home page.
  • adapter.js: tells MOVO the snake's length as its score, and when the snake crashes that the game finished, with the length it reached (GAME_OVER).
  • The page's words are shown in the child's language (MOVO's translations in game.json, applied by the MOVO shim).

Files

  • movo/snake/index.html: modified copy of the upstream file, marked "Modified by MOVO (movochat.com), 2026-10-14 - see MOVO-CHANGES.md".
  • movo/snake/snake.js: modified copy of the upstream file, marked "Modified by MOVO (movochat.com), 2026-10-14 - see MOVO-CHANGES.md".
  • movo/common/utils.js: modified copy of the upstream file, marked "Modified by MOVO (movochat.com), 2026-10-14 - see MOVO-CHANGES.md".
  • adapter.js: added by MOVO (the bridge glue between the game and MOVO), under the game's licence.
  • movo.css: added by MOVO (layout for a phone held upright), under the game's licence.
  • upstream/: the upstream files, byte for byte, at the commit above. upstream.tree.json lists the git blob id of each one as the upstream repository's tree has it, to check them against that commit.

The bundle MOVO ships is built from these files by kids-games/tools/pack.mjs (MIT), which inlines them into one page with the MOVO bridge shim (kids-games/tools/shim/movo-bridge.js, MIT).

Files MOVO modified (3)

In the download, under kids-games/games/snake/:

  • movo/common/utils.js
  • movo/snake/index.html
  • movo/snake/snake.js
Images, sounds and fonts inside, with their licences (3)
  • snake/sprites.pngApache-2.0 (Neil Fraser's art, part of Beaver Games) · 5.0 KB
  • snake/apple.mp3Apache-2.0 (committed by Neil Fraser with Beaver Games; origin not documented) · 2.2 KB
  • common/crash.mp3Apache-2.0 (committed by Neil Fraser with Beaver Games; origin not documented) · 6.1 KB
Download complete source (.tar.gz)

119 KB · sha256 acfb8c94f494ffcfde23feaabbf694a54f4ad335a31b646dbfd7939eac57d7f5

Built from MOVO app commit ca7d9ef9da67 (14 October 2026).

Tower of Hanoi

Apache-2.0

By Neil Fraser (Beaver Games) · Brain & Puzzles · ages 6–12

Upstream
https://github.com/NeilFraser/beaver-games hanoi/
Upstream commit
e56069765e774ea957ae70378251c846fd67726b
Notice
Tower of Hanoi, from Beaver Games by Neil Fraser. Copyright 2020-2023 Neil Fraser. Licensed under the Apache License, Version 2.0. Modified by MOVO (movochat.com), 2026-10-14: the changed files say so in their headers, and the list of changes is in MOVO-CHANGES.md with the source at movochat.com/open-source#hanoi.
Licence
In MOVO
Version 1.0.0; the file in the app is 51 KB, sha256 4a65c9e56f48ec9e0d1b5a56883447021f606656254fa171b71387e7ce852cc4

What MOVO changed

MOVO's changes to Tower of Hanoi

Upstream: https://github.com/NeilFraser/beaver-games at commit e56069765e774ea957ae70378251c846fd67726b (hanoi/). Licence: Apache-2.0. The upstream notices are kept. Complete source, including these changes: https://movochat.com/open-source#hanoi

2026-10-14, MOVO (movochat.com)

  • The page has a viewport and the board is as wide as the phone (movo.css); a tap is matched to a pile by the board's width on screen, not its drawing size.
  • The number of disks is kept in the game's storage (saved through MOVO, per child) instead of a cookie, and a new choice applies at once without reloading the page (common/utils.js and adapter.js); the "Can't set cookie" alert() is gone.
  • The instructions talk about tapping (the game runs on a phone), not the mouse and the 1, 2, 3 keys (which still work).
  • Removed the "Beaver Games" heading and its link to the games' home page.
  • adapter.js: when the whole stack lands on another pile, MOVO hears the game was won (GAME_OVER).
  • The page's words are shown in the child's language (MOVO's translations in game.json, applied by the MOVO shim).

Files

  • movo/hanoi/index.html: modified copy of the upstream file, marked "Modified by MOVO (movochat.com), 2026-10-14 - see MOVO-CHANGES.md".
  • movo/hanoi/hanoi.js: modified copy of the upstream file, marked "Modified by MOVO (movochat.com), 2026-10-14 - see MOVO-CHANGES.md".
  • movo/common/utils.js: modified copy of the upstream file, marked "Modified by MOVO (movochat.com), 2026-10-14 - see MOVO-CHANGES.md".
  • adapter.js: added by MOVO (the bridge glue between the game and MOVO), under the game's licence.
  • movo.css: added by MOVO (layout for a phone held upright), under the game's licence.
  • upstream/: the upstream files, byte for byte, at the commit above. upstream.tree.json lists the git blob id of each one as the upstream repository's tree has it, to check them against that commit.

The bundle MOVO ships is built from these files by kids-games/tools/pack.mjs (MIT), which inlines them into one page with the MOVO bridge shim (kids-games/tools/shim/movo-bridge.js, MIT).

Files MOVO modified (3)

In the download, under kids-games/games/hanoi/:

  • movo/common/utils.js
  • movo/hanoi/hanoi.js
  • movo/hanoi/index.html
Images, sounds and fonts inside, with their licences (1)
  • common/win.mp3Apache-2.0 (committed by Neil Fraser with Beaver Games; origin not documented) · 9.4 KB
Download complete source (.tar.gz)

108 KB · sha256 ec7e08d35c5ad66a3af46c52fba6e620ddccceb131ed71e129142ecf43e8677f

Built from MOVO app commit ca7d9ef9da67 (14 October 2026).

MOVO's game tools

The packer that turns each game into one self-contained file and the bridge it adds, which carries messages such as “ready”, “save” and “game over” between the game and the app, are MOVO's own work under the MIT licence (full text), as each file's own header says. They are in every download above, under kids-games/tools/:

  • kids-games/tools/harness-specs.mjs
  • kids-games/tools/harness.mjs
  • kids-games/tools/movo-patch.mjs
  • kids-games/tools/pack.mjs
  • kids-games/tools/recipe-helpers.mjs
  • kids-games/tools/shim/movo-bridge.js
  • kids-games/tools/vendor.mjs

Licence texts