Skip to content
A (deprecated) framework for building exercises to work with Khan Academy.
HTML JavaScript CSS Python Shell Yacc
Branch: master
Clone or download

Latest commit

csilvers Update deps in exercise-packages to resolve security complaints.
I also took the opportunity to update the `license` field to the
modern format.  (The versino of the CC license came from the README.)

Auditors: eater

Test Plan:
I ran `make serve` and visited http://localhost:8000/test with a bunch
of 200's.

I also ran `make pack` with success.

Since this repo is no longer used I don't know that ay other testing
makes sense.
Latest commit 9cd98ee Dec 5, 2018


Type Name Latest commit message Commit time
Failed to load latest commit information.
build Replace references to KA.getUserID Mar 10, 2016
css Update `local-only` dependencies Mar 9, 2016
exercises Disallow degenerate case in rhombus creation Mar 10, 2016
fonts Move all answer area content to the bottom of the question area Nov 20, 2014
genfiles Replace references to KA.getUserID Mar 10, 2016
images Update badge images and fix clipping Oct 23, 2013
test Be more conservative about saying something is a multiple of pi. Mar 21, 2016
third_party Differentiate between error types when failing to load an exercise. Dec 17, 2015
tools Add tools/, which will be automatically run by khan-linter. Sep 12, 2013
utils Update color palette to match Perseus May 31, 2016
.arcconfig Fix the Show Answers button when reporting an exercise issue. May 29, 2015
.arclint Fix the regexp for arc lint to correctly only match a single line. Oct 13, 2015
.gitignore Fixed a few TODOs. May 27, 2014
.gitmodules Move qunit to a more-global directory Jul 14, 2011
Makefile Be more conservative about saying something is a multiple of pi. Mar 21, 2016 Answer major question in README. Dec 8, 2015
exercises-stub.js Add a bunch of eslint-disable comments for legacy code. Oct 13, 2015
history.js Remove a bunch of unused code from khan-exercises! May 10, 2016
interface.js Expose Khan.initReportLink to interactive API May 12, 2016
khan-exercise.js Fix the PerseusBridge call. May 11, 2016
lint_blacklist.txt Turn off linting for khan-exercises using a big hammer. May 9, 2016
package.json Update deps in exercise-packages to resolve security complaints. Dec 5, 2018
requirements.txt First pass at creating a new script for our i18n e… Jan 21, 2013

Khan Academy Exercises

Khan Academy has created a generic framework for building exercises. This framework, together with the exercises themselves, can be used completely independently of the Khan Academy application.

This repo consists of two parts:

  • Various HTML files that describe exercises.
  • A jQuery plugin for generating a usable, interactive, exercise from any of the HTML files.

Current Status

Khan Exercises is no longer used for development of new exercises at Khan Academy. We're always looking to improve the exercises that are currently built with Khan Exercises, but at this time we don't intend to add any new exercises. New exercises on Khan Academy are written by many content experts using Perseus and stored in our datastore as individual questions.

The bulk of our bug reports now go into Zen Desk where volunteers surface issues to KA developers, but we still process issues and PRs that come in through this repository. The goal is to keep high-quality bug reports and feature requests in this repository so awesome OSS developers who want to help KA have the tools do so.

If you're looking to contribute time, looking through our wiki is a good place to start. Questions should go into the issue tracker (we may set up gitter if there ends up being a high volume of questions).


Copyright (c) 2015 Khan Academy

The exercise framework is MIT licensed.

The exercises are under a Creative Commons by-nc-sa license.

Using the Framework Locally

You need to serve the files from some sort of a server. You can't just open the files directly in a browser. For example:

cd khan-exercises
python -m SimpleHTTPServer # or python3 -m http.server

Now if you open your browser to http://localhost:8000 (or you should see the contents of the khan-exercises directory. Navigate to the exercises subfolder, and an HTML file under there to see an exercise.


If you're passionate about providing a free world-class education for anyone, anywhere and want to apply to be a full-time or intern software developer at Khan Academy, please do so.

You can’t perform that action at this time.