Skip to content
Knockout makes it easier to create rich, responsive UIs with JavaScript
Branch: master
Clone or download
mbest Merge pull request #2460 from knockout/2452-select-value-updates
value and selectedOptions bindings on <select> respond to childrenComplete
Latest commit aa6447e Apr 7, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
build export startPossiblyAsyncContentBinding Jan 20, 2019
spec add test for notifyImmediately option; in selectedOptions, register "… Mar 24, 2019
src simplify "valueUpdate" processing Apr 6, 2019
.gitignore Add textInput binding. Jun 13, 2014
Gruntfile.js Add build task to test types Feb 22, 2018
LICENSE Fix typo Jan 10, 2014 readme tripple space indentation May 22, 2017
bower.json Remove `version` from `bower.json` May 13, 2015
package.json increment version Feb 21, 2019


Knockout is a JavaScript MVVM (a modern variant of MVC) library that makes it easier to create rich, desktop-like user interfaces with JavaScript and HTML. It uses observers to make your UI automatically stay in sync with an underlying data model, along with a powerful and extensible set of declarative bindings to enable productive development.

Getting started

Join the chat at

Totally new to Knockout? The most fun place to start is the online interactive tutorials.

For more details, see

Downloading Knockout

You can download released versions of Knockout from the project's website.

For Node.js developers, Knockout is also available from npm - just run npm install knockout.

Building Knockout from sources

If you prefer to build the library yourself:

  1. Clone the repo from GitHub

    git clone
    cd knockout
  2. Acquire build dependencies.

    Make sure you have Node.js installed on your workstation. This is only needed to build Knockout from sources. Knockout itself has no dependency on Node.js once it is built (it works with any server technology or none). Now run:

    npm install -g grunt-cli
    npm install

    The first npm command sets up the popular Grunt build tool. You might need to run this command with sudo if you're on Linux or Mac OS X, or in an Administrator command prompt on Windows. The second npm command fetches the remaining build dependencies.

  3. Run the build tool


    Now you'll find the built files in build/output/.

Running the tests

If you have phantomjs installed, then the grunt script will automatically run the specification suite and report its results.

Or, if you want to run the specs in a browser (e.g., for debugging), simply open spec/runner.html in your browser.


MIT license -

You can’t perform that action at this time.