# Licenses The runtime packages are MIT licensed. `@elements/app` is MIT licensed, and it includes the runtime that Elements HTML runs on, which is where most of an app's code is written. `@elements/style` is MIT licensed too. You own everything you build, and a built app runs on plain Node.js. You pay for the tooling: the project server, build, test runner and deploy. The tooling is a subscription, per machine. The price is predictable per month, not based on traffic, requests or revenue. ## What Is a License A license grants one machine permission to run the `elements` tooling. One license, one machine. Any machine that runs the `elements` command needs one: your laptop, a CI runner, a deployment box. An account holds a pool of licenses. A checkout takes a license from the pool for one machine, which leaves one fewer available. A checkin puts it back, so another machine can take it. ## Getting a License Install Elements from [elements.dev/install](https://elements.dev/install). The install command is tied to your account, so the machine checks out a license from your account's pool when the install completes. On a new account, that first checkout starts the trial. On a machine that already has Elements installed, run `elements license checkout`. ## License Files The tooling installs two files next to its binaries, in the elements directory: `LICENSE.txt`, the license notice with the address of the Elements License Agreement, and `THIRD-PARTY-NOTICES.txt`, the license of every open source project linked into the `elements` binaries, including the TypeScript compiler the tooling is built on. ## `elements license` Shows the current license on this machine. ```bash Terminal elements license ``` Use this when you want to confirm a license is in place, or when an `elements` command mentions the license and you want to see the details. Alias: `elements l`. ## `elements license checkout` Takes a license from an account's pool for this machine. ```bash Terminal elements license checkout elements license checkout ``` With no arguments, the license comes from the account this machine is already on. With a token, it comes from the token's account. Your install command carries your own account's token. To use someone else's account, get a token from its administrator. If the pool has no license available, the checkout fails. Check a license in on another machine, or add licenses from your account. Deployment handles checkout for you. See `elements man deploy`. Alias: `elements license c`. ## `elements license checkin` Puts this machine's license back in the pool, so another machine can take it. ```bash Terminal elements license checkin ``` Use this when you're retiring a machine, moving development to a new laptop, or rotating a deployment box. After checkin, this machine has no license. You can also free a license from the web: your account page at [elements.dev/account](https://elements.dev/account) lists every machine with a license, and Checkin puts that machine's license back in the pool. This is often easier than signing in to the machine. Aliases: `elements license release`, `elements license r`. ## `elements purchase` Opens the purchase page in your browser. ```bash Terminal elements purchase ``` If the browser can't open, the command prints the address so you can visit it from another machine. After you buy, the licenses are delivered to your machines automatically. ## Related - Deploy: `elements man deploy` - CLI: `elements man cli`