MCPcopy Index your code
hub / github.com/aradzie/keybr.com

github.com/aradzie/keybr.com @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
3,339 symbols 9,991 edges 1,331 files 23 documented · 1% 32 cross-repo links updated 2mo ago★ 4,527286 open issues

Browse by type

Functions 2,782 Types & classes 557
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

CI

keybr.com is not (just) a typing test

<img src="https://github.com/aradzie/keybr.com/raw/main/assets/screenshot.png" alt="screenshot" width="600"/>

It's the smartest way to learn touch typing and improve your typing speed. On the surface, it looks pretty simple: it shows you a piece of text, and you type it out. But the devil is in the details — keybr.com offers a few unique features:

  • keybr.com tracks every single keystroke and computes statistics for each individual key.
  • It automatically generates lessons that focus on your weakest keys.
  • You can set your own target typing speed, and it tracks your progress toward that goal.
  • It starts with a small set of the most frequent letters in your language.
  • More letters are added once you reach the target speed with the current ones.
  • It can even predict how many more lessons you will need to complete to reach your target speed.
  • It provides a beautiful profile page with detailed graphs showing your learning progress.
  • It offers plenty of modes and configuration options.

    screenshot

Can I contribute?

Yes!

License

Released under the GNU Affero General Public License v3.0.

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Function 1,454
Method 1,328
Class 539
Enum 17
Interface 1

Languages

TypeScript100%
Python1%

Modules by API surface

packages/keybr-code/lib/parser.js80 symbols
packages/keybr-result-loader/lib/internal/indexeddb/idb.ts75 symbols
packages/test-env-browser/lib/fake-canvas.ts58 symbols
packages/keybr-database/lib/model.ts39 symbols
packages/keybr-binary/lib/io.ts38 symbols
packages/keybr-multiplayer-ui/lib/websocket.fake.ts33 symbols
packages/keybr-multiplayer-server/lib/room.ts33 symbols
packages/server/lib/app/page/controller.tsx30 symbols
packages/keybr-result-loader/lib/internal/storage.ts29 symbols
packages/keybr-math/lib/polynomial.ts29 symbols
packages/keybr-widget/lib/components/canvas/graphics.ts27 symbols
packages/keybr-phonetic-model/lib/transitiontable.ts26 symbols

Dependencies from manifests, versioned

@eslint/js9.39.4 · 1×
@fastr/client0.1.3 · 1×
@fastr/client-testlib0.1.3 · 1×
@fastr/controller0.1.3 · 1×
@fastr/core0.1.3 · 1×
@fastr/errors0.1.3 · 1×
@fastr/fake-http0.1.3 · 1×
@fastr/fetch0.1.3 · 1×
@fastr/headers0.1.3 · 1×
@fastr/invert0.1.3 · 1×
@fastr/lang0.1.3 · 1×
@fastr/middleware-body0.1.3 · 1×

For agents

$ claude mcp add keybr.com \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page