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

github.com/aradzie/keybr.com @main sqlite

repository ↗ · DeepWiki ↗
3,339 symbols 9,991 edges 1,331 files 23 documented · 1%
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

Socket (Interface)
(no doc)
packages/server/lib/server/closer.ts

Core symbols most depended-on inside this repo

parseColor
called by 558
packages/keybr-color/lib/parse.ts
set
called by 449
packages/keybr-theme-designer/lib/io/import-state.ts
formatMessage
called by 208
packages/keybr-debug/lib/inspect.ts
map
called by 176
packages/keybr-lang/lib/enum.ts
get
called by 170
packages/keybr-lang/lib/enum.ts
set
called by 161
packages/keybr-keyboard/lib/ngram.ts
get
called by 140
packages/server/lib/app/sitemap/controller.ts
nextResult
called by 108
packages/keybr-result/lib/fake.tsx

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