Alloy is an MVC framework for the Appcelerator Titanium SDK
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
Alloy Merge pull request #901 from feons/ALOY-1621 Oct 10, 2018
bin added more capabilities to command line Jun 10, 2012
docs [ALOY-1523] Update Alloy old require-paths Oct 26, 2016
hooks Add "theme" CLI parameter Sep 19, 2018
jakelib Replace Underscore with Lodash for Alloy compile (#862) Dec 12, 2017
locales Updated the Titanium CLI hook to subprocess the Alloy CLI if not bein… Oct 9, 2012
platforms feat: add iPhone XS Max and iPhone XR launch-images (#908) Sep 13, 2018
samples Merge pull request #889 from jawa9000/master Aug 10, 2018
templates Revert "[ALOY-1609] Add plugins/ti.alloy to gitignore" Aug 29, 2018
test [ALOY-1630] Remove "localStorage" from info subcommand Sep 13, 2018
tools Replace Underscore with Lodash for Alloy compile (#862) Dec 12, 2017
.eslintignore lint tools Dec 1, 2016
.eslintrc.js add es6 to eslint env config Mar 8, 2018
.gitignore Use Jenkinsfile for build (#824) Apr 20, 2017
.npmignore Use Jenkinsfile for build (#824) Apr 20, 2017
.retireignore Adding .retireignore file so that retire.js can skip the test suites. Feb 14, 2017 Update Aug 10, 2018
Jakefile changing mode on files to be more permissive Aug 30, 2012
Jenkinsfile [ALOY-1611] Only tag on a succesful publish, remove yarn usage (#887) Mar 21, 2018
LICENSE update the date on the LICENSE Apr 12, 2013 minor fix to Contributors Mar 29, 2018
cli_config.json [ALOY-1167] exit with status code of 1 on errors with failing tests Oct 21, 2014
package-lock.json bump version 1.13.3 Oct 10, 2018
package.json bump version 1.13.3 Oct 10, 2018


Build Status Dependency Status devDependency Status NPM version


Alloy is an MVC application framework by Appcelerator for Titanium. More high-level details can be found here:

Getting Started


from npm:

# install the latest stable
[sudo] npm install -g alloy

# install a specific version
[sudo] npm install -g alloy@1.4.1

# install cutting edge directly from github
[sudo] npm install -g git://

from Titanium Studio

...oh yeah, Studio will do it for you automatically. :)

Running Sample Test Apps

Alloy includes many sample and test apps in the sample/apps folder (see above). For example, basics/simple or todo. You can run these in a few different ways:

A) With a regular Alloy installation

Beginning with Alloy 1.6, you can do the following:

# first, create a Titanium Classic project
titanium create --name yourAppName
cd yourAppName

# then, convert it to an Alloy project, using the test app as a template
alloy new . --testapp basics/simple

B) By cloning the repo and using the Jake test runner

# first, clone the repo
git clone
cd alloy

# install jake globally
[sudo] npm install -g jake

# install alloy globally from the cloned repo
[sudo] npm install -g .

# install alloy's local testing dependencies
npm install

# run a test app
jake app:run dir=basics/simple

C) Importing the "Harness" to Titanium Studio

You can use these apps through Titanium Studio too. The easiest way to do that would be to import the test/project/Harness into Titanium Studio. After that, everytime you run jake, your project in Studio will be updated. Once in Studio, you can run for any platform, Titanium SDK version, or change any settings you want. This will give you a lot more options and power than running solely from the command line.

Additional Notes on Jake

  • See the jake readme for information on using jake including the arguments and flags it accepts.
  • on OSX or Linux
    • Try using sudo with the jake command if you run into permission errors.
  • on Windows
    • Don't run jake from within a user folder (i.e. C:\Users\tony\alloy), as you can get all kinds of non-obvious permissions failures from the child processing Alloy does. Your safest bet is to just git clone right to C:\alloy.
    • Node.js has an issue piping output between node processes on Windows. I've tried to workaround as best I can. You may still see errors pop up, so it's suggested that if you run the automated testing via jake test:all or npm test, you do so on a non-Windows OS to ensure there's no red herring failures until the aforementioned node.js issue is resolved.
    • If you decide to ignore my advice and run the tests anyway on Windows, make sure that if you imported the Harness into TiStudio that you don't have TiStudio running. Windows creates locks on key files in that project that are necessary for the testing process. It will make tests fail erroneously.
    • If you're still that stubborn, are running the test suite on Windows, and you're getting those intermittent, erroneous errors, try running them one spec at a time. Instead of doing jake test:all, do jake test:spec[SPEC_NAME], where SPEC_NAME is JS file in the test specs folder.


More so than any other Appcelerator project to this point, we are working collaboratively with the community to develop a framework that works for you. Here's the best ways to discuss Alloy or ask questions.

  • Got an Alloy development question? Go to the Appcelerator Q&A, and make sure to use the alloy tag.
  • Want to discuss the past, present, and future of Alloy? Join the Alloy Google group.
  • Got a confirmed bug? Log it at the Titanium Community Issue Tracker. Make sure to give it the alloy label.

Other than that, all the usual rules for submitting feedback apply. The more code, details, and test cases you provide, the easier it will be to act on that feedback.


Alloy is an open source project. Alloy wouldn't be where it is now without contributions by the community. Please consider forking Alloy to improve, enhance or fix issues. If you feel like the community will benefit from your fork, please open a pull request.

To protect the interests of the Alloy contributors, Appcelerator, customers and end users we require contributors to sign a Contributors License Agreement (CLA) before we pull the changes into the main repository. Our CLA is simple and straightforward - it requires that the contributions you make to any Appcelerator open source project are properly licensed and that you have the legal authority to make those changes. This helps us significantly reduce future legal risk for everyone involved. It is easy, helps everyone, takes only a few minutes, and only needs to be completed once.

You can digitally sign the CLA online. Please indicate your email address in your first pull request so that we can make sure that will locate your CLA. Once you've submitted it, you no longer need to send one for subsequent submissions.


 project  : alloy
 repo age : 6 years
 active   : 843 days
 commits  : 3799
 files    : 4075
 authors  : 
  2364	Tony Lukasavage        62.2%
   377	Feon Sua               9.9%
   374	Tim Poulsen            9.8%
    87	Fokke Zandbergen       2.3%
    87	Jeff Haynie            2.3%
    75	Russ McMahon           2.0%
    44	Ben Hatfield           1.2%
    38	Kevin Whinnery         1.0%
    32	Christopher Williams   0.8%
    30	Chris Barber           0.8%
    21	Carl Orthlieb          0.6%
    18	Ewan Harris            0.5%
    18	Michael                0.5%
    16	Kosuke Isobe           0.4%
    16	Xavier Lacot           0.4%
    15	Praveen Innamuri       0.4%
    13	Ingo Muschenetz        0.3%
    12	Hans Knöchel           0.3%
    11	Paul Mietz Egli        0.3%
    10	Tim Statler            0.3%
    10	Ng Chee Kiat           0.3%
     8	David Bankier          0.2%
     8	Issam Hakimi           0.2%
     8	Jong Eun Lee           0.2%
     6	Arthur Evans           0.2%
     6	bhatfield              0.2%
     5	Brenton House          0.1%
     4	Hazem Khaled           0.1%
     4	Martin Tietz           0.1%
     4	Joel Herron            0.1%
     4	Hans Knoechel          0.1%
     4	mukherjee2             0.1%
     4	Yordan Banev           0.1%
     3	Wilson Luu             0.1%
     3	Federico               0.1%
     3	Gary Mathews           0.1%
     2	miga                   0.1%
     2	Bryan Hughes           0.1%
     2	Michael Kåring         0.1%
     2	Aaron Saunders         0.1%
     2	Rene Pot               0.1%
     2	Marc Tamlyn            0.1%
     2	Iain Dawson            0.1%
     2	Davide Cassenti        0.1%
     1	farwayer               0.0%
     1	Ajay kumar Guthikonda  0.0%
     1	Anders D. Johnson      0.0%
     1	Andrew Blair           0.0%
     1	Andrew McElroy         0.0%
     1	Andrey Tkachenko       0.0%
     1	Brian Immel            0.0%
     1	Chris Gedrim           0.0%
     1	Clem                   0.0%
     1	Dan Frankowski         0.0%
     1	Dan Tamas              0.0%
     1	Daniel Mahon           0.0%
     1	Daniel Pfeifffer       0.0%
     1	Daniel Waardal         0.0%
     1	Family                 0.0%
     1	J. Tangelder           0.0%
     1	Jeff Antram            0.0%
     1	Jeremy Martin          0.0%
     1	Jorge Macías           0.0%
     1	João Teixeira          0.0%
     1	Kelly Nicholes         0.0%
     1	Kondal Kolipaka        0.0%
     1	Kota Iguchi            0.0%
     1	Lee, JongEun           0.0%
     1	Manuel Conde Vendrell  0.0%
     1	Manuel Lehner          0.0%
     1	Matthew Lanham         0.0%
     1	Mattijah               0.0%
     1	Micah Alcorn           0.0%
     1	Muhammad Dadu          0.0%
     1	Nuno Costa             0.0%
     1	Reymundo López         0.0%
     1	Sergey Nosenko         0.0%
     1	Vui Nguyen             0.0%
     1	ewieberappc            0.0%
     1	federico1525           0.0%
     1	gitizenme              0.0%
     1	godspeedelbow          0.0%
     1	hamasyou               0.0%
     1	jeffatstepup           0.0%
     1	longton95              0.0%


Alloy is developed by Appcelerator and the community and is Copyright (c) 2012 by Appcelerator, Inc. All Rights Reserved. Alloy is made available under the Apache Public License, version 2. See the LICENSE file for more information.