---
name: "talk"
section: "1"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/talk"
---

# talk(1)

talk to another user

## NAME

**talk** – talk to another user

## SYNOPSIS

**talk** *person* \[*ttyname*\]

## DESCRIPTION

The **talk** utility is a visual communication program which copies lines from your terminal to that of another user.

Options available:

- *person*

  If you wish to talk to someone on your own machine, then *person* is just the person's login name. If you wish to talk to a user on another host, then *person* is of the form ‘user@host’ or ‘host!user’ or ‘host:user’.

- *ttyname*

  If you wish to talk to a user who is logged in more than once, the *ttyname* argument may be used to indicate the appropriate terminal name, where *ttyname* is of the form ‘ttyXX’.

When first called, **talk** sends the message

```
Message from TalkDaemon@his_machine...
talk: connection requested by your_name@your_machine.
talk: respond with: talk your_name@your_machine
```

to the user you wish to talk to. At this point, the recipient of the message should reply by typing

```
talk  your_name@your_machine
```

It does not matter from which machine the recipient replies, as long as his login-name is the same. Once communication is established, the two parties may type simultaneously, with their output appearing in separate windows. Typing control-L ‘^L’ will cause the screen to be reprinted. Typing control-D ‘^D’ will clear both parts of your screen to be cleared, while the control-D character will be sent to the remote side (and just displayed by this **talk** client). Your erase, kill, and word kill characters will behave normally. To exit, just type your interrupt character; **talk** then moves the cursor to the bottom of the screen and restores the terminal to its previous state.

Permission to talk may be denied or granted by use of the [mesg(1)](/mesg/1.md) command. At the outset talking is allowed.

## FILES

- */etc/hosts*

  to find the recipient's machine

- */var/run/utx.active*

  to find the recipient's tty

## SEE ALSO

[mail(1)](/mail/1.md), [mesg(1)](/mesg/1.md), [wall(1)](/wall/1.md), [who(1)](/who/1.md), [write(1)](/write/1.md), [talkd(8)](/talkd/8.md)

## HISTORY

The **talk** command appeared in 4.2BSD.

In FreeBSD 5.3, the default behaviour of **talk** was changed to treat local-to-local talk requests as originating and terminating at *localhost*. Before this change, it was required that the hostname (as per [gethostname(3)](/gethostname/3.md)) resolved to a valid IPv4 address (via [gethostbyname(3)](/gethostbyname/3.md)), making **talk** unsuitable for use in configurations where [talkd(8)](/talkd/8.md) was bound to the loopback interface (normally for security reasons).

## BUGS

The version of **talk** released with 4.3BSD uses a protocol that is incompatible with the protocol used in the version released with 4.2BSD.

Multibyte characters are not recognized.
