npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@beanbag/codemirror-speak-and-spell

v1.0.1

Published

Browser-native spell checking, AI writing, and more in CodeMirror v5

Readme

CodeMirror Speak-and-Spell

This is a plugin for CodeMirror v5 that provides more reliable support for:

  • The browser's built-in spell checker
  • Speech-to-text input
  • Platform or browser-provided AI-assisted writing
  • Text transformations

It works in cooperation with CodeMirror v5's inputStyle: 'contenteditable' and spellcheck: true settings, and avoids many of the quirks that could sometimes appear.

It does this by intercepting the browser's attempts at performing these text changes, blocking them and re-attempting them directly using CodeMirror's API. This keeps CodeMirror and the browser from fighting with each other any time text is being inserted or replaced by the browser.

Installation and Usage

There are two ways you can use this plugin:

  1. Simply download the latest script from our releases or our repository's build/ directory and embed it in your page.

    For example:

    <script src="/js/beanbag-codemirror-speak-and-spell-cm5-1.0.0.min.js"></script>
  2. Alternatively, install using npm:

    $ npm install --save @beanbag/codemirror-speak-and-spell

    And then import into another module:

    import { SpeakAndSpell } from '@beanbag/codemirror-speak-and-spell/cm5';

Once installed and running in your CodeMirror v5 environment, simply activate it:

const codeMirror = new CodeMirror(element, {
    inputStyle: 'contenteditable',
    spellcheck: true,
    speakAndSpell: true,
});

License

CodeMirror Speak-and-Spell is available under the MIT license.

Important Notes

Not all browsers implement spell checking the same way.

Firefox will check the text in your CodeMirror immediately when rendered, but Chrome and Safari usually won't. Instead, they'll check when typing or when interacting with a word.

This means that you won't always see misspelled words on Chrome or Safari immediately, but this is browser behavior and not something that can be worked around. It's also not specific to CodeMirror.

To ensure the best experience, you'll want the latest evergreen versions of Firefox and Chrome, and the latest OS releases of Safari.

Our Other Projects

  • Review Board - Our open source, extensible code review, document review, and image review tool.

  • Djblets - Our pack of Django utilities for datagrids, API, extensions, and more. Used by Review Board.

  • Spina - A modern Backbone-like class library, built with TypeScript and extensibility in mind.

  • Ink - The accessible, themeable UI component library powering Review Board.

  • Housekeeping - Deprecation management for Python modules, classes, functions, and attributes.

  • kgb - A powerful function spy implementation to help write Python unit tests.

  • Typelets - Type hints and utility objects for Python and Django projects.

You can see more on github.com/beanbaginc and github.com/reviewboard.