# digit

A finger protocol client implementing [RFC 1288](https://datatracker.ietf.org/doc/html/rfc1288) and [RFC 742](https://datatracker.ietf.org/doc/html/rfc742), written in Rust.

To try this on active finger servers (as of 2026), try the domains `graph.no` and `tilde.town`

## Installation

```
cargo install digit-cli
```

Or from source:

```
cargo install --path .
```

## Usage

```
digit [OPTIONS] [QUERY]
```

### Examples

```bash
# Query a user at a host
digit user@example.com

# List all users at a host
digit @example.com

# Query a user with verbose/long output
digit -l user@example.com

# Use a non-standard port
digit -p 7979 user@example.com

# Set a connection timeout (in seconds)
digit -t 5 user@example.com

# Query a user at localhost
digit user

# List users at localhost
digit
```

### Forwarding queries

The finger protocol supports forwarding queries through a chain of hosts using the `@host1@host2` syntax (RFC 1288, section 2.5.1). For example:

```bash
digit user@host1@host2
```

This connects to `host2` and asks it to forward the query to `host1`. Note that many modern finger servers disable forwarding for security reasons, so this feature depends on server support.

### Options

| Option | Description |
|---|---|
| `-l, --long` | Request verbose/long output (sends `/W` prefix) |
| `-p, --port <PORT>` | Port to connect on (default: 79) |
| `-t, --timeout <SECS>` | Connection timeout in seconds (default: 10) |
| `-h, --help` | Print help |
| `-V, --version` | Print version |

## License

MIT
