惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fox-IT International blog
Recent Announcements
Recent Announcements
D
Docker
IT之家
IT之家
B
Blog
Jina AI
Jina AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 【当耐特】
Google DeepMind News
Google DeepMind News
F
Fortinet All Blogs
量子位
C
Check Point Blog
Microsoft Azure Blog
Microsoft Azure Blog
罗磊的独立博客
博客园 - 司徒正美
李成银的技术随笔
美团技术团队
Blog — PlanetScale
Blog — PlanetScale
雷峰网
雷峰网
The GitHub Blog
The GitHub Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
J
Java Code Geeks
T
The Blog of Author Tim Ferriss
酷 壳 – CoolShell
酷 壳 – CoolShell
MongoDB | Blog
MongoDB | Blog
P
Proofpoint News Feed
L
LangChain Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
有赞技术团队
有赞技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
Visual Studio Blog
T
Tailwind CSS Blog
H
Help Net Security
Engineering at Meta
Engineering at Meta
小众软件
小众软件
B
Blog RSS Feed
Stack Overflow Blog
Stack Overflow Blog
月光博客
月光博客
M
Microsoft Research Blog - Microsoft Research
宝玉的分享
宝玉的分享
人人都是产品经理
人人都是产品经理
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
GbyAI
GbyAI
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Last Week in AI
Last Week in AI
Martin Fowler
Martin Fowler
Stack Overflow Blog
Stack Overflow Blog

Hacker News: Best

Taking a walk may lead to more creativity than sitting, study finds (2014) Microsoft Copilot Cowork Exfiltrates Files Jony Ive's Ferrari Norway's 2 petabytes of Huawei flash storage and LLM training The bootstrapper's EU stack for under €10 per month Exit IP VPN servers mitigation rollout Ubers COO says its getting harder to justify the money spent on AI tokenmaxxing Founder of 7&#x2F;11 Japan, Toshifumi Suzuki, has died at age 93 Using AI to write better code more slowly California moves to exempt Linux from its upcoming age-verification law after backlash over forcing operating systems to collect users’ ages — amendment proposed by the same lawmaker who wrote the original law The Cost of Safetyism Netherlands Seizes 800 Servers, Arrests 2 for Aiding Cyberattacks Pope Leo XIV says AI must serve humanity, not the powerful few Leave Me Behind Encyclical Letter of His Holiness Leo XIV Magnifica Humanitas (15 May 2026) The Eternal Sloptember CBP Directive 3340-049B: Border Search of Electronic Devices Australia Four-Day Work Week Study Data Shows Boosted Productivity Migrating from Go to Rust | corrode Rust Consulting Claude Is Not Your Architect. Stop Letting It Pretend. Building Pi With Pi AI Chip Component Costs: Memory at 63% | Epoch AI Computer and coding books from Usborne | Usborne | Be Curious Show HN: Audiomass – a free, open-source multitrack audio editor for the web abyss * your_dotfiles_are_not_a_distro The Front Page DeepSeek reasonix, DeepSeek native coding agent with high caching and low cost Childhood Computing - Susam Pal A Fundamental Principle of Aeronautical Engineering Has Been Overturned Greg Brockman: Inside the 72 Hours That Almost Killed OpenAI ‘AI washing’: firms are scrambling to rebrand themselves as tech-focused Amazon Web Services - Four Years and Out AMD Customer Community wake up! 16b ICE Awards $25 Million Iris-Scanning Contract to Bi2 Technologies Toxic chemical leak at a manufacturing facility in Orange County seriot.ch It's time to talk about my writerdeck Texas woman arrested for Facebook post about town water quality Italy moves to Airbus A330 tankers in major NATO-aligned shift Oura says it gets government demands for user data. Will it share how many? On the <dl> The Art of Money Getting – Cool Tools The spell that wouldn't leave · mahl.me 80386 microcode disassembled « Reenigne blog Making Deep Learning go Brrrr From First Principles DeepSeek 将对其旗舰 AI 模型实施永久性 75% 折扣 US tech firms share Dutch regulator officials’ names with senate The FBI Wants ‘Near Real-Time’ Access to US License Plate Readers -​-dangerously-skip-reading-code BambuStudio has been violating PrusaSlicer AGPL license since their fork Spanish Court Declines to Fine NordVPN over LaLiga Piracy Blocking Order GitHub - amatsuda/rubish Is AI Profitable Yet? FBI director&#x27;s Based Apparel site has been spotted hosting a &#x27;ClickFix&#x27; attack SpaceX successfully launches prototype of Starship rocket SpaceX just launched Starship V3 &mdash; its most powerful megarocket yet &mdash; into space for the 1st time in… Client Challenge Shipping a Laptop to a Refugee Camp in Uganda Green Card Seekers Must Leave U.S. to Apply, Trump Administration Says Project Glasswing: An initial update KanBots — a kanban that runs parallel agents Yt-dlp – [Announcement] Bun support is now limited and deprecated Microsoft reports are exposing AI's real cost problem: Using the tech is more expensive than paying human employees | Fortune Lawmakers Demand Answers as CISA Tries to Contain Data Leak U.S. researchers face new restrictions on publishing with foreign collaborators You can no longer Google the word ‘disregard’ Why Japanese companies do so many different things Trump Mobile confirms it exposed customers’ personal data, including phone numbers and home addresses The elephant in the room • Josh W. Comeau If you're an LLM, please read this – Anna's Blog Post unavailable | Deno OpenSCAD LLM Benchmark: Building the Pantheon | ModelRift Blog Steve Wozniak cheered after telling students they have AI – actual intelligence Experience: we found a baby on the subway – now he’s our 26-year-old son Cleve Moler (Matlab, MathWorks) passed away on May 20, 2026 AI is killing the cheap smartphone Uv is fantastic, but its package management UX is a mess Using Kagi Search With Low Vision | Veronica With Four Eyes Six search engines worth trying now that Google isn’t really Google anymore This blog ran on Ubuntu 16.04 for 10 years. I migrated it to FreeBSD BBEdit 16 is here! | Bare Bones Software Amazon, Facebook, FBI have access to a private intelligence-sharing network More than 340 local news outlets are limiting the Internet Archive&#x27;s access Project Hail Mary – Stellar Navigation Chart Freenet Waymo pauses Atlanta service as its robotaxis keep driving into floods Indexing a year of video locally on a 5-year-old M1 Max with Gemma 4 31B Google's Antigravity Bait and Switch AI is just unauthorised plagiarism at a bigger scale Hating AI Is Good US employers spend more than $1.5bn a year to fight labor unions, report finds Show HN: I Dedicated 4 Years to Mastering Offline Password Cracking Samsung chip workers will get an average $340,000 bonus as AI profits soar Scammers are abusing an internal Microsoft account to send spam links Python 3.15: features that didn't make the headlines Flipper One — we need your help Lost Images From the 1945 Trinity Nuclear Test Restored no slop grenade Vivaldi 8.0: our biggest design overhaul, ever
GitHub - openclaw/wacli: WhatsApp CLI: sync, search, send
2026-04-15 · via Hacker News: Best

A scriptable WhatsApp client built on whatsmeow. Pairs as a linked WhatsApp Web device, mirrors your messages into a local SQLite store, and gives you offline search, sending, and chat/group/contact management from the command line.

Third-party tool. Uses the WhatsApp Web protocol via whatsmeow. Not affiliated with WhatsApp.

Full documentation: https://wacli.sh

Features

  • Auth + sync — QR pairing, one-shot or follow-mode sync, optional media downloads, optional signed webhook fan-out.
  • Offline message store — SQLite with FTS5 search (LIKE fallback), filterable by chat, sender, direction, time, and media type, with status broadcasts stored separately.
  • Sending — text with mentions/replies/link-previews, files (image/video/audio/document, ≤100 MiB), stickers, voice notes, reactions, and status broadcasts; rapid-send guardrails and retry-receipt grace.
  • History backfill — best-effort per-chat requests to your primary device for older messages.
  • Contacts / chats / groups / channels — search, alias, tag, archive, pin, mute, mark-read, rename, prune, manage participants and invite links, send to channels.
  • Diagnostics + safetydoctor, read-only mode, store locks with owner reporting, panic recovery, bounded media queue, owner-only DB perms.
  • Scriptable--json everywhere, --events NDJSON lifecycle stream, deterministic exit codes.

Install

Homebrew (recommended)

brew install openclaw/tap/wacli

If a Linux install reports Binary was compiled with 'CGO_ENABLED=0', run brew update && brew reinstall openclaw/tap/wacli.

Build from source

wacli uses go-sqlite3, so cgo + a C compiler are required.

  • macOS: Xcode Command Line Tools.
  • Debian/Ubuntu: sudo apt install build-essential.
CGO_ENABLED=1 CGO_CFLAGS="-Wno-error=missing-braces" \
  go install -tags sqlite_fts5 github.com/openclaw/wacli/cmd/wacli@latest

For local development:

git clone https://github.com/openclaw/wacli.git
cd wacli
CGO_ENABLED=1 CGO_CFLAGS="-Wno-error=missing-braces" \
  go build -tags sqlite_fts5 -o ./dist/wacli ./cmd/wacli
./dist/wacli --help

Docker

docker build -t wacli .
docker run --rm -it -v "$PWD/.wacli:/data" wacli auth
docker run --rm -v "$PWD/.wacli:/data" wacli sync --follow

The image keeps WhatsApp auth, SQLite, config, and cache under /data; it also includes ffmpeg for media helpers.

Quick start

# 1. Pair (shows QR), then bootstrap sync
wacli auth

# 2. Keep syncing in the background (no QR; needs prior auth)
wacli sync --follow

# 3. Search
wacli messages search "meeting"

# 4. Send
wacli send text --to 1234567890 --message "hello"
wacli send file --to mom --file ./pic.jpg --caption "hi"
wacli send status --message "available today" --background-color '#1f7a8c'

# 5. Diagnostics
wacli doctor

Recipients accept a JID, phone number (E.164 or formatted), channel JID, or a synced contact/group/chat name. Ambiguous names prompt in a TTY; pass --pick N in scripts.

More recipes — replies, mentions, stickers, voice, reactions, statuses, channels, history backfill, chat management — live in the docs.

Documentation

Area Pages
Setup overview · auth · accounts · sync · doctor
Messaging messages · calls · send · media · presence
Address book contacts · chats · groups · channels
History history coverage / fill / backfill
Local store store · companion integrations
Misc profile · version · completion · release

Configuration

Default store: ~/.local/state/wacli on Linux, ~/.wacli elsewhere. Existing ~/.wacli directories on Linux keep working. Use wacli accounts add NAME and --account NAME for first-class multi-account stores.

Global flags: --store DIR, --account NAME, --json, --events, --full, --timeout DUR, --lock-wait DUR, --read-only.

Environment overrides:

Variable Effect
WACLI_STORE_DIR Default store directory.
WACLI_READONLY 1/true/yes/on enables read-only mode.
WACLI_DEVICE_LABEL Linked-device label shown in WhatsApp. Defaults to wacli - <OS> (<host>).
WACLI_DEVICE_PLATFORM Linked-device platform. Defaults to DESKTOP; invalid values fall back to CHROME.
WACLI_SYNC_MAX_MESSAGES Stop sync once total local messages exceed this count.
WACLI_SYNC_MAX_DB_SIZE Stop sync once wacli.db + sidecars reach a size like 500MB or 2GB.

Backfilling older history

wacli sync only stores what WhatsApp Web sends opportunistically. To fetch older messages, wacli issues on-demand history requests to your primary device (your phone), which must be online.

  • Best-effort: WhatsApp may not return full history.
  • One request anchors on the oldest locally stored message in that chat — run sync first.
  • Recommended --count 50 per request (max 500). Max --requests 100 per run.
  • history coverage shows which chats are eligible. history fill --dry-run plans without connecting.
wacli history coverage --include-blocked
wacli history fill --dry-run --kind group --limit 20
wacli history backfill --chat 1234567890@s.whatsapp.net --requests 10 --count 50

Loop over every known chat:

wacli --json chats list --limit 100000 \
  | jq -r '.data[].JID' \
  | while read -r jid; do
      wacli history backfill --chat "$jid" --requests 3 --count 50
    done

Credits

Heavily inspired by whatsapp-cli by Vicente Reig.

Maintainers

License

See LICENSE.