MCPcopy Index your code
hub / github.com/ArturCSegat/whats-cli

github.com/ArturCSegat/whats-cli @v0.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.1.0 ↗ · + Follow
66 symbols 156 edges 9 files 3 documented · 5%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README
 __       __  __                   __                 ______   __  __ 
│  ╲  _  │  ╲│  ╲                 │  ╲               ╱      ╲ │  ╲│  ╲
│ $$ ╱ ╲ │ $$│ $$____    ______  _│ $$_     _______ │  $$$$$$╲│ $$ ╲$$
│ $$╱  $╲│ $$│ $$    ╲  │      ╲│   $$ ╲   ╱       ╲│ $$   ╲$$│ $$│  ╲
│ $$  $$$╲ $$│ $$$$$$$╲  ╲$$$$$$╲╲$$$$$$  │  $$$$$$$│ $$      │ $$│ $$
│ $$ $$╲$$╲$$│ $$  │ $$ ╱      $$ │ $$ __  ╲$$    ╲ │ $$   __ │ $$│ $$
│ $$$$  ╲$$$$│ $$  │ $$│  $$$$$$$ │ $$│  ╲ _╲$$$$$$╲│ $$__╱  ╲│ $$│ $$
│ $$$    ╲$$$│ $$  │ $$ ╲$$    $$  ╲$$  $$│       $$ ╲$$    $$│ $$│ $$
 ╲$$      ╲$$ ╲$$   ╲$$  ╲$$$$$$$   ╲$$$$  ╲$$$$$$$   ╲$$$$$$  ╲$$ ╲$$

A command-line WhatsApp client written in Go and highly riceable with Lua scripts


Screenshots Mural

A visual mural of all screenshots in the screenshots folder.

default default UI different_default default UI with custom colors different_old old school UI with custom colors
discord_like Discord like UI old old school UI with default colors tower weird tower UI

Features

  • Sending messages (Text, Audio, Images, Video, etc)
  • Opening Media (uses default browser)
  • Forwarding, Deleting, Replying messages
  • Custom keybinding for native functionality
  • Custom keybinding with custom functionality
  • Custom rendering of messages for personalised UI
  • Custom hooks run on message received

Installation Guide

📦 Prerequisites


Download the Latest Binary

Go to the Releases page and download the binary for your OS:

  • Linux: whats-cli-linux-***
  • macOS: whats-cli-darwin-***
  • Windows: whats-cli-windows-***.exe

Setting Up the whatshttp Backend

whats-cli communicates with whatshttp via HTTP. You must have whatshttp running before using whats-cli.

🐳 Option A: Run whatshttp with Docker

  1. Pull the Docker image: bash docker pull arturcsegat/whatshttp:latest

  2. Run the container: bash docker run -d \ -p 3000:3000 \ -v /home/artur/data:/app/data \ -e PORT=3000 \ arturcsegat/whatshttp:latest

  3. Replace /home/artur/data with a persistent path on your machine.

🛠️ Option B: Build & Run whatshttp from Source (TypeScript)

  1. Clone the repository: bash git clone https://github.com/ArturCSegat/whatshttp.git cd whatshttp

  2. Install dependencies: bash npm install

  3. Build the project:
    bash npm run build

  4. Run the server: bash npm start


🔑 WhatsApp Session Initialization

Important: For whats-cli to work, set:
- clientId: 1
- webHook: http://[your local ip]:4000/whatshttp/webhook

Find your local IP:

  • Linux/macOS:
    hostname -I | awk '{print $1}'
  • Windows:
    Run ipconfig and look for your IPv4 address.

💻 Generate the QR code for WhatsApp login

Open this URL in your browser (replace [your local ip]):

http://localhost:3000/client/qrCode?clientId=1&webHook=http://[your local ip]:4000/whatshttp/webhook

Scan the QR code with your WhatsApp app to link your account. Wait for session to be established.


Running whats-cli

  1. Rename the binary (optional): bash mv whats-cli-linux-amd64 whats-cli

  2. Make the binary executable (Linux/macOS): bash chmod +x whats-cli

  3. Run whats-cli: bash ./whats-cli

Configuration

Configuration is done by editing the scripts in the lua folder that will be created in the same folder as the binary. Information on how to configure can be found in the docs

Core symbols most depended-on inside this repo

Shape

Function 28
Method 21
Struct 15
TypeAlias 2

Languages

Go100%

Modules by API surface

messages.go24 symbols
chats.go13 symbols
app.go8 symbols
os.go5 symbols
extra_pages.go5 symbols
whatshttp.go4 symbols
lua_helper.go3 symbols
styles.go2 symbols
main.go2 symbols

For agents

$ claude mcp add whats-cli \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page