---
title: Bndr
updated: 2026-01-08T14:50:58.147Z
tags:
  - tools
  - stub
url: https://baku89.com/ja/bndr
---

# Bndr

![](https://repository-images.githubusercontent.com/641897294/732cab44-fc8a-4d85-8a66-00a0be9ad745)

![](https://raw.githubusercontent.com/baku89/bndr-js/refs/heads/main/screenshot.gif)

![](https://wp.baku89.com/wp-content/uploads/2025/08/bndr.svg)

[GitHub](https://github.com/baku89/bndr-js)

**Bndr** /ˈbaɪndɚ/ is a library designed to compose events from various user inputs and chain filters in a monadic manner, integrating them into a single event object. It accommodates input devices such as mice🖱️, styluses🖊️, touch inputs👆, keyboards⌨️, [MIDI](https://developer.mozilla.org/en-US/docs/Web/API/Web_MIDI_API) controllers🎹, and [gamepads](https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API)🎮. Developed and maintained by [Baku Hashimoto](https://baku89.com).

Potential use cases for this library include:

- ⚡️ Associating user inputs with arbitrary triggers for VJing
- 🎨 Introducing manual operations in generative art.

To get a feel for how it works, please try out [this demo](https://baku89.github.io/bndr-js/).

## Supported Parameters

- 👆 Pointer (mouse, stylus, touch)
  - All parameters supported in [PointerEvent](https://developer.mozilla.org/en-US/docs/Web/API/Pointer_events). (pressure, tilt, multi-touch)
- ⌨️ Keyboard
- 🎹 MIDI
  - CC and velocity
- 🎮 Gamepad
  - Vendor-specific button name support: JoyCon, PS5 Controller

---

# Memo

![](https://wp.baku89.com/wp-content/uploads/2026/07/scrapbox-6517cfa2fa3de0001cc67de5.png)

[GitHub - baku89/bndr-js: A monadic library for composing and filtering various types of user inputs to generate event handling](https://github.com/baku89/bndr-js)

- インターフェースからの入力、フィルター、組み合わせを、モナド合成として扱うライブラリ。
- ソフトウェア操作のアサイン機能をマウスやキーボードショートカットに限らず抽象化することで、[アクセシビリティ](/%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B7%E3%83%93%E3%83%AA%E3%83%86%E3%82%A3)面の寄与が出来るんでないか、という思惑もあったりする
