```
#### Virtualenv with pip
```sh
source activate myenv
pip install ipykernel
python -m ipykernel install --user --name myenv --display-name "Python (myenv)"
```
### R (Ark Kernel) {#r-ark}
Install [Ark](https://github.com/posit-dev/ark/releases) by downloading the release for your operating system. For example, for macOS just unpack `ark` binary and put it into `/usr/local/bin`. Then run:
```sh
ark --install
```
### R (Xeus Kernel) {#r-xeus}
- Install [Xeus-R](https://github.com/jupyter-xeus/xeus-r)
- Install the R Extension for Zed (search for `R` in Zed Extensions)
<!--
TBD: Improve R REPL (Ark Kernel) instructions
-->
### Typescript: Deno {#typescript-deno}
- [Install Deno](https://docs.deno.com/runtime/manual/getting_started/installation/) and then install the Deno jupyter kernel:
```sh
deno jupyter --install
```
<!--
TBD: Improve R REPL (Ark Kernel) instructions
-->
### Julia
- Download and install Julia from the [official website](https://julialang.org/downloads/).
- Install the Julia Extension for Zed (search for `Julia` in Zed Extensions)
<!--
TBD: Improve Julia REPL instructions
-->
### Scala
- [Install Scala](https://www.scala-lang.org/download/) with `cs setup` (Coursier):
- `brew install coursier/formulas/coursier && cs setup`
- REPL (Almond) [setup instructions](https://almond.sh/docs/quick-start-install):
- `brew install --cask temurin` (Eclipse foundation official OpenJDK binaries)
- `brew install coursier/formulas/coursier && cs setup`
- `coursier launch --use-bootstrap almond -- --install`
## Changing which kernel is used per language {#changing-kernels}
Zed automatically detects the available kernels on your system. If you need to configure a different default kernel for a
language, you can assign a kernel for any supported language in your `settings.json`.
```json
{
"jupyter": {
"kernel_selections": {
"python": "conda-env",
"typescript": "deno",
"javascript": "deno",
"r": "ark"
}
}
}
```
## Debugging Kernelspecs
Available kernels are shown via the `repl: sessions` command. To refresh the kernels you can run, use the `repl: refresh kernelspecs` command.
If you have `jupyter` installed, you can run `jupyter kernelspec list` to see the available kernels.
```sh
$ jupyter kernelspec list
Available kernels:
ark /Users/z/Library/Jupyter/kernels/ark
conda-base /Users/z/Library/Jupyter/kernels/conda-base
deno /Users/z/Library/Jupyter/kernels/deno
python-chatlab-dev /Users/z/Library/Jupyter/kernels/python-chatlab-dev
python3 /Users/z/Library/Jupyter/kernels/python3
ruby /Users/z/Library/Jupyter/kernels/ruby
rust /Users/z/Library/Jupyter/kernels/rust
```
> Note: Zed makes best effort usage of `sys.prefix` and `CONDA_PREFIX` to find kernels in Python environments. If you want explicitly control run `python -m ipykernel install --user --name myenv --display-name "Python (myenv)"` to install the kernel directly while in the environment.