Here is a list of known plugins and enhancements for Knockout. Note that these are unofficial. Plugin Developers, please feel free to add your contributions! * [Entity Spaces](https://github.com/EntitySpaces/entityspaces.js)
A complete ORM solution which uses ko.observables as properties and supports hierarchical data models * [hookpunch.js](https://github.com/johannds/hookpunch.js)
Adds state tracking and basic undo/revert functionality. Array filters for returning only changed/new objects. * [kavie](https://github.com/mattNit/Kavie)
Incredibly simple and easy to use validation * [Knock-Knock validation](https://github.com/Enome/knockknock)
Small validation library. * [Knockout-binding-selector](https://github.com/cwdoh/Knockout-Binding-Selector/)
Provides conditional binding-overloading for knockoutJs. * [Knockout-Bootstrap](http://billpull.github.com/knockout-bootstrap/)
Custom Bindings that utilize Twitter Bootstrap JS plugins * [knockout-collection](https://github.com/webforge-labs/knockout-collection)
Observable array which stores items indexed with a unique identifier * [knockout-contextmenu](https://github.com/nescalante/knockout.contextmenu)
Knockout binding for an easy-to-use contextual menu. * [knockout-DataGrid](https://github.com/jmvtrinidad/knockout-dataGrid)
KnockoutJs DataGrid is a library that can be used just like jQuery DataTables. * [knockout-date-range-picker](https://github.com/ArchonInfoSys/knockout-date-range-picker)
A simple knockout binding that allows you to select a date range. * [knockout-decorators](https://github.com/gnaeus/knockout-decorators)
Decorators for use Knockout JS in TypeScript and ESNext environments (like [MobX](https://github.com/mobxjs/mobx)) * [knockout-hint](http://sstude.com/knockout-hint)
Knockout binding handler that allows you to display hints on the page. * [knockout-init](https://github.com/ArchonInfoSys/knockout-init)
This is a simple knockout component that will automatically create observables from arbitrary json. * [knockout-inline-confirm](https://github.com/ArchonInfoSys/knockout-inline-confirm)
A knockout inline-confirmation binding for links/buttons * [knockout-integer](https://github.com/ArchonInfoSys/knockout-integer)
A simple knockout extender that coerces values to integers * [Knockout-jQueryUI](http://gvas.github.io/knockout-jqueryui/)
Knockout bindings for the jQuery UI widgets. * [Knockout-Kendo](http://rniemeyer.github.com/knockout-kendo/)
Provides support for binding with Telerik Kendo widgets * [knockout-logger-js](https://github.com/onlyurei/knockout-logger-js)
A logger that output to the page and/or the console * [knockout-Memento](https://github.com/mmjr/Knockout-Memento)
Attach observable's to undo/redo stacks. * [knockout-money](https://github.com/ArchonInfoSys/knockout-money)
A simple knockout extender that wraps accounting.js * [knockout-projections](https://github.com/stevesanderson/knockout-projections)
Adds observable `map` and `filter` features to observable arrays, so you can transform collections in arbitrary ways and have the results automatically update whenever the underlying source data changes. * [Knockout-Reactor](https://github.com/ZiadJ/knockoutjs-reactor)
Adds the ability to watch nested observables and create dependencies with minimal coding. It goes beyond the **`ko.observableArray`** function by allowing the tracking of all subscribables nested within the array elements dynamically. * [knockout-relational](https://github.com/asaake/knockout-relational)
relational model mapping library. attributes is knockout observable. * [knockout-responsive](https://github.com/ArchonInfoSys/knockout-responsive)
Knockout binding to conditionally hide/show content depending on the width of the window * [knockout-save-location-hash](https://github.com/pabra/knockout-save-location-hash)
Save observables to location hash to be able to share links of the state of a model. * [knockout-secure-binding](https://github.com/brianmhunt/knockout-secure-binding)
A binding provider that lets one use Knockout with a Content Security Policy. * [knockout-spa](https://github.com/onlyurei/knockout-spa)
A mini (but full-fledged) SPA framework built on top of Knockout, Require, Director, jQuery, Sugar * [knockout-spin](https://github.com/ArchonInfoSys/knockout-spin)
Simple knockout binding that wraps spin.js * [knockout-store](https://github.com/Spreetail/knockout-store)
Facilitates separation of app state from view models via a `connect` method inspired by [react-redux](https://github.com/reactjs/react-redux/blob/master/docs/api.md#connectmapstatetoprops-mapdispatchtoprops-mergeprops-options). * [knockout-transitions](https://github.com/ArchonInfoSys/knockout-transitions)
Simple knockout bindings to apply jquery transitions to elements * [Knockout jqGridBinding](https://github.com/CraigCav/Knockout-jqGridBinding)
A grid binding plugin that provides basic integration with the JqGrid jQuery plugin. * [Knockout UI](https://github.com/madcapnmckay/Knockout-UI)
Knockout UI is a collection of UI components based on Knockout and JQuery UI. * [KnockoutApp](https://github.com/paglias/KnockoutApp)
A small framework for building apps with KnockoutJS.
It provides a **Model**, a **Collection** to store models and a **Sync** class to communicate with the server.
See also the [discussion](https://groups.google.com/d/topic/knockoutjs/qY61iiZkpEY/discussion) on the forum. * [Knockout.ACL](https://github.com/plcgi1/knockout.viewNavWithAcl)
plugin for show/hide buttons, links corresponding to server data * [Knockout.BindingConventions](https://github.com/AndersMalmgren/Knockout.BindingConventions)
Convention over configuration binding provider for KO. * [Knockout.Bootstrap](https://github.com/AndersMalmgren/Knockout.Bootstrap)
A template bootstrapper that enables server side templates in a convention over configuration way. * [Knockout.Combobox](https://github.com/AndersMalmgren/Knockout.Combobox)
Combobox binding for KO. * [Knockout.Concurrency](https://github.com/AndersMalmgren/Knockout.Concurrency)
A Concurrency resolver plugin for KO. * [Knockout.DeferredUpdates](https://github.com/mbest/knockout-deferred-updates)
Modifies parts of Knockout’s observable/subscription system to use deferred updates. * [Knockout.Dictionary](https://github.com/jamesfoster/knockout.observableDictionary)
A comprehensive implementation of an observable dictionary. * [Knockout.Editables](https://github.com/romanych/ko.editables)
Easy way to manage changes of observables and view models with commit/rollback functionality and `hasChanges` flag.
See [simple example](http://romanych.github.com/ko.editables/basic-sample.html) and a bit [advanced](http://romanych.github.com/ko.editables/advanced-sample.html) * [Knockout.External-Template-Engine](https://github.com/ifandelse/Knockout.js-External-Template-Engine)
The Knockout.js External Template Engine extends Knockout.js to allow both native & jQuery templates to be loaded on-demand from an external resource (i.e. - external HTML file). * [knockout.groupedOptions](https://github.com/Supertext/knockout.groupedOptions/)
A custom binding which offers <select> tags containing <optgroup> elements. * [Knockout.LazyLoad](https://github.com/seantimm/Knockout.LazyLoad)
Lazy load images from your Knockout model while scrolling * [Knockout.Live](https://github.com/thelinuxlich/knockout.live.plugin)
A Knockout plugin that syncs observable variables between all clients automatically. * [Knockout.Mapper](https://github.com/LucasLorentz/knockout.mapper)
An extensible and fast object mapping plugin for KnockoutJS. * [Knockout.Mapping](http://knockoutjs.com/documentation/plugins-mapping.html)
The mapping plugin gives you a straightforward way to map a JavaScript object into a view model with the appropriate observables. * [Knockout.Mapping.Merge](https://github.com/grofit/knockout.mapping.merge)
An extension to the mapping plugin which allows merging of data into existing view models, this can be useful when models need updating from json but have validation rules or other extensions applied. * [Knockout.Model](https://github.com/thelinuxlich/knockout.model)
Base model for Knockout.js entities, also see [discussion](http://groups.google.com/group/knockoutjs/browse_thread/thread/ebd8b2f2cc4fff72/80b67d7d4602c17d). It has now a more [advanced fork](https://github.com/explorigin/knockout.model) * [Knockout.Namespaces](https://github.com/hunterloftis/knockout.namespaces)
Multiple KnockoutJS ViewModels (separated by namespaces).
Compatible with the global namespace as well (standard global 'data-bind' ViewModel). * [Knockout.Punches](https://github.com/mbest/knockout.punches)
A collection of enhanced binding syntaxes using Knockout 3+ * [Knockout.Repeat](https://github.com/mbest/knockout-repeat)
Replaces foreach in many instances and is faster and simpler for some tasks. * [Knockout.SwitchCase](https://github.com/mbest/knockout-switch-case)
Provides the classic switch/case construct to Knockout. * [Knockout.Underscore](https://github.com/thelinuxlich/knockout.underscore.plugin)
Adds Underscore methods to Knockout Observable Array. * [Knockout.Validation](https://github.com/ericmbarnard/Knockout-Validation)
Validation plugin that provides native validation rules and extensible rule system for custom validation. * [ko-component-page](https://github.com/matthewnitschke/ko-component-page)
Provides a nice way to display examples for knockout components * [KO-Genius](https://github.com/cameronprattedwards/ko-genius)
Declarative, boilerplate-free view-model definitions and server interactions * [ko-typed](https://github.com/WHenderson/ko-typed)
ko-typed provides observable extensions for restricting and converting observable values based on type. Supports validation. * [ko-validate](https://github.com/tyrsius/ko-validate)
Knockout validation with a flexible extender and a custom binding handler. * [KoExtensions](https://github.com/hoonzis/KoExtensions)
Adds additional bindings to Knockout: **Map** for vizualization on google maps, **Piechart** for rendering any collection as D3JS based pie chart, **Datapicker** to bind input element as bootstrap style date-picker. * [koplus](https://github.com/berhalak/koplus)
Create observables directly in your bindings, no need to specify them twice. * [kotest](https://github.com/jeremija/kotest)
Test Knockout 3.2 components and custom binding handlers with ease. * [ko.calendar](https://github.com/MakerStudios/ko-calendar)
A plugin for creating a date/time picker with minimal code * [ko.datasource](https://github.com/CraigCav/ko.datasource)
Datasource Components for KnockoutJs for paging, sorting and filtering remote sources. * [ko.extenders.date](https://github.com/TessaHarmon/ko.extenders.date)
Simple date formatting extender based on moment.js. * [ko.load](https://github.com/raheelshan/knockout-load)
A plugin for loading views in components * [ko.routing](http://www.mvc-controls.com/free_software/ko_routing)
ko.routing is a light, flexible router for knockout. * [ko.search](https://github.com/raheelshan/knockout-search)
A plugin for friendly search in observable arrays * [ko.types](https://github.com/manuel-guilbault/ko.types)
An extender to create converter observables that are bound to their source and that convert values back and forth (ex: format to string and parse from string). Also, an extender for restricting the value type that can be set to an observable. * [ko.widget](http://gaevoy.github.io/ko.widget)
Building block for your web application. Single Page Application, Composition, Isolation, Panels and Windows all these features are supported by **ko.widget**. It is small, powerful and easy to learn plugin for KnockoutJS. * [ko.xformArray](https://github.com/NickLeippe/xformArray)
Transform Array--an observable array that efficiently tracks another observable array with optional filtering, sorting, and/or transformation/mapping applied in any combination. The transformed array could have entirely different objects that merely relate to the source array's objects. It can also exactly track the source array's sort order while simultaneously applying a filter and a mapping, or sort entirely differently. * [lazy-instance](https://github.com/WHenderson/lazy-instance)
Add instance properties through the prototype chain. * [Observable templates](https://github.com/GilesBradshaw/Knockout.js-Observable-Template-Engine) Get templates from observables - including SVG * [Observable.js](https://github.com/fru/observable.js)
Knockout like observables in a tiny library. * [Pagerjs](https://github.com/finnsson/pagerjs)
The Single Page Application Framework for KnockoutJS.
* [treacherous-knockout](https://github.com/grofit/treacherous-knockout)
A plugin with bindings to support and display the treacherous validation system errors within knockout views (Treacherous is a standalone js validation system)