# Getting started

> Choose a JavaScript, TypeScript, Python, Java, Kotlin or WebAssembly quickstart, or bring an existing project to Elide.

Choose the language you want to use. Each quickstart takes you from installation to a running program and its next
steps.

## Install

[Install Elide](https://elide.help/docs/installation) for your operating system, then open a new terminal and check:

```bash
elide --version
```

If the shell cannot find `elide`, follow [Verify the install](https://elide.help/docs/installation#verify-the-install). Python also needs
the [Python component](https://elide.help/docs/installation#python).

## Run a file

| Language | Start here | You'll do |
| --- | --- | --- |
| JavaScript or TypeScript | [JavaScript and TypeScript quickstart](https://elide.help/docs/web) | Run a file, import an npm package and run a test. |
| Python | [Python quickstart](https://elide.help/docs/python) | Add Python, run a standard-library program and test it with unittest. |
| Java or Kotlin | [Java and Kotlin quickstart](https://elide.help/docs/jvm#run-your-first-program) | Run source, create a project, resolve Maven dependencies and run JUnit tests. |
| WebAssembly | [WebAssembly guide](https://elide.help/docs/wasm) | Run a WASI module or load a module from JavaScript. |

### Executable scripts

To run a file directly from your shell, follow [Executable scripts](https://elide.help/docs/web#executable-scripts).

## Create a project

The language quickstarts above show the files you need. For scripts, workspaces and a shared `elide.pkl` manifest,
continue to [Project setup](https://elide.help/docs/projects).

### Use an existing project

- **Node, Bun or Deno:** check the [Node](https://elide.help/docs/elide-for-node), [Bun](https://elide.help/docs/elide-for-bun) or [Deno](https://elide.help/docs/elide-for-deno) migration
  guide for command changes and API limits before running the app.
- **Java or Kotlin:** [keep Maven, Gradle or Bazel and use Elide's tools](https://elide.help/docs/build-tools), or
  [migrate the build to Elide](https://elide.help/docs/toolchain/usage/adopt).
- **Python:** check [Python compatibility and command changes](https://elide.help/docs/elide-for-python), then
  [run your project's entry point](https://elide.help/docs/python-toolchain#run-project-scripts).

## Add a dependency

Choose the command for your ecosystem: [npm](https://elide.help/docs/web#npm-packages), [Maven](https://elide.help/docs/toolchain/jvm/maven), or
[Python packages](https://elide.help/docs/python-packages). Plain `elide install` installs Maven dependencies; npm requires
`elide install --ecosystems=npm`.

## Test

Use `elide test` for [JavaScript and TypeScript](https://elide.help/docs/web#tests) or [JUnit](https://elide.help/docs/toolchain/testing).
For Python, [run unittest or pytest as a module](https://elide.help/docs/python-testing); `elide test` does not discover Python tests.

## Build

JavaScript, TypeScript and Python source files run directly. For a project with build tasks, `elide build` writes
outputs and build state to `.dev/`. See [Build tasks](https://elide.help/docs/toolchain/build-tasks) and [JVM packaging](https://elide.help/docs/toolchain/jvm/jar).

## Next steps

- [Build an HTTP service](https://elide.help/docs/http-service): a working server and framework compatibility.
- [Code samples](https://elide.help/docs/code-samples): examples with their expected output.
- [Troubleshooting](https://elide.help/docs/troubleshooting): exact error messages and recovery steps.
