---
title: register
layout: command
version: 0.59.1
---

Register a plugin

## Signature

```> register (plugin) (signature) --encoding --shell```

## Parameters

 -  `plugin`: path of executable for plugin
 -  `signature`: Block with signature description as json object
 -  `--encoding {string}`: Encoding used to communicate with plugin. Options: [capnp, json]
 -  `--shell {path}`: path of shell used to run plugin (cmd, sh, python, etc)

## Examples

Register `nu_plugin_extra_query` plugin from ~/.cargo/bin/ dir
```shell
> register -e capnp ~/.cargo/bin/nu_plugin_extra_query
```

Register `nu_plugin_extra_query` plugin from `nu -c`(plugin will be available in that nu session only)
```shell
> let plugin = ((which nu).path.0 | path dirname | path join 'nu_plugin_extra_query'); nu -c $'register -e capnp ($plugin); version'
```
