# autoNumeric formats currency fields as you type, and picks which branch you pin

> autoNumeric is a standalone MIT licensed JavaScript library that applies live formatting to number and currency inputs as the user types, with more than 40 configuration options and built-in formats for most international currencies. It is easy to adopt for a plain form field, and the two-branch release policy plus the partial mobile Chrome support are the two things a team should decide on before wiring it in.

**autoNumeric/autoNumeric** — AutoNumeric is a standalone library that provides live as-you-type formatting for international numbers and currencies. 

- Repository: https://github.com/autoNumeric/autoNumeric
- Website: https://autonumeric.org
- Stars: 1,805 · Forks: 410
- Language: JavaScript
- License: MIT
- Published: 2026-10-16 · Updated: 2026-10-16 · Language: en
- Canonical page: https://hysenlabs.com/projects/autonumeric-autonumeric

## The library is distributed three ways and bundlers pick different ones

autoNumeric ships from npm as the package autonumeric and the README does not document a single install command, so the choice of package manager and entry point is yours to make. What the repository does document is how the build is wired in package.json, and the three fields point at three different artifacts:

```json
{
  "name": "autonumeric",
  "version": "4.10.10",
  "main": "dist/autoNumeric.js",
  "browser": "dist/autoNumeric.min.js",
  "module": "src/main.js"
}
```

That mapping has consequences worth checking once rather than debugging later. A CommonJS require resolves to the built dist/autoNumeric.js. A bundler that honours the browser field gets the minified build. A bundler that honours module takes the ES module source at src/main.js instead of the built file. Three resolutions, three different files, and the ESM path means your build consumes source rather than the compiled output.

The repository is a source project rather than a thin wrapper: src/, test/, doc/, config/, tools/, a .babelrc, an .eslintrc.js, a yarn.lock and a .puppeteerrc.cjs, which points at browser-driven testing. index.d.ts sits at the top level, so TypeScript types ship with the package rather than living in a separate @types entry. The current published version in package.json is 4.10.10, which matches the newest tag on the releases list.

## Formatting happens on each keystroke, not on submit

The defining behaviour is that the mask is live. A user typing into a currency field sees grouping separators, decimal handling and the currency symbol applied as they type, which is why the README describes the library as user experience oriented and links to its function chaining documentation as the feature that makes it feel natural.

The scope is deliberately narrow: numeric and currency input fields. autoNumeric is not a table formatter, not a chart, and not a validation layer that rejects a form. The README lists its subject areas as currency, money, monetary, number, numeric, format, form, input, mask, masked, as-you-type and live, which is a good description of a masked input control and a poor description of anything else.

Exact values are also matched alongside formatting. The README notes the mobile Android Chrome browser is only partially supported, and that single line is the one caveat that has bitten most JavaScript input libraries in production, since Android Chrome is where a masked input is most often used.

## More than 40 options, and a generator on the project site

Configurability is the headline feature. The README counts more than 40 configuration options and points to a documentation page listing them, plus a page of predefined language options for the numeric formats and currencies it ships with.

The formats cover Europe, Asia, and North and South America. Where a format is missing the README asks for an issue and promises to add it, which is a reasonable request but not the same as a guarantee of a timeframe.

The project's own website carries something the README points to directly: a tool for generating an options configuration. That is worth knowing about before you hand-write a locale block, since the alternative is assembling the option set by reading the documentation page and guessing at values.

The README is deliberately short now. It says outright that the documentation moved to docs.autonumeric.org because it reads better as a web page, which means the repository itself will not tell you the option names. Anyone evaluating this needs the docs site open alongside the code, not instead of it.

## master and next are different stability contracts

AutoNumeric publishes two long-lived branches and the README describes them differently on purpose. master holds what it calls the very, very stable version, currently 4.6.*. next holds all new features and fixes and is also considered stable.

The warning is about the API. The README notes that next can see changes in the API against semver, and pairs that with an assurance that it is fully tested for regressions and safe on production servers. Both halves are there: breaking changes are possible, regression coverage is claimed.

The default branch for this repository is next, and the most recent releases are all 4.10.x: v4.10.6 on 2024-10-14, v4.10.9 on 2025-09-03 and v4.10.10 on 2026-04-16. That sequence shows 4.10 sitting on next while the stable line stays at 4.6, which makes the choice between branches a real decision rather than a formality.

The last push was on 2026-09-27, so both lines are being worked on, and CHANGELOG.md is in the repository for the detail on any individual version.

## Where a formatting library fits against the native input type

The alternative most teams already have is type="number" with a step attribute, plus server-side parsing. The browser gives you a numeric keypad on mobile and rejects letters, and that is genuinely all it gives you: no grouping separators as the user types, no currency symbol placement per locale, no control over where the decimal separator sits. autoNumeric exists to fill exactly that gap, and on a form where a person reads back what they typed, the difference is the difference between a legible amount and a bare digit string.

Masking libraries in general, rather than currency libraries specifically, are the broader comparison. A general mask such as a phone number or a date control will not know that a value has two decimal places and a currency symbol, so it leaves that to you. autoNumeric starts from the assumption that the field is money, which is why it can offer dozens of options for a case other masks treat as plain text.

The cost of that assumption shows up when a field is numeric but not money, for example a quantity where the locale writes 1.234,56 differently. The option set is where you settle it, and that is a reason to read the options documentation before choosing this over a plain input.

## MIT, with the tooling credits stated in the README

The licence is MIT and the authors are credited in an AUTHORS file at the repository root. package.json names Alexandre Bonneau as the author and lists a long contributors block, which is the kind of project where the contributor list is itself a maintenance signal: this is a library that has been extended by many people over a long period rather than rewritten often.

There is also a support note worth mentioning because it explains part of the development history: the README states the project is partly created using the JetBrains IDE, which provided access to their tools to the developers for a couple of years. Support is requested through a documentation page rather than through a paid tier, and the README links a Gitter chat as the community channel.

For a dependency that formats money, the security posture is mostly a supply chain question rather than a licensing one. The README carries a Snyk badge, and the package has no runtime dependencies of its own visible in the fields shown, which is a small but real advantage over a masking library that pulls in a date and a currency table as transitive packages.

## Conclusion

autoNumeric earns a place in any form that takes money or quantities and should read the way the locale does, because the formatting is applied while typing rather than on blur, and the options are numerous enough to cover the awkward cases. It is the wrong dependency if you need Android Chrome to behave identically to desktop, since the README calls that support partial, or if you want a stable major forever, because the next branch is where new features and API changes land. Before pinning a version, decide deliberately between master at 4.6.* and the next branch: install autonumeric from npm, read the configuration options page for the settings your locale needs, and check which entry point your bundler resolves, since package.json points main, browser and module at three different files.

## FAQ

### How do I install autoNumeric?

The package is published to npm as autonumeric. The README documents no install command, so install it the way you install other npm packages, then check which of the three entry points in package.json your bundler resolves: main points at dist/autoNumeric.js, browser at dist/autoNumeric.min.js and module at src/main.js.

### What is the difference between the master and next branches of autoNumeric?

master holds the very stable line, currently 4.6.*. next carries new features and fixes, can change the API under semver, and is described as fully tested for regressions. The most recent tags, up to 4.10.10 on 2026-04-16, sit on the next line.

### Does autoNumeric work on mobile browsers?

The README states that the mobile Android Chrome browser is partially supported. Everything else in the highlight list is unqualified, so mobile Chrome is the platform to test first if your form is used on phones.

### How many currency and number formats does autoNumeric ship with?

The predefined language options cover most international numeric formats and currencies across Europe, Asia, and North and South America. If a format is missing the README asks you to open an issue so it can be added.

### Can I generate an autoNumeric configuration instead of writing the options myself?

Yes. The project website carries a tool for generating an options configuration, linked from the README. The README itself no longer lists the options, those moved to the documentation site at docs.autonumeric.org.

## Sources

- [autoNumeric/autoNumeric on GitHub](https://github.com/autoNumeric/autoNumeric)
- [License: MIT](https://github.com/autoNumeric/autoNumeric/blob/next/LICENSE)
- [Project website](https://autonumeric.org)
- [README](https://github.com/autoNumeric/autoNumeric/blob/next/README.md)
- [Releases](https://github.com/autoNumeric/autoNumeric/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/autonumeric-autonumeric
