The easy-to-use OpenStreetMap editor in JavaScript.
JavaScript HTML CSS Other
Latest commit cfd9d60 Jul 28, 2016 @tyrasd tyrasd committed on GitHub spell out synonyms for "miniature golf"
Failed to load latest commit information.
css Remove an item from the multiselect list Jul 25, 2016
data spell out synonyms for "miniature golf" Jul 28, 2016
dist Fix commas, run make Jul 27, 2016
docs Updated screenshot of editing modes buttons. Dec 25, 2013
js/lib Require locale, second pass (#3259) Jul 21, 2016
modules Wrap selection list geometry icon in a span Jul 26, 2016
svg import lodash (#3257) Jul 19, 2016
test Pacify eslint Jul 24, 2016
.eslintrc Require locale, second pass (#3259) Jul 21, 2016
.gitattributes Add fixWinSymlinks.bat and instructions to README Apr 5, 2016
.gitignore git ingore js/lib/id/*.js Jul 6, 2016
.npmignore Add .npmignore that doesn't ignore stuff in dist/ Feb 19, 2016
.travis.yml Clean first Jul 5, 2016 Replace iD global with iD.Context() module (#3254) Jul 19, 2016 iD.svg.Surface -> iD.svg.Layers Feb 24, 2016 1.9.7 CHANGELOG Jul 16, 2016 Add Code of Conduct Mar 27, 2016 Add Code of Conduct, remove translation chart, other minor cleanups Mar 28, 2016 Update Mapbox Satellite imagery request link Apr 29, 2016
LICENSE Add license title Jun 30, 2016
Makefile Require locale, second pass (#3259) Jul 21, 2016 Make note of userLanguage Mar 28, 2013 Add statement of browser support to README Jul 12, 2016 1.9.4 May 3, 2016
build.js import lodash (#3257) Jul 19, 2016
fixWinSymlinks.bat Add fixWinSymlinks.bat and instructions to README Apr 5, 2016
img add symbolic link to img so IE can find cursors Nov 25, 2015
index.html Require locale, second pass (#3259) Jul 21, 2016
land.html Create a dist directory Apr 22, 2013
package.json chore(package): update sinon to version 1.17.5 (#3278) Jul 27, 2016
replaceStuff.js Fixing Interdependecy between ui.preset and ui.core Jul 2, 2016
rollup.config.js Obey the browser field Jul 5, 2016

iD - friendly JavaScript editor for OpenStreetMap

Build Status


  • iD is a JavaScript OpenStreetMap editor.
  • It's intentionally simple. It lets you do the most basic tasks while not breaking other people's data.
  • It supports all popular modern desktop browsers: Chrome, Firefox, Safari, Opera, Edge, and IE11.
  • iD is not yet designed for mobile browsers, but this is something we hope to add!
  • Data is rendered with d3.js.


Come on in, the water's lovely. More help? Ping jfire or bhousel on OpenStreetMap IRC (, in #iD or #osm-dev or #osm) or on the OpenStreetMap dev mailing list.


  • Node.js version 4 or newer
  • Command line development tools (make, git, and a compiler) for your platform
    • Ubuntu:
      • sudo apt-get install build-essential git
    • macOS:
      • Install Xcode and run xcode-select --install from a command line
    • Windows (Cygwin):
      • Install Git for Windows
      • Install Cygwin - choose default packages + make, wget, apache2 (needed for updated mime type list)
      • Optionally, install apt-cyg for managing your Cygwin packages
      • Edit ~/.bashrc:
        Put Git for Windows before Cygwin in PATH, otherwise npm install may fail to fetch git repositories
        export PATH=/cygdrive/c/Program\ Files/Git/mingw64/bin/:$PATH
      • Edit ~/.gitconfig:
        Add these lines to avoid checking in files with CRLF newlines
            autocrlf = input


To run the current development version of iD on your own computer:

  1. Create a local git clone of the project, then cd into the project folder
  2. (Windows Only) Run fixWinSymlinks.bat. This script will prompt for Administrator rights. see also:
  3. Run npm install
  4. Run make
  5. Start a local web server, e.g. python -m SimpleHTTPServer
  6. Open http://localhost:8000/ in a web browser

For guidance on building a packaged version, running tests, and contributing to development, see


iD is available under the ISC License. It includes d3.js, which BSD-licensed.

Thank you

Initial development of iD was made possible by a grant of the Knight Foundation.