tor-ctrl
Version:
Node.js library for accessing the Tor control port
61 lines (40 loc) • 2.05 kB
Markdown
# tor-ctrl
[](https://github.com/shahradelahi/node-tor-control/actions/workflows/ci.yml)
[](https://www.npmjs.com/package/tor-ctrl)
[](https://packagephobia.com/result?p=tor-ctrl)

[](/LICENSE)
_tor-ctrl_ is a simple library to connect to a Tor control port and send commands to it.
## 📦 Installation
```bash
npm install tor-ctrl
```
## 📖 Usage
In below example, we are requesting for a new identity from Tor.
```typescript
import { TorControl } from 'tor-ctrl';
const tc = new TorControl({
host: 'localhost',
port: 9051,
// Or, if you want to control via Tor Unix socket:
// socketPath: '/var/run/tor/control',
password: 'secure-password',
});
await tc.connect();
const data = await tc.getNewIdentity();
console.log(data); // { code: 250, message: 'OK' }
await tc.disconnect();
```
###### Send a Custom Command
If you don't know the available commands, please first check out the official the [Tor Control Protocol](https://spec.torproject.org/control-spec/commands.html) specifications.
```typescript
// ... inside the try block after connect()
const data = await tc.sendCommand(['GETINFO', 'version', 'config-file']);
console.log(data); // [ { code: NUM, message: STRING }, ... ]
```
For more examples, check out the [examples](/examples) directory.
## 🤝 Contributing
Want to contribute? Awesome! To show your support is to star the project, or to raise issues on [GitHub](https://github.com/shahradelahi/node-tor-control).
Thanks again for your support, it is much appreciated! 🙏
## License
[MIT](/LICENSE) © [Shahrad Elahi](https://github.com/shahradelahi) and [contributors](https://github.com/shahradelahi/node-tor-control/graphs/contributors).