# terminal-devtools

> Terminal based Devtools for Node

Latest version **1.0.5-rc1** (published 2016-02-08) · MIT license · 0 weekly downloads

## Install

```sh
npm install terminal-devtools
pnpm add terminal-devtools
yarn add terminal-devtools
bun add terminal-devtools
```

Provides the command `devtools`.

## Health

**Score 5/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: insecure dependencies; abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.5-rc1 |
| Published | 2016-02-08 |
| First published | 2015-12-11 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 12 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 73 |
| Author | David Mark Clements |
| Maintainers | davidmarkclements, pelger |

## Links

- npm: https://www.npmjs.com/package/terminal-devtools
- Repository: https://github.com/apparatus/terminal-devtools
- Homepage: https://github.com/apparatus/terminal-devtools#readme
- Issues: https://github.com/apparatus/terminal-devtools/issues
- npm.io page: https://npm.io/package/terminal-devtools

## Dependencies (12)

- [yadc](https://npm.io/package/yadc.md) 0.0.1
- [react](https://npm.io/package/react.md) ^0.14.3
- [redux](https://npm.io/package/redux.md) ^3.0.5
- [blessed](https://npm.io/package/blessed.md) ^0.1.81
- [minimist](https://npm.io/package/minimist.md) ^1.2.0
- [react-redux](https://npm.io/package/react-redux.md) ^4.0.1
- [redux-thunk](https://npm.io/package/redux-thunk.md) ^1.0.2
- [redux-logger](https://npm.io/package/redux-logger.md) ^2.3.1
- [react-blessed](https://npm.io/package/react-blessed.md) github:davidmarkclements/react-blessed#patches
- [babel-polyfill](https://npm.io/package/babel-polyfill.md) ^6.3.14
- [react-functional](https://npm.io/package/react-functional.md) ^1.2.0
- [source-map-support](https://npm.io/package/source-map-support.md) ^0.4.0

## Recent versions

- 1.0.5-rc1 (latest) — 2016-02-08
- 1.0.4-rc1 — 2016-02-08
- 1.0.3-rc1 — 2016-02-08
- 1.0.2-rc1 — 2016-02-08
- 1.0.1-rc1 — 2016-02-08
- 1.0.0-rc1 — 2016-02-08
- 0.0.0 — 2015-12-11

## README

# Terminal Devtools

Terminal based Devtools for Node

![terminal devtools](./demo.gif)

## Status: Pre-release

## Install

```sh
$ npm i -g terminal-devtools
```

## Usage

```sh
$ devtools [--port <port>] [--host <host>]
```

By default `devtools` will connect to the default debugger port (5858)

```sh
$ devtools <pid>
```

When a valid `node` Process ID is passed, `devtools` will send a `SIGUSR2`
signal to the process, putting it into debug mode then connect to port
5858.

## Navigating

* **?** - help and settings
* **c** - **c**ontinue, resume if paused, pause if resumed
* **n** - step **n**ext
* **i** - step **i**into
* **o** - step **out** of
* **b** - set **breakpoint** (must be in code text panel)

* **tab** - move forward between panels
* **shift+tab** - move backward between panels
* **ctrl+n** - **n**avigator
* **ctrl+t** - code **t**ext 
* **ctrl+s** - call**s**tack
* **ctrl+p** - break**p**oints
* **ctrl+o** - sc**o**pe
* **ctrl+k** - console panel
* **2** - select Console tab

* arrow keys and vi keys (hjkl) control selections in panels
* the mouse can also be used to select tabs, panels and items

## Examples

### Zero-config
Put a service into debug mode, break on first line

```sh
$ node --debug-brk examples/simple
```

Connect to default debug port
```sh
$ devtools
```

### Multi-process
If we need to use more than debug port we can specify

Expose debug port as 5859
```sh
$ node --debug-brk=5859 examples/debugger-single-tick
```

Connect to custom debug port
```sh
$ devtools --port 5859
```

### Debug a running process

Start a process as normal, debug mode is completely off

```sh
$ node examples/debugger
3879
```

Process handily outputs PID, pass it to `devtools`

```sh
$ devtools 3879
```

`devtools` puts process into debug mode and connects to debugger.


## Layouts

There are two supported layouts, Normal and Minimal.

The layout can be changed in Settings (`?` or click the ⚙ icon).

In minimal layout, hidden panels can be revealed as dialogs using the 
`ctrl` based shortcuts (Navigator: `ctrl+n`, Scope: `ctrl+o`). To exit a
Scope or Navigator dialog press the `esc` key.


## Contributing

More than welcome

See [devnotes](./devnotes.md)

Any questions, twitter: [@davidmarkclem](https://twitter.com/@davidmarkclem)

## License

MIT

---
_Source: https://npm.io/package/terminal-devtools · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
