Build IoT using JavaScript. Silk Open Source
JavaScript C++ Shell C Python Makefile Other
Switch branches/tags
Nothing to show
Clone or download
Michael Vines Stooge
Michael Vines and Stooge Simplify
Latest commit 08c2739 Nov 7, 2017
Failed to load latest commit information.
babel-plugin-rewrite-require 1.18.0 Oct 28, 2017
babel-preset-silk-node6 1.18.0 Oct 28, 2017
babel-run 1.18.0 Oct 28, 2017
bsp-gonk Simplify Nov 8, 2017
buildjs ARCH and STL are now configurable Nov 4, 2017
cli Fold silk-alog into silk-log Oct 28, 2017
device-main Fold silk-alog into silk-log Oct 28, 2017
docker Update permissions for /opt/conda Oct 21, 2017
docs Fold silk-alog into silk-log Oct 28, 2017
eslint-config Set mocha env in global silk eslint config Oct 28, 2017
eslint-plugin 1.18.0 Oct 28, 2017
external-ab-neuter Add library modifier to gyp files Oct 28, 2017
external-node-ntp-client Lints Aug 24, 2017
flow-bin 1.18.0 Oct 28, 2017
log Fold silk-alog into silk-log Oct 28, 2017
mic-config 1.18.0 Oct 28, 2017
node-caffe Remove unnecessary mocha env in eslintrc Oct 28, 2017
node-nnpack Support NDK/arm64 Nov 4, 2017
node-wav Remove unnecessary mocha env in eslintrc Oct 28, 2017
node_modules node_modules/webpack-fail-plugin Oct 12, 2017
procrank Add procrank Oct 28, 2017
react-native-blobs 1.18.0 Oct 28, 2017
sdk-emulator 1.18.0 Oct 28, 2017
sdk Sync the disk after wifi setup Nov 3, 2017
tools Fix errors caught by shell linter Aug 24, 2017
travis Fix errors caught by shell linter Aug 24, 2017
version 1.18.0 Oct 28, 2017
.gitignore Ignore build files for node_opencv Feb 25, 2017
.silkrc Add cli setup script Sep 18, 2017 babel-preset-silk-node6 with latest Babel plugins Dec 13, 2016
LICENSE Add 2017 Jun 2, 2017 Remove <br>s from Dec 22, 2016 Avoid BUILDKITE_COMMIT, fetch the SHA1 explicitly Jun 27, 2017
package.json Use webpack-fail-plugin until we upgrade to webpack 2.x Oct 12, 2017
setup Add cli setup script Sep 18, 2017
silknpm.json Find the config file closest to the root Aug 10, 2017


Silk is a free (as in free beer) firmware for a number of smartphones based on the open-source Android operating system with a nodejs layer on top of it that makes it possible to write programs and get access to hardware aspects using only simple JavaScript. We offer a wide range of APIs that make developing for the Internet of Things world using web technologies a present reality.

What is Silk?

Silk is an IoT platform that aims to making programming and developing Internet of Things applications as easy as writing JavaScript via its modern JavaScript/node/npm environment.

How to get started?

Silk CLI

First off you need to install the Silk Command Line Interface, with which you will be able to push your Silk programs to the device or emulator.

Install Silk CLI by running

npm install -g silk-cli

Silk ROMs for devices

If you have one of the devices supported by Silk, you can flash it with a Silk rom. See Compatibility and Roms to find out what devices we support and links to download ROMs for them.

Silk emulator

If you don't have a compatible device, you can still run Silk using our emulator.

Just run

npm install -g silk-emulator

Write code

All you have to do then is create a new program with the Silk CLI by running

silk init <program_name>

It will create a new node package you can start hacking on immediately. Here's the full list of Silk commands that you can use with the CLI: Silk Command Line Interface Reference.

We offer a robust set of API you can use in your Silk program. Check them all out: Silk API reference.

Also don't forget to check out the links in the Resources of this page for all the code examples you can try right away.

Push code to Silk, see it live

Done with the code? Time to try your code. Simply push your program to the device/emulator.

First make sure it's connected:

adb devices

And if it shows up, just type

silk run

You're now good to go, if you've done everything correctly, your program should be up and running!

Release notes

Silk is updated on a regular basis, make sure to check out the Release notes


Nice to hear you want to help! If you are interested in fixing issues and contributing directly to the code base, please see the document How to the contribute.


If you like, you can build Silk from the source we offer. It also helps to start here if you are planning to port Silk to a device. Head out to Building instructions for Linux and OS X, or for Windows (using a Virtual Machine).


Useful links:

Examples to follow:

FAQ and Feedback


Silk is still in its early stages and constantly evolving. Don't grow attached to the current APIs. They will likely change and there will be bugs.


MIT License. See LICENSE for full text.

Files reused from other 3rd party projects may be licensed under other Open Source licenses. Please refer to individual files for details.