Awesome Open Source
Awesome Open Source


Command-line Messaging for Facebook Messenger

Downloads Version License

Messer is a rich Facebook Messenger client for your terminal. Send and receive messages, view chat historys and more!



$ npm install -g messer

Quick Start

node version 12.x required

  1. Install messer

  2. Run messer

    $ messer
  3. Enter your login details (don't worry, we don't store a thing)


Do you store any of my data?

We don't store your username, password, or any of your interactions on Messer.

The only thing we store is a temporary login token when you first log in. This let's us authenticate you with Facebook without you having to enter your username and password every time. If you want to get rid of it, simply run messer cleanup, or if you're in a Messer session, run the logout command.

Can I use a deactivated Facebook account?

No, unforunately not. If you use Messer with a deactivated Facebook account, your account will be reactivated.

How do group chats work?

Messages from group chats appear like

(My cool friends) John Smith - hey guys!!$$@@

Send a message to a group by using the message command. The name is the name of the group chat! Reply works as normal

Commands Reference


Sends a message to a given user

(message | m) "<user>" <message>


  • message "Matthew" hello world!
  • m "Matthew" hello world!

When sending a message, Messer picks the closest match to what you type in as user. For this reason, you should probably use last names if you want to avoid accidentally texting someone.


Replys to the last message you recevied i.e. Sends a message to the user of the most recently received message.

(reply | r) <message>


  • r "hey yo this is my reply"

Note: this will only work if you have received at least one message through Messer.


Lists all of your Facebook friends



Displays the last n messages in the conversation with a given user. The number of messages to retrieve are optional (default is 5).

(history | h) "<user>" [<n>]


  • history "Matthew" 10
  • h "Matthew"


Displays the n most recent conversations. The number of threads is optional (default is 5). The --history option will display the 5 most recent messages in each thread.

recent [<n>] [--history]


  • recent
  • recent 10
  • recent --history


Clears the number of unread messages in the window title. Since we cannot listen on focus events, it has to be done manually.

(clear | c)


Logs you out



Mutes a thread. If no seconds are specified, the thread is muted indefinetely.

mute "<thread-name>" [seconds]


Unmutes a thread

unmute "<thread-name>"


Configure your user settings on Messer

settings (set | get | list) [<key>=<value>]


  • settings list
  • settings get SHOW_READ
  • settings set SHOW_READ=true

For supported settings, see section below

Supported Settings

    • Marks conversation as "read" when using clear command

Lock-on Mode

Locking on to a user or group allows you to send messages without having to specify the message command; just type away!

lock "Tom Q"

To unlock, simply run:


Secret Mode

When in this mode, any messages sent or recieved in the thread will be deleted for you (note, they won't be deleted for everyone).

lock "Tom Q" --secret

Non-interactive Mode

Messer can be run in non-interactive mode with command line arguments to execute a single command.

messer --command='<command>'

Login will be prompted if this is the first time logging in.


  • messer --command='m "John Smith" Hey, John'
  • messer --command='r Hey, John'


If ever you want to clean up any old Messer sessions and start from scratch, run:

$ messer cleanup


Want to add a new command, fix a bug or improve Messer in another way? Please read for details on our code of conduct, and the process for submitting pull requests to us.


This project is licensed under the ISC License - see the LICENSE file for details

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
javascript (70,924
facebook (277
facebook-messenger (24