---
title: Configuration with CLI tools in Version 5
permalink: /v5/configuration-cli-tools/
toc: true
---

Coral’s CLI tooling has been reinvented in version 5. We’ve replaced the former `./bin/cli` tools with a completely new CLI application which is available on GitHub at: https://github.com/coralproject/coral-cli

The new CLI was built on `oclif` ([View on GitHub](https://github.com/oclif)), the open source CLI Framework originally built by Heroku, and offers an extensible platform for interacting with Coral via CLI. 


## Installation

To get started with the new CLI run:
```
npm install -g @coralproject/coral-cli
```


## Usage

Once installed, run:
```
coral-cli [COMMAND]
``` 
 Below is a list of commands available:
```
CLI to interact with Coral

VERSION
  @coralproject/coral-cli/0.2.0 darwin-x64 node-v11.9.0

USAGE
  $ coral-cli [COMMAND]

COMMANDS
  help     display help for coral-cli
  login    grabs a token for interacting with Coral
  logout   removes credentials for logging in with Coral
  plugins  list installed plugins
  story    manage stories on Coral
  tenant   creates a new tenant
  token    creates tokens on the current user
```

### `coral-cli help [COMMAND]`
Displays help for `coral-cli`, or for the command specified. 
```
USAGE
  $ coral-cli help [COMMAND]

ARGUMENTS
  COMMAND  command to show help for

OPTIONS
  --all  see all commands in CLI
```

### `coral-cli login`
Grabs a session token for interacting with a specific Coral installation. Can be used to create a session prior to running other commands. 
```
USAGE
  $ coral-cli login

OPTIONS
  -d, --domain=domain  (required) domain for tenant to run command against
```

### `coral-cli logout`
Removes credentials for logging in with Coral and terminates current login session.
```
USAGE
  $ coral-cli logout

OPTIONS
  -d, --domain=domain  (required) domain for tenant to run command against
```

### `coral-cli plugins`
Not to be confused with "Talk Plugins" that were available in prior versions of Coral, `coral-cli plugins` are extensions to the `coral-cli` application. See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins).  Use this command to the list installed plugins.

```
USAGE
  $ coral-cli plugins

OPTIONS
  --core  show core plugins

EXAMPLE
  $ coral-cli plugins
```

### `coral-cli plugins:install [PLUGIN]`
Installs a plugin into the CLI. Can be from npm or a git url. See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins)

*NOTE: Installation of a user-installed plugin will override a core plugin. e.g. If you have a core plugin that has a `hello` command, installing a user-installed plugin with a `hello` command will override the core plugin implementation.*
```bash
USAGE
  $ coral-cli plugins:install PLUGIN

ARGUMENTS
  PLUGIN  plugin to install

OPTIONS
  -f, --force    yarn install with force flag
  -h, --help     show CLI help
  -v, --verbose

ALIASES
  $ coral-cli plugins:add

EXAMPLES
  $ coral-cli plugins:install myplugin 
  $ coral-cli plugins:install https://github.com/someuser/someplugin
  $ coral-cli plugins:install someuser/someplugin
```

### `coral-cli plugins:link PLUGIN`
Links a plugin into the CLI for development.
See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins)
```
USAGE
  $ coral-cli plugins:link PLUGIN

ARGUMENTS
  PATH  [default: .] path to plugin

OPTIONS
  -h, --help     show CLI help
  -v, --verbose

EXAMPLE
  $ coral-cli plugins:link myplugin
  ```

### `coral-cli plugins:uninstall PLUGIN`
Removes a plugin from the CLI. See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins)
```
USAGE
  $ coral-cli plugins:uninstall PLUGIN

ARGUMENTS
  PLUGIN  plugin to uninstall

OPTIONS
  -h, --help     show CLI help
  -v, --verbose

ALIASES
  $ coral-cli plugins:unlink
  $ coral-cli plugins:remove
```

### `coral-cli plugins:update`
Update installed plugins. See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins).
```
USAGE
  $ coral-cli plugins:update

OPTIONS
  -h, --help     show CLI help
  -v, --verbose
```

### `coral-cli story:get`
Fetches a story by `id` or `url`, useful to view Story metadata obtained by the scraper. 
```USAGE
  $ coral-cli story:get

OPTIONS
  -d, --domain=domain  (required) domain for tenant to run command against
  --id=id              find a story by ID
  --url=url            find a story by URL
```

### `coral-cli story:merge`
Merge duplicate stories and their comments into a single story. Story metadata & url are maintained on destination. 
```
USAGE
  $ coral-cli story:merge

OPTIONS
  -d, --domain=domain  (required) domain for tenant to run command against
  --from=from          (required) source Story ID that will be merged from
  --into=into          (required) destination Story ID that will be merged into
```

### `coral-cli story:update`
Target a story by `id` to update its `url`. 
```
USAGE
  $ coral-cli story:update

OPTIONS
  -d, --domain=domain  (required) domain for tenant to run command against
  --id=id              (required) the ID of the story to update
  --url=url            (required) the new URL to update the story to
```

### `coral-cli token:create`
Creates a persistent token for the current user (based on running `coral-cli login` above). The token generated can be used to authenticate API requests as the associated user. 
```
USAGE
  $ coral-cli token:create

OPTIONS
  -d, --domain=domain  (required) domain for tenant to run command against
  --name=name          (required) name of the token
```

### `coral-cli token:list`
Lists tokens on the current user (based on running `coral-cli login` above).
```
USAGE
  $ coral-cli token:list

OPTIONS
  -d, --domain=domain  (required) domain for tenant to run command against
```

### `coral-cli token:revoke`
Revokes token by `id`. Token must be on the current user (based on running `coral-cli login` above).
```
USAGE
  $ coral-cli token:revoke

OPTIONS
  -d, --domain=domain  (required) domain for tenant to run command against
  --id=id              (required) id of the token to revoke
```