# Add a command for building and installing a locally-developed Zed extension \(\#8781\) · gitcafe/zed

[View on GitCafe](https://git.cafe/gitcafe/zed/commit/675ae24964625a500d0ef1a3f2f71649c210b189)

Repository: [gitcafe/zed](https://git.cafe/gitcafe/zed)

Visibility: public

Requested revision: 675ae24964625a500d0ef1a3f2f71649c210b189

Requested commit: 675ae24964625a500d0ef1a3f2f71649c210b189

Commit: 675ae24964625a500d0ef1a3f2f71649c210b189

Tree: 616f9a77c8b8a98249e09a3954562aad2b20fdde

Author: Max Brunsfeld

Committer: GitHub

## Message

```
Add a command for building and installing a locally-developed Zed extension (#8781)

This PR adds an `zed: Install Local Extension` action, which lets you
select a path to a folder containing a Zed extension, and install that .
When you select a directory, the extension will be compiled (both the
Tree-sitter grammars and the Rust code for the extension itself) and
installed as a Zed extension, using a symlink.

### Details

A few dependencies are needed to build an extension:
* The Rust `wasm32-wasi` target. This is automatically installed if
needed via `rustup`.
* A wasi-preview1 adapter WASM module, for building WASM components with
Rust. This is automatically downloaded if needed from a `wasmtime`
GitHub release
* For building Tree-sitter parsers, a distribution of `wasi-sdk`. This
is automatically downloaded if needed from a `wasi-sdk` GitHub release.

The downloaded artifacts are cached in a support directory called
`Zed/extensions/build`.

### Tasks

UX

* [x] Show local extensions in the Extensions view
* [x] Provide a button for recompiling a linked extension
* [x] Make this action discoverable by adding a button for it on the
Extensions view
* [ ] Surface errors (don't just write them to the Zed log)

Packaging

* [ ] Create a separate executable that performs the extension
compilation. We'll switch the packaging system in our
[extensions](https://github.com/zed-industries/extensions) repo to use
this binary, so that there is one canonical definition of how to
build/package an extensions.

### Release Notes:

- N/A

---------

Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
```

## Parents

- [e273198ada7f38b180c9205b45035b6e527560bd](https://git.cafe/gitcafe/zed/commit/e273198ada7f38b180c9205b45035b6e527560bd?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zed/tree/675ae24964625a500d0ef1a3f2f71649c210b189?format=markdown)
